TinyMCE Advanced - Version 5.3

Version Description

Download this release

Release Info

Developer azaozz
Plugin Icon 128x128 TinyMCE Advanced
Version 5.3
Comparing to
See all releases

Code changes from version 5.2.1 to 5.3

block-editor/classic-paragraph.css CHANGED
@@ -1 +1 @@
1
- .editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-tinymce{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-color:#fff}.editor-block-list__block[data-type="tadv/classic-paragraph"] div.mce-toolbar-grp{background:#f8f9f9;border-bottom-color:#eceded}.editor-block-list__block[data-type="tadv/classic-paragraph"] div.mce-toolbar .mce-btn-group{padding:2px;margin:0}.editor-block-list__block[data-type="tadv/classic-paragraph"] div.mce-toolbar-grp.mce-container>div{padding:0}.editor-block-list__block[data-type="tadv/classic-paragraph"]>.editor-block-list__insertion-point{z-index:11}div[data-type="tadv/classic-paragraph"] .block-editor-block-list__block-edit:before{transition:border-color .1s linear,box-shadow .1s linear;border:1px solid #e2e4e7;outline:1px solid transparent}div[data-type="tadv/classic-paragraph"].is-selected .block-editor-block-list__block-edit:before{border-color:#b5bcc2 #b5bcc2 #b5bcc2 transparent}div[data-type="tadv/classic-paragraph"] .editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="tadv/classic-paragraph"].is-selected .block-library-rich-text__tinymce:after{content:"";display:table;clear:both}@media (min-width:600px){.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-switcher__no-switcher-icon{display:none}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar{float:right;margin-right:74px;transform:translateY(-13px);top:14px}.rtl .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar,.rtl .editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar{float:left;margin-right:0;margin-left:74px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{margin-bottom:105px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{border:none;box-shadow:none;margin-top:0}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar:before,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar:before{content:"";display:block;border-left:1px solid #e2e4e7;margin-top:4px;margin-bottom:4px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar__control.components-button:hover,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar__control.components-button:hover{background-color:transparent}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .components-toolbar{background:transparent;border:none}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar.mce-stack-layout-item,.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item{padding-right:86px}.rtl .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar.mce-stack-layout-item,.rtl .editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item{padding-left:86px;padding-right:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{float:none;margin-right:0;transform:translateY(-52px);top:0;position:absolute}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{margin-right:-15px;margin-left:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{box-shadow:-3px 0 0 0 #555d66;position:relative}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{box-shadow:3px 0 0 0 #555d66}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar:before{display:none}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar{background:#fff;border:1px solid #b5bcc2;border-left-width:0}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar{border:1px solid #b5bcc2;border-right-width:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar.mce-stack-layout-item{padding:0}.block-library-classic__toolbar .mce-menubar>div.mce-container-body{padding-right:80px}.rtl .block-library-classic__toolbar .mce-menubar>div.mce-container-body{padding-left:84px}.editor-inner-blocks .block-library-classic__toolbar .mce-menubar>div.mce-container-body{padding:0}.block-library-classic__toolbar .mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl;text-align:right}}
1
+ div[data-type="tadv/classic-paragraph"] .block-editor-block-list__block-edit:before{transition:border-color .1s linear,box-shadow .1s linear;border:1px solid #e2e4e7;outline:1px solid transparent}@media (prefers-reduced-motion:reduce){div[data-type="tadv/classic-paragraph"] .block-editor-block-list__block-edit:before{transition-duration:0s}}div[data-type="tadv/classic-paragraph"].is-selected .block-editor-block-list__block-edit:before{border-color:#b5bcc2 #b5bcc2 #b5bcc2 transparent}div[data-type="tadv/classic-paragraph"] .editor-block-contextual-toolbar+div{margin-top:0;padding-top:0}div[data-type="tadv/classic-paragraph"].is-selected .block-library-rich-text__tinymce:after{content:"";display:table;clear:both}div[data-type="tadv/classic-paragraph"].is-selected .block-library-classic__toolbar,div[data-type="tadv/classic-paragraph"].is-typing .block-library-classic__toolbar{border-color:#b5bcc2}div[data-type="tadv/classic-paragraph"] .block-library-classic__toolbar:empty{display:none}div[data-type="tadv/classic-paragraph"].is-selected .block-library-classic__toolbar,div[data-type="tadv/classic-paragraph"].is-typing .block-library-classic__toolbar{display:block;border-color:transparent}div[data-type="tadv/classic-paragraph"] .block-library-classic__toolbar .mce-menubar{min-height:34px;padding:3px 2px 0}@media (min-width:600px){.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-switcher__no-switcher-icon{display:none}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{float:right;margin-right:74px;transform:translateY(-16px);top:14px}.rtl .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{float:left;margin-right:0;margin-left:74px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{border:none;box-shadow:none;margin-top:1px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar:before{content:"";display:block;border-left:1px solid #e2e4e7;margin-top:4px;margin-bottom:4px}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar__control.components-button:hover{background-color:transparent}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar{background:transparent;border:none}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar{padding-right:86px}.rtl .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar{padding-left:86px;padding-right:0}.block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-library-classic__toolbar .mce-menubar+.mce-toolbar-grp .mce-container-body .mce-toolbar{padding:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{float:none;margin-right:0;transform:translateY(-52px);top:0;position:absolute}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar{margin-right:-15px;margin-left:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{box-shadow:-3px 0 0 0 #555d66;position:relative}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar{box-shadow:3px 0 0 0 #555d66}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar:before{display:none}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar{background:#fff;border:1px solid #b5bcc2;border-left-width:0}.rtl .block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .block-editor-block-contextual-toolbar .components-toolbar{border:1px solid #b5bcc2;border-right-width:0}.block-editor-inner-blocks .block-editor-block-list__block[data-type="tadv/classic-paragraph"] .mce-container.mce-toolbar{padding:3px 2px 0}}
block-editor/richtext-buttons.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e={};function r(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return t[o].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=t,r.c=e,r.d=function(t,e,o){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(o,n,function(e){return t[e]}.bind(null,n));return o},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=10)}({10:function(t,e,r){"use strict";r.r(e);var o=window.tadvBlockButtons,n=window.wp,a=window.lodash.get,i=n.element.createElement,c=n.editor,l=c.InspectorControls,u=c.PanelColorSettings,s=n.richText,d=s.registerFormatType,v=s.applyFormat,m=s.removeFormat,p=s.getActiveFormat;function f(t){return(t=t.replace(/.*?(background-)?color:\s*/,"")).replace(/[; ]+$/,"")}var h,g=window.tadvBlockButtons||{},b=window.wp,y=b.editor.RichTextToolbarButton,k=b.richText,T=k.registerFormatType,w=k.removeFormat,x=b.element.createElement,F=b.components.ToolbarButton;function C(t){var e=[];return h||(h=g.formats_to_remove?g.formats_to_remove.split(","):["core/bold","core/italic","core/code","core/underline","core/strikethrough","tadv/sup","tadv/sub","tadv/mark","tadv/color-panel","tadv/background-color-panel"]),t.forEach(function(t){t&&t.forEach(function(t){h.indexOf(t.type)>-1&&-1===e.indexOf(t.type)&&e.push(t.type)})}),e}function B(t){var e=t.formats;if(!e.length)return t;var r=0,o=e.length;t.end>t.start&&(r=t.start,o=t.end,e=e.slice(r,o));var n=C(e);return n.length?(n.forEach(function(e){t=w(t,e,r,o)}),t):t}var N=window.wp,A=(window.tadvBlockButtons,N.element),S=A.createElement,_=A.Fragment,R=N.i18n.__,E=N.components.ToolbarButton,O=N.editor,P=O.RichTextToolbarButton,M=O.RichTextShortcut,U=N.richText,j=U.registerFormatType,z=U.getActiveFormat,I=U.toggleFormat;U.applyFormat,U.removeFormat;function L(t,e){e(I(t,{type:"core/strikethrough"}))}var G=window.wp,V=G.element,$=V.createElement,q=V.Fragment,D=G.i18n.__,H=G.components.ToolbarButton,J=G.editor,K=J.RichTextToolbarButton,Q=J.RichTextShortcut,W=G.richText,X=W.registerFormatType,Y=W.getActiveFormat,Z=W.toggleFormat;function tt(t,e){e(Z(t,{type:"core/code"}))}var et=window.wp,rt=window.tadvBlockButtons||{},ot=et.element,nt=ot.createElement,at=ot.Fragment,it=(et.i18n.__,et.components.ToolbarButton),ct=et.editor,lt=ct.RichTextToolbarButton,ut=ct.RichTextShortcut,st=et.richText,dt=st.registerFormatType,vt=st.getActiveFormat,mt=st.toggleFormat;st.applyFormat,st.removeFormat;function pt(t,e){e(mt(t,{type:"tadv/mark"}))}var ft=window.wp,ht=window.tadvBlockButtons||{},gt=ft.element,bt=gt.createElement,yt=gt.Fragment,kt=(ft.i18n.__,ft.components.ToolbarButton),Tt=ft.editor,wt=Tt.RichTextToolbarButton,xt=Tt.RichTextShortcut,Ft=ft.richText,Ct=Ft.registerFormatType,Bt=Ft.getActiveFormat,Nt=Ft.applyFormat,At=Ft.removeFormat;function St(t,e,r){if(t)r(At(e,"core/underline"));else{r(Nt(e,{type:"core/underline",attributes:{style:"text-decoration: underline"}}))}}var _t=window.wp,Rt=_t.element,Et=Rt.createElement,Ot=(Rt.Fragment,_t.i18n.__),Pt=_t.components.ToolbarButton,Mt=_t.editor,Ut=(Mt.RichTextToolbarButton,Mt.RichTextShortcut,_t.richText),jt=(Ut.registerFormatType,Ut.getActiveFormat),zt=Ut.toggleFormat;function It(t,e){e(zt(t,{type:"core/bold"}))}var Lt=window.wp,Gt=Lt.element,Vt=Gt.createElement,$t=(Gt.Fragment,Lt.i18n.__),qt=Lt.components.ToolbarButton,Dt=Lt.editor,Ht=(Dt.RichTextToolbarButton,Dt.RichTextShortcut,Lt.richText),Jt=(Ht.registerFormatType,Ht.getActiveFormat),Kt=Ht.toggleFormat;function Qt(t,e){e(Kt(t,{type:"core/italic"}))}var Wt=window.wp,Xt=window.tadvBlockButtons,Yt=Wt.element,Zt=Yt.createElement,te=Yt.Fragment,ee=Wt.richText,re=ee.registerFormatType,oe=ee.getActiveFormat,ne=ee.toggleFormat,ae=Wt.components.ToolbarButton,ie=Wt.editor,ce=ie.RichTextToolbarButton,le=ie.RichTextShortcut,ue=Wt.components,se=ue.Path,de=ue.SVG,ve=Zt(de,{viewBox:"-85 -985 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Zt(se,{"aria-hidden":"true",role:"img",focusable:"false",transform:"scale(1, -1)",translate:"(0, -960)",d:"M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z"})),me=Zt(de,{viewBox:"-85 -975 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Zt(se,{"aria-hidden":"true",role:"img",focusable:"false",transform:"scale(1, -1)",translate:"(0, -960)",d:"M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z"}));function pe(t,e,r){e(ne(t,{type:r}))}function fe(t,e){var r=t.type,o=t.tagName,n=t.title,a=t.character,i=t.icon;re(r,{title:n,tagName:o,className:null,edit:function(t){var o=t.isActive,c=t.value,l=t.onChange,u=null;return e||(u=Zt(ce,{title:n,icon:i,onClick:function(){return pe(c,l,r)},isActive:o,shortcutType:"primary",shortcutCharacter:a})),Zt(te,null,Zt(le,{type:"primary",character:a,onUse:function(){return pe(c,l,r)}}),u)}})}var he,ge=window.wp,be=ge.element.createElement,ye=ge.data.select,ke=ge.hooks.addFilter,Te=ge.components,we=Te.PanelBody,xe=Te.Toolbar,Fe=ge.editor.InspectorControls,Ce=ge.richText,Be=Ce.registerFormatType,Ne=Ce.unregisterFormatType,Ae=window.tadvBlockButtons||{},Se=Ae.buttons?Ae.buttons.split(","):[],_e=Ae.panelButtons?Ae.panelButtons.split(","):[],Re=Ae.unusedButtons?Ae.unusedButtons.split(","):[],Ee={"tadv/mark":function(t){dt("tadv/mark",{title:rt.strMark,tagName:"mark",className:null,edit:function(e){var r=e.isActive,o=e.value,n=e.onChange,a=null;return t||(a=nt(lt,{title:rt.strMark,icon:"editor-textcolor",onClick:function(){return pt(o,n)},className:"tadv-icon-button-mark",isActive:r,shortcutType:"access",shortcutCharacter:"m"})),nt(at,null,nt(ut,{type:"access",character:"m",onUse:function(){return pt(o,n)}}),a)}})},"tadv/removeformat":function(t){T("tadv/removeformat",{title:g.strRemoveFormatting||"Remove formatting",tagName:"u",className:"remove-format",edit:function(e){e.isActive;var r=e.value,o=e.onChange;return t?null:x(y,{icon:"editor-removeformatting",title:g.strRemoveFormatting,onClick:function(){return o(B(r))},isActive:null})}})},"tadv/sub":function(t){fe({type:"tadv/sub",tagName:"sub",title:Xt.strSubscript,character:",",icon:me},t)},"tadv/sup":function(t){fe({type:"tadv/sup",tagName:"sup",title:Xt.strSuperscript,character:".",icon:ve},t)},"core/code":function(t){X("core/code",{title:D("Code"),tagName:"code",className:null,edit:function(e){var r=e.isActive,o=e.value,n=e.onChange,a=null;return t||(a=$(K,{icon:"editor-code",title:D("Code"),onClick:function(){return tt(o,n)},isActive:r,shortcutType:"access",shortcutCharacter:"x"})),$(q,null,$(Q,{type:"access",character:"x",onUse:function(){return tt(o,n)}}),a)}})},"core/strikethrough":function(t){j("core/strikethrough",{name:"core/strikethrough",title:R("Strikethrough"),tagName:"del",className:null,edit:function(e){var r=e.isActive,o=e.value,n=e.onChange,a=null;return t||(a=S(P,{name:"strikethrough",icon:"editor-strikethrough",title:R("Strikethrough"),onClick:function(){return L(o,n)},isActive:r,shortcutType:"access",shortcutCharacter:"d"})),S(_,null,S(M,{type:"access",character:"d",onUse:function(){return L(o,n)}}),a)}})},"core/underline":function(t){Ct("core/underline",{title:ht.strUnderline,tagName:"span",className:"underline",attributes:{style:"style"},edit:function(e){var r=e.isActive,o=e.value,n=e.onChange,a=null;return t||(a=bt(wt,{title:ht.strUnderline,icon:"editor-underline",onClick:function(){return St(r,o,n)},className:null,isActive:r,shortcutType:"primary",shortcutCharacter:"u"})),bt(yt,null,bt(xt,{type:"primary",character:"u",onUse:function(){return St(r,o,n)}}),a)}})}},Oe={"core/bold":function(t,e,r){return Et(Pt,{key:"core/bold",icon:"editor-bold",className:"tadv-icon-button",isActive:jt(e,"core/bold"),title:Ot("Bold"),onClick:function(){return It(e,r)}})},"core/italic":function(t,e,r){return Vt(qt,{key:"core/italic",icon:"editor-italic",className:"tadv-icon-button",isActive:Jt(e,"core/italic"),title:$t("Italic"),onClick:function(){return Qt(e,r)}})},"core/code":function(t,e,r){return $(H,{key:"core/code",icon:"editor-code",className:"tadv-icon-button",isActive:Y(e,"core/code"),title:D("Code"),onClick:function(){return tt(e,r)}})},"core/strikethrough":function(t,e,r){return S(E,{key:"core/strikethrough",icon:"editor-strikethrough",className:"tadv-icon-button",isActive:z(e,"core/strikethrough"),title:R("Strikethrough"),onClick:function(){return L(e,r)}})},"core/underline":function(t,e,r){var o=!!Bt(e,"core/underline");return bt(kt,{key:"core/underline",icon:"editor-underline",className:"tadv-icon-button",isActive:o,title:ht.strUnderline,onClick:function(){return St(o,e,r)}})},"tadv/removeformat":function(t,e,r){return x(F,{key:"tadv/removeformat",icon:"editor-removeformatting",className:"tadv-icon-button",title:g.strRemoveFormatting,onClick:function(){return r(B(e))}})},"tadv/mark":function(t,e,r){return nt(it,{key:"tadv/mark",icon:"editor-textcolor",className:"tadv-icon-button tadv-icon-button-mark",isActive:vt(e,"tadv/mark"),title:rt.strMark,onClick:function(){return pt(e,r)}})},"tadv/sup":function(t,e,r){return Zt(ae,{key:"tadv/sup",icon:ve,className:"tadv-icon-button",isActive:oe(e,"tadv/sup"),title:Xt.strSuperscript,onClick:function(){return pe(e,r,"tadv/sup")}})},"tadv/sub":function(t,e,r){return Zt(ae,{key:"tadv/sub",icon:me,className:"tadv-icon-button",isActive:oe(e,"tadv/sub"),title:Xt.strSubscript,onClick:function(){return pe(e,r,"tadv/sub")}})}};function Pe(t){(function(t){var e=ye("core/rich-text").getFormatTypes(),r=!1;return e.forEach(function(e){e.name===t&&(r=!0)}),r})(t)&&Ne(t)}function Me(){Re.length&&Re.forEach(function(t){Pe(t)}),Se.forEach(function(t){Ee.hasOwnProperty(t)&&(Pe(t),Ee[t].call(null))}),_e.length&&(_e.forEach(function(t){-1===Se.indexOf(t)&&Ee.hasOwnProperty(t)&&(Pe(t),Ee[t].call(null,"panel"))}),Be("tadv/tadv-format-panel",{title:Ae.strFormatting,tagName:"span",className:"tadv-format-panel",edit:function(t){var e=t.isActive,r=t.value,o=t.onChange,n=[];return _e.forEach(function(t){Oe.hasOwnProperty(t)&&n.push(Oe[t].call(null,e,r,o))}),be(Fe,null,be(we,{title:Ae.strFormatting,className:"tadv-buttons-panel"},be(xe,null,n)))}})),function(){if(o.colorPanel){var t=o.colorPanel.indexOf("tadv/color-panel")>-1,e=o.colorPanel.indexOf("tadv/background-color-panel")>-1;t&&d("tadv/color-panel",{title:o.strTextColor,tagName:"span",className:"tadv-color",attributes:{style:"style"},edit:function(t){var r,n,c=t.isActive,s=t.value,d=t.onChange;if(c){var h=p(s,"tadv/color-panel"),g=a(h,["attributes","style"])||"",b=p(s,"tadv/background-color-panel"),y=a(b,["attributes","style"])||"";r=f(g),n=f(y)}var k=[{value:r,onChange:function(t){d(t?v(s,{type:"tadv/color-panel",attributes:{style:"color:"+t}}):m(s,"tadv/color-panel"))},label:o.strTextColorLabel}];return e&&k.push({value:n,onChange:function(t){d(t?v(s,{type:"tadv/background-color-panel",attributes:{style:"background-color:"+t}}):m(s,"tadv/background-color-panel"))},label:o.strBackgroundColorLabel}),i(l,null,i(u,{title:o.strTextColor,initialOpen:!1,colorSettings:k}))}}),d("tadv/background-color-panel",{title:o.strBackgroundColor,tagName:"span",className:"tadv-background-color",attributes:{style:"style"},edit:function(r){var n,c=r.isActive,s=r.value,d=r.onChange;if(!e||t)return null;if(c){var h=p(s,"tadv/background-color-panel");n=f(a(h,["attributes","style"])||"")}var g=[{value:n,onChange:function(t){d(t?v(s,{type:"tadv/background-color-panel",attributes:{style:"background-color:"+t}}):m(s,"tadv/background-color-panel"))},label:o.strBackgroundColorLabel}];return i(l,null,i(u,{title:o.strTextColor,initialOpen:!1,colorSettings:g}))}})}}()}ke("blocks.registerBlockType","tadv-register-formats",function(t){return he||(Me(),he=!0),t})}});
1
+ !function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=10)}({10:function(t,e,o){"use strict";o.r(e);var n=window.tadvBlockButtons,r=window.wp,a=window.lodash.get,c=r.element.createElement,i=r.blockEditor,l=i.InspectorControls,u=i.PanelColorSettings,s=r.richText,d=s.registerFormatType,v=s.applyFormat,m=s.removeFormat,p=s.getActiveFormat;function f(t){return(t=t.replace(/.*?(background-)?color:\s*/,"")).replace(/[; ]+$/,"")}var h,g=window.tadvBlockButtons||{},b=window.wp,y=b.blockEditor.RichTextToolbarButton,k=b.richText,T=k.registerFormatType,w=k.removeFormat,x=b.element.createElement,F=b.components.ToolbarButton;function C(t){var e=[];return h||(h=g.formats_to_remove&&g.formats_to_remove.indexOf(",")>-1?g.formats_to_remove.split(","):["core/bold","core/italic","core/code","core/underline","core/strikethrough","tadv/sup","tadv/sub","tadv/mark","tadv/color-panel","tadv/background-color-panel"]),t.forEach(function(t){t&&t.forEach(function(t){h.indexOf(t.type)>-1&&-1===e.indexOf(t.type)&&e.push(t.type)})}),e}function B(t){var e=t.formats;if(!e.length)return t;var o=0,n=e.length;t.end>t.start&&(o=t.start,n=t.end,e=e.slice(o,n));var r=C(e);return r.length?(r.forEach(function(e){t=w(t,e,o,n)}),t):t}var N="tadv/removeformat",A=g.strRemoveFormatting||"Remove formatting",E="editor-removeformatting";var _=window.wp,S=_.element,O=S.createElement,R=S.Fragment,P=_.i18n.__,M=_.components.ToolbarButton,j=_.blockEditor,U=j.RichTextToolbarButton,I=j.RichTextShortcut,z=_.richText,L=z.registerFormatType,G=z.getActiveFormat,V=z.toggleFormat,$=(z.applyFormat,z.removeFormat,"core/strikethrough"),q=P("Strikethrough"),D="editor-strikethrough";function H(t,e){e(V(t,{type:$}))}var J=window.wp,K=J.element,Q=K.createElement,W=K.Fragment,X=J.i18n.__,Y=J.components.ToolbarButton,Z=J.blockEditor,tt=Z.RichTextToolbarButton,et=Z.RichTextShortcut,ot=J.richText,nt=ot.registerFormatType,rt=ot.getActiveFormat,at=ot.toggleFormat,ct=ot.applyFormat,it=ot.remove,lt="core/code",ut=X("Inline Code"),st="editor-code";function dt(t,e){e(at(t,{type:lt}))}var vt=window.wp,mt=window.tadvBlockButtons||{},pt=vt.element,ft=pt.createElement,ht=pt.Fragment,gt=(vt.i18n.__,vt.components.ToolbarButton),bt=vt.blockEditor,yt=bt.RichTextToolbarButton,kt=bt.RichTextShortcut,Tt=vt.richText,wt=Tt.registerFormatType,xt=Tt.getActiveFormat,Ft=Tt.toggleFormat,Ct=(Tt.applyFormat,Tt.removeFormat,"tadv/mark"),Bt=mt.strMark||"Mark",Nt="editor-textcolor";function At(t,e){e(Ft(t,{type:Ct}))}var Et=window.wp,_t=window.tadvBlockButtons||{},St=Et.element,Ot=St.createElement,Rt=St.Fragment,Pt=Et.i18n.__,Mt=Et.components.ToolbarButton,jt=Et.blockEditor,Ut=jt.RichTextToolbarButton,It=jt.RichTextShortcut,zt=Et.richText,Lt=zt.registerFormatType,Gt=zt.getActiveFormat,Vt=zt.applyFormat,$t=zt.removeFormat,qt="core/underline",Dt=Pt("Underline"),Ht="editor-underline";function Jt(t,e){Gt(t,qt)?e($t(t,qt)):e(Vt(t,{type:qt,attributes:{style:"text-decoration: underline"}}))}var Kt=window.wp,Qt=Kt.element,Wt=Qt.createElement,Xt=(Qt.Fragment,Kt.i18n.__),Yt=Kt.components.ToolbarButton,Zt=Kt.blockEditor,te=(Zt.RichTextToolbarButton,Zt.RichTextShortcut,Kt.richText),ee=(te.registerFormatType,te.getActiveFormat),oe=te.toggleFormat;function ne(t,e){e(oe(t,{type:"core/bold"}))}var re=window.wp,ae=re.element,ce=ae.createElement,ie=(ae.Fragment,re.i18n.__),le=re.components.ToolbarButton,ue=re.blockEditor,se=(ue.RichTextToolbarButton,ue.RichTextShortcut,re.richText),de=(se.registerFormatType,se.getActiveFormat),ve=se.toggleFormat;function me(t,e){e(ve(t,{type:"core/italic"}))}var pe=window.wp,fe=window.tadvBlockButtons,he=pe.element,ge=he.createElement,be=he.Fragment,ye=pe.richText,ke=ye.registerFormatType,Te=ye.getActiveFormat,we=ye.toggleFormat,xe=pe.components.ToolbarButton,Fe=pe.blockEditor,Ce=Fe.RichTextToolbarButton,Be=Fe.RichTextShortcut,Ne=pe.components,Ae=Ne.Path,Ee=Ne.SVG,_e=ge(Ee,{viewBox:"-85 -985 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ge(Ae,{"aria-hidden":"true",role:"img",focusable:"false",transform:"scale(1, -1)",translate:"(0, -960)",d:"M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z"})),Se=ge(Ee,{viewBox:"-85 -975 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ge(Ae,{"aria-hidden":"true",role:"img",focusable:"false",transform:"scale(1, -1)",translate:"(0, -960)",d:"M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z"}));function Oe(t,e,o){e(we(t,{type:o}))}function Re(t,e){var o=t.type,n=t.tagName,r=t.title,a=t.character,c=t.icon;ke(o,{title:r,tagName:n,className:null,edit:function(t){var n=t.isActive,i=t.value,l=t.onChange,u=null,s=ge(Be,{type:"primary",character:a,onUse:function(){return Oe(i,l,o)}});return e||(u=ge(Ce,{title:r,icon:c,onClick:function(){return Oe(i,l,o)},isActive:n,shortcutType:"primary",shortcutCharacter:a})),ge(be,null,s,u)}})}var Pe,Me=window.wp,je=Me.element.createElement,Ue=Me.data.select,Ie=Me.hooks.addFilter,ze=Me.components,Le=ze.PanelBody,Ge=ze.Toolbar,Ve=Me.blockEditor.InspectorControls,$e=Me.richText,qe=$e.registerFormatType,De=$e.unregisterFormatType,He=window.tadvBlockButtons||{},Je=He.buttons?He.buttons.split(","):[],Ke=He.panelButtons?He.panelButtons.split(","):[],Qe=He.unusedButtons?He.unusedButtons.split(","):[],We={"tadv/mark":function(t){wt(Ct,{title:mt.strMark,tagName:"mark",className:null,edit:function(e){var o=e.isActive,n=e.value,r=e.onChange,a=null,c=ft(kt,{type:"access",character:"m",onUse:function(){return At(n,r)}});return t||(a=ft(yt,{icon:Nt,title:Bt,onClick:function(){return At(n,r)},className:"tadv-icon-button-mark",isActive:o,shortcutType:"access",shortcutCharacter:"m"})),ft(ht,null,c,a)}})},"tadv/removeformat":function(t){T(N,{title:A,tagName:"u",className:"remove-format",edit:function(e){e.isActive;var o=e.value,n=e.onChange;return t?null:x(y,{icon:E,title:A,onClick:function(){return n(B(o))},isActive:null})}})},"tadv/sub":function(t){Re({type:"tadv/sub",tagName:"sub",title:fe.strSubscript,character:",",icon:Se},t)},"tadv/sup":function(t){Re({type:"tadv/sup",tagName:"sup",title:fe.strSuperscript,character:".",icon:_e},t)},"core/code":function(t){nt(lt,{title:ut,tagName:"code",className:null,__unstableInputRule:function(t){var e=t,o=e.start,n=e.text;if("`"!==n.slice(o-1,o))return t;var r=n.slice(0,o-1).lastIndexOf("`");if(-1===r)return t;var a=r,c=o-2;return a===c?t:(t=it(t,a,a+1),t=it(t,c,c+1),t=ct(t,{type:lt},a,c))},edit:function(e){var o=e.isActive,n=e.value,r=e.onChange,a=null,c=Q(et,{type:"access",character:"x",onUse:function(){return dt(n,r)}});return t||(a=Q(tt,{icon:st,title:ut,onClick:function(){return dt(n,r)},isActive:o,shortcutType:"access",shortcutCharacter:"x"})),Q(W,null,c,a)}})},"core/strikethrough":function(t){L($,{name:$,title:q,tagName:"s",className:null,edit:function(e){var o=e.isActive,n=e.value,r=e.onChange,a=null,c=O(I,{type:"access",character:"d",onUse:function(){return H(n,r)}});return t||(a=O(U,{icon:D,title:q,onClick:function(){return H(n,r)},isActive:o,shortcutType:"access",shortcutCharacter:"d"})),O(R,null,c,a)}})},"core/underline":function(t){Lt(qt,{title:Dt,tagName:"span",className:"underline",attributes:{style:"style"},edit:function(e){var o=e.isActive,n=e.value,r=e.onChange,a=null,c=Ot(It,{type:"primary",character:"u",onUse:function(){return Jt(n,r)}});return t||(a=Ot(Ut,{title:_t.strUnderline,icon:"editor-underline",onClick:function(){return Jt(n,r)},className:null,isActive:o,shortcutType:"primary",shortcutCharacter:"u"})),Ot(Rt,null,c,a)}})}},Xe={"core/bold":function(t,e,o){return Wt(Yt,{key:"core/bold",icon:"editor-bold",className:"tadv-icon-button",isActive:ee(e,"core/bold"),title:Xt("Bold"),onClick:function(){return ne(e,o)}})},"core/italic":function(t,e,o){return ce(le,{key:"core/italic",icon:"editor-italic",className:"tadv-icon-button",isActive:de(e,"core/italic"),title:ie("Italic"),onClick:function(){return me(e,o)}})},"core/code":function(t,e,o){return Q(Y,{key:lt,icon:st,className:"tadv-icon-button",isActive:rt(e,lt),title:ut,onClick:function(){return dt(e,o)}})},"core/strikethrough":function(t,e,o){return O(M,{key:$,icon:D,title:q,className:"tadv-icon-button",isActive:G(e,$),onClick:function(){return H(e,o)}})},"core/underline":function(t,e,o){return Ot(Mt,{key:qt,title:Dt,icon:Ht,className:"tadv-icon-button",isActive:Gt(e,qt),onClick:function(){return Jt(e,o)}})},"tadv/removeformat":function(t,e,o){return x(F,{key:N,icon:E,title:A,className:"tadv-icon-button",onClick:function(){return o(B(e))}})},"tadv/mark":function(t,e,o){return ft(gt,{key:Ct,icon:Nt,title:Bt,className:"tadv-icon-button tadv-icon-button-mark",isActive:xt(e,Ct),onClick:function(){return At(e,o)}})},"tadv/sup":function(t,e,o){var n="tadv/sup",r={key:n,icon:_e,className:"tadv-icon-button",isActive:Te(e,n),title:fe.strSuperscript,onClick:function(){return Oe(e,o,n)}};return ge(xe,r)},"tadv/sub":function(t,e,o){var n="tadv/sub",r={key:n,icon:Se,className:"tadv-icon-button",isActive:Te(e,n),title:fe.strSubscript,onClick:function(){return Oe(e,o,n)}};return ge(xe,r)}};function Ye(t){(function(t){var e=Ue("core/rich-text").getFormatTypes(),o=!1;return e.forEach(function(e){e.name===t&&(o=!0)}),o})(t)&&De(t)}function Ze(){Qe.length&&Qe.forEach(function(t){Ye(t)}),Je.forEach(function(t){We.hasOwnProperty(t)&&(Ye(t),We[t].call(null))}),Ke.length&&(Ke.forEach(function(t){-1===Je.indexOf(t)&&We.hasOwnProperty(t)&&(Ye(t),We[t].call(null,"panel"))}),qe("tadv/tadv-format-panel",{title:He.strFormatting,tagName:"span",className:"tadv-format-panel",edit:function(t){var e=t.isActive,o=t.value,n=t.onChange,r=[];return Ke.forEach(function(t){Xe.hasOwnProperty(t)&&r.push(Xe[t].call(null,e,o,n))}),je(Ve,null,je(Le,{title:He.strFormatting,className:"tadv-buttons-panel"},je(Ge,null,r)))}})),function(){if(n.colorPanel){var t=n.colorPanel.indexOf("tadv/color-panel")>-1,e=n.colorPanel.indexOf("tadv/background-color-panel")>-1;t&&d("tadv/color-panel",{title:n.strTextColor,tagName:"span",className:"tadv-color",attributes:{style:"style"},edit:function(t){var o,r,i=t.isActive,s=t.value,d=t.onChange;if(i){var h=p(s,"tadv/color-panel"),g=a(h,["attributes","style"])||"",b=p(s,"tadv/background-color-panel"),y=a(b,["attributes","style"])||"";o=f(g),r=f(y)}var k=[{value:o,onChange:function(t){d(t?v(s,{type:"tadv/color-panel",attributes:{style:"color:"+t}}):m(s,"tadv/color-panel"))},label:n.strTextColorLabel}];return e&&k.push({value:r,onChange:function(t){d(t?v(s,{type:"tadv/background-color-panel",attributes:{style:"background-color:"+t}}):m(s,"tadv/background-color-panel"))},label:n.strBackgroundColorLabel}),c(l,null,c(u,{title:n.strTextColor,initialOpen:!1,colorSettings:k}))}}),d("tadv/background-color-panel",{title:n.strBackgroundColor,tagName:"span",className:"tadv-background-color",attributes:{style:"style"},edit:function(o){var r,i=o.isActive,s=o.value,d=o.onChange;if(!e||t)return null;if(i){var h=p(s,"tadv/background-color-panel");r=f(a(h,["attributes","style"])||"")}var g=[{value:r,onChange:function(t){d(t?v(s,{type:"tadv/background-color-panel",attributes:{style:"background-color:"+t}}):m(s,"tadv/background-color-panel"))},label:n.strBackgroundColorLabel}];return c(l,null,c(u,{title:n.strTextColor,initialOpen:!1,colorSettings:g}))}})}}()}Ie("blocks.registerBlockType","tadv-register-formats",function(t){return Pe||(Ze(),Pe=!0),t})}});
block-editor/tma-block-editor.css CHANGED
@@ -1 +1 @@
1
- .block-library-classic__toolbar:empty{height:40px}div.block-library-classic__toolbar{border-color:transparent}.is-selected div.block-library-classic__toolbar{border-left-width:0}.rtl .is-selected div.block-library-classic__toolbar{border-left-width:1px;border-right-width:0}.is-selected .block-editor-block-list__block div.block-library-classic__toolbar{border-color:transparent}.editor-block-list__block[data-type="core/freeform"]>.editor-block-list__insertion-point{z-index:11}.editor-block-list__block[data-type="core/freeform"] .editor-block-list__insertion-point-inserter .editor-inserter__toggle{margin-top:-2px}.editor-block-list__layout .block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar{margin-bottom:108px}.block-library-classic__toolbar .mce-btn .mce-txt{font-size:13px;color:#454545}div.mce-menubar,div.mce-menubar *{box-sizing:border-box}div.editor-block-list__layout .block-library-classic__toolbar .mce-menubar+.mce-toolbar-grp .mce-container-body .mce-toolbar{padding:0}@media (min-width:600px){.block-library-classic__toolbar .mce-menubar>.mce-container-body{padding-top:5px;padding-right:36px;white-space:normal;width:auto!important}.rtl .block-library-classic__toolbar .mce-menubar>.mce-container-body{padding-right:0;padding-left:36px}}.block-library-classic__toolbar .mce-menubar{min-height:38px}.block-library-classic__toolbar .mce-menubar i.mce-caret{margin-top:.32em}.block-library-classic__toolbar .mce-menubar .mce-flow-layout-item{margin:2px 0}div.mce-menu-item.mce-menu-item-preview.mce-active:hover,div.mce-menu .mce-menu-item-normal.mce-active,div.mce-menu .mce-menu-item-preview.mce-active,div.mce-menu .mce-menu-item.mce-selected,div.mce-menu .mce-menu-item:focus,div.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}div.mce-menu-item.mce-active .mce-menu-shortcut,div.mce-menu-item.mce-disabled:hover .mce-ico,div.mce-menu-item.mce-disabled:hover .mce-text,div.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico,div.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,div.mce-menu-item:focus .mce-ico,div.mce-menu-item:focus .mce-menu-shortcut,div.mce-menu-item:focus .mce-text,div.mce-menu-item:hover .mce-ico,div.mce-menu-item:hover .mce-menu-shortcut,div.mce-menu-item:hover .mce-text{color:inherit}div.mce-menu .mce-menu-item.mce-disabled{cursor:default}div.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-inline-toolbar-grp .mce-btn.mce-active:hover button,div.mce-inline-toolbar-grp .mce-btn.mce-active:hover i,div.mce-inline-toolbar-grp .mce-btn.mce-active button,div.mce-inline-toolbar-grp .mce-btn.mce-active i,div.mce-inline-toolbar-grp .mce-btn:hover i,div.mce-toolbar-grp .mce-btn.mce-active:hover button,div.mce-toolbar-grp .mce-btn.mce-active:hover i div.mce-inline-toolbar-grp .mce-btn:hover button,div.mce-toolbar-grp .mce-btn.mce-active button,div.mce-toolbar-grp .mce-btn.mce-active i,div.mce-toolbar-grp .mce-btn:hover button,div.mce-toolbar-grp .mce-btn:hover i{color:#191e23}div.mce-inline-toolbar-grp .mce-btn i,div.mce-toolbar-grp .mce-btn i{font-style:normal}div.mce-widget.mce-tooltip .mce-tooltip-inner{font-size:13px;opacity:1}div.mce-menubar.mce-toolbar .mce-btn button{padding:3px 4px 2px}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}div.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}div.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}div.mce-menubtn span{margin-right:0;padding-left:3px}div.mce-menu-has-icons i.mce-ico:before{margin-left:0}div.mce-menu-has-icons i.mce-ico{line-height:16px}.wp-core-ui .mce-menu-item .mce-text{font-size:13px}.block-library-classic__toolbar .mce-menubar .mce-menubtn.mce-active,.block-library-classic__toolbar .mce-menubar .mce-menubtn:focus,.block-library-classic__toolbar .mce-menubar .mce-menubtn:hover{border-color:transparent}.block-library-classic__toolbar .mce-menubar .mce-menubtn.mce-active span,.block-library-classic__toolbar .mce-menubar .mce-menubtn:focus span,.block-library-classic__toolbar .mce-menubar .mce-menubtn:hover span{color:#000}.wp-block-freeform.block-library-rich-text__tinymce table{width:100%}
1
+ div[data-type="core/freeform"].is-selected .block-library-classic__toolbar,div[data-type="core/freeform"].is-typing .block-library-classic__toolbar{display:block;border-color:transparent}.block-library-classic__toolbar .mce-btn .mce-txt{font-size:13px;color:#454545}.mce-tinymce-inline .mce-menubar>div,.mce-tinymce-inline .mce-toolbar .mce-btn-group>div{white-space:normal}div.mce-menubar,div.mce-menubar *{box-sizing:border-box}.block-library-classic__toolbar .mce-menubar{padding:2px 2px 1px}.block-library-classic__toolbar .mce-menubar .mce-menubtn button span{font-size:13px}.block-library-classic__toolbar .mce-menubar i.mce-caret{margin-top:.35em}.block-library-classic__toolbar .mce-menubar .mce-flow-layout-item{margin:2px 0}div.mce-menubar.mce-toolbar .mce-btn button{padding:3px 4px 2px}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}div.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}div.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}div.mce-menubtn span{margin-right:0;padding-left:3px}div.mce-menu-has-icons i.mce-ico:before{margin-left:0}div.mce-menu-has-icons i.mce-ico{line-height:16px}.wp-core-ui .mce-menu-item .mce-text{font-size:13px}.block-library-classic__toolbar .mce-menubar .mce-menubtn.mce-active,.block-library-classic__toolbar .mce-menubar .mce-menubtn:focus,.block-library-classic__toolbar .mce-menubar .mce-menubtn:hover{border-color:transparent}.block-library-classic__toolbar .mce-menubar .mce-menubtn.mce-active span,.block-library-classic__toolbar .mce-menubar .mce-menubtn:focus span,.block-library-classic__toolbar .mce-menubar .mce-menubtn:hover span{color:#000}.mce-inline-toolbar-grp div.wp-link-input{margin:2px 4px}.mce-inline-toolbar-grp div.wp-link-input input{padding:4px}div.mce-menu-item.mce-menu-item-preview.mce-active:hover,div.mce-menu .mce-menu-item-normal.mce-active,div.mce-menu .mce-menu-item-preview.mce-active,div.mce-menu .mce-menu-item.mce-selected,div.mce-menu .mce-menu-item:focus,div.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}div.mce-menu-item.mce-active .mce-menu-shortcut,div.mce-menu-item.mce-disabled:hover .mce-ico,div.mce-menu-item.mce-disabled:hover .mce-text,div.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico,div.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,div.mce-menu-item:focus .mce-ico,div.mce-menu-item:focus .mce-menu-shortcut,div.mce-menu-item:focus .mce-text,div.mce-menu-item:hover .mce-ico,div.mce-menu-item:hover .mce-menu-shortcut,div.mce-menu-item:hover .mce-text{color:inherit}div.mce-menu .mce-menu-item.mce-disabled{cursor:default}div.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-inline-toolbar-grp .mce-btn.mce-active:hover button,div.mce-inline-toolbar-grp .mce-btn.mce-active:hover i,div.mce-inline-toolbar-grp .mce-btn.mce-active button,div.mce-inline-toolbar-grp .mce-btn.mce-active i,div.mce-inline-toolbar-grp .mce-btn:hover i,div.mce-toolbar-grp .mce-btn.mce-active:hover button,div.mce-toolbar-grp .mce-btn.mce-active:hover i div.mce-inline-toolbar-grp .mce-btn:hover button,div.mce-toolbar-grp .mce-btn.mce-active button,div.mce-toolbar-grp .mce-btn.mce-active i,div.mce-toolbar-grp .mce-btn:hover button,div.mce-toolbar-grp .mce-btn:hover i{color:#191e23}div.mce-inline-toolbar-grp .mce-btn i,div.mce-toolbar-grp .mce-btn i{font-style:normal}div.mce-widget.mce-tooltip .mce-tooltip-inner{font-size:13px;opacity:1}.mce-toolbar-grp .mce-toolbar .mce-btn-group .mce-btn{margin:0}.mce-inline-toolbar-grp.mce-panel .mce-toolbar .mce-btn{margin:2px 1px}.mce-inline-toolbar-grp.mce-panel .mce-toolbar .mce-btn button{padding:3px}.wp-block-freeform.block-library-rich-text__tinymce table{width:100%}
mce/advlist/plugin.js CHANGED
@@ -132,7 +132,7 @@ var advlist = (function () {
132
  if (styles.length > 0) {
133
  addSplitButton(editor, id, tooltip, cmd, nodeName, styles);
134
  } else {
135
- addButton(editor, id, tooltip, cmd, nodeName, styles);
136
  }
137
  };
138
  var register$1 = function (editor) {
132
  if (styles.length > 0) {
133
  addSplitButton(editor, id, tooltip, cmd, nodeName, styles);
134
  } else {
135
+ addButton(editor, id, tooltip, cmd, nodeName);
136
  }
137
  };
138
  var register$1 = function (editor) {
mce/print/plugin.js CHANGED
@@ -4,9 +4,15 @@ var print = (function () {
4
 
5
  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6
 
 
 
7
  var register = function (editor) {
8
  editor.addCommand('mcePrint', function () {
9
- editor.getWin().print();
 
 
 
 
10
  });
11
  };
12
  var Commands = { register: register };
4
 
5
  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6
 
7
+ var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
8
+
9
  var register = function (editor) {
10
  editor.addCommand('mcePrint', function () {
11
+ if (global$1.ie && global$1.ie <= 11) {
12
+ editor.getDoc().execCommand('print', false, null);
13
+ } else {
14
+ editor.getWin().print();
15
+ }
16
  });
17
  };
18
  var Commands = { register: register };
mce/print/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t){t.addCommand("mcePrint",function(){t.getWin().print()})},i=function(t){t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print"})};t.add("print",function(t){n(t),i(t),t.addShortcut("Meta+P","","mcePrint")})}();
1
+ !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.Env"),i=function(t){t.addCommand("mcePrint",function(){n.ie&&n.ie<=11?t.getDoc().execCommand("print",!1,null):t.getWin().print()})},e=function(t){t.addButton("print",{title:"Print",cmd:"mcePrint"}),t.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print"})};t.add("print",function(t){i(t),e(t),t.addShortcut("Meta+P","","mcePrint")})}();
mce/table/plugin.js CHANGED
@@ -5,10 +5,6 @@ var table = (function (domGlobals) {
5
  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6
 
7
  var noop = function () {
8
- var args = [];
9
- for (var _i = 0; _i < arguments.length; _i++) {
10
- args[_i] = arguments[_i];
11
- }
12
  };
13
  var compose = function (fa, fb) {
14
  return function () {
@@ -55,9 +51,6 @@ var table = (function (domGlobals) {
55
  throw new Error(msg);
56
  };
57
  };
58
- var apply = function (f) {
59
- return f();
60
- };
61
  var never = constant(false);
62
  var always = constant(true);
63
 
@@ -115,8 +108,9 @@ var table = (function (domGlobals) {
115
  },
116
  toString: constant('none()')
117
  };
118
- if (Object.freeze)
119
  Object.freeze(me);
 
120
  return me;
121
  }();
122
  var some = function (a) {
@@ -191,13 +185,16 @@ var table = (function (domGlobals) {
191
  };
192
 
193
  var typeOf = function (x) {
194
- if (x === null)
195
  return 'null';
 
196
  var t = typeof x;
197
- if (t === 'object' && Array.prototype.isPrototypeOf(x))
198
  return 'array';
199
- if (t === 'object' && String.prototype.isPrototypeOf(x))
 
200
  return 'string';
 
201
  return t;
202
  };
203
  var isType = function (type) {
@@ -211,6 +208,7 @@ var table = (function (domGlobals) {
211
  var isFunction = isType('function');
212
  var isNumber = isType('number');
213
 
 
214
  var rawIndexOf = function () {
215
  var pIndexOf = Array.prototype.indexOf;
216
  var fastIndex = function (xs, x) {
@@ -258,29 +256,6 @@ var table = (function (domGlobals) {
258
  }
259
  return r;
260
  };
261
- var groupBy = function (xs, f) {
262
- if (xs.length === 0) {
263
- return [];
264
- } else {
265
- var wasType = f(xs[0]);
266
- var r = [];
267
- var group = [];
268
- for (var i = 0, len = xs.length; i < len; i++) {
269
- var x = xs[i];
270
- var type = f(x);
271
- if (type !== wasType) {
272
- r.push(group);
273
- group = [];
274
- }
275
- wasType = type;
276
- group.push(x);
277
- }
278
- if (group.length !== 0) {
279
- r.push(group);
280
- }
281
- return r;
282
- }
283
- };
284
  var foldr = function (xs, f, acc) {
285
  eachr(xs, function (x) {
286
  acc = f(acc, x);
@@ -323,8 +298,9 @@ var table = (function (domGlobals) {
323
  var flatten = function (xs) {
324
  var r = [];
325
  for (var i = 0, len = xs.length; i < len; ++i) {
326
- if (!Array.prototype.isPrototypeOf(xs[i]))
327
  throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
 
328
  push.apply(r, xs[i]);
329
  }
330
  return r;
@@ -342,17 +318,11 @@ var table = (function (domGlobals) {
342
  }
343
  return true;
344
  };
345
- var slice = Array.prototype.slice;
346
  var reverse = function (xs) {
347
  var r = slice.call(xs, 0);
348
  r.reverse();
349
  return r;
350
  };
351
- var sort = function (xs, comparator) {
352
- var copy = slice.call(xs, 0);
353
- copy.sort(comparator);
354
- return copy;
355
- };
356
  var last = function (xs) {
357
  return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
358
  };
@@ -407,28 +377,30 @@ var table = (function (domGlobals) {
407
  };
408
  };
409
 
410
- var sort$1 = function (arr) {
411
  return arr.slice(0).sort();
412
  };
413
  var reqMessage = function (required, keys) {
414
- throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.');
415
  };
416
  var unsuppMessage = function (unsupported) {
417
- throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
418
  };
419
  var validateStrArr = function (label, array) {
420
- if (!isArray(array))
421
  throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
 
422
  each(array, function (a) {
423
- if (!isString(a))
424
  throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
 
425
  });
426
  };
427
  var invalidTypeMessage = function (incorrect, type) {
428
- throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.');
429
  };
430
  var checkDupes = function (everything) {
431
- var sorted = sort$1(everything);
432
  var dupe = find(sorted, function (s, i) {
433
  return i < sorted.length - 1 && s === sorted[i + 1];
434
  });
@@ -439,8 +411,9 @@ var table = (function (domGlobals) {
439
 
440
  var MixedBag = function (required, optional) {
441
  var everything = required.concat(optional);
442
- if (everything.length === 0)
443
  throw new Error('You must specify at least one required or optional field.');
 
444
  validateStrArr('required', required);
445
  validateStrArr('optional', optional);
446
  checkDupes(everything);
@@ -449,13 +422,15 @@ var table = (function (domGlobals) {
449
  var allReqd = forall(required, function (req) {
450
  return contains(keys$1, req);
451
  });
452
- if (!allReqd)
453
  reqMessage(required, keys$1);
 
454
  var unsupported = filter(keys$1, function (key) {
455
  return !contains(everything, key);
456
  });
457
- if (unsupported.length > 0)
458
  unsuppMessage(unsupported);
 
459
  var r = {};
460
  each(required, function (req) {
461
  r[req] = constant(obj[req]);
@@ -480,6 +455,32 @@ var table = (function (domGlobals) {
480
  var ENTITY = domGlobals.Node.ENTITY_NODE;
481
  var NOTATION = domGlobals.Node.NOTATION_NODE;
482
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
483
  var name = function (element) {
484
  var r = element.dom().nodeName;
485
  return r.toLowerCase();
@@ -497,7 +498,6 @@ var table = (function (domGlobals) {
497
  };
498
  var isElement = isType$1(ELEMENT);
499
  var isText = isType$1(TEXT);
500
- var isDocument = isType$1(DOCUMENT);
501
 
502
  var rawSet = function (dom, key, value) {
503
  if (isString(value) || isBoolean(value) || isNumber(value)) {
@@ -535,10 +535,12 @@ var table = (function (domGlobals) {
535
  };
536
 
537
  var checkRange = function (str, substr, start) {
538
- if (substr === '')
539
  return true;
540
- if (str.length < substr.length)
 
541
  return false;
 
542
  var x = str.substr(start, start + substr.length);
543
  return x === substr;
544
  };
@@ -553,7 +555,7 @@ var table = (function (domGlobals) {
553
  };
554
 
555
  var isSupported = function (dom) {
556
- return dom.style !== undefined;
557
  };
558
 
559
  var cached = function (f) {
@@ -681,30 +683,6 @@ var table = (function (domGlobals) {
681
  }
682
  };
683
 
684
- var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
685
-
686
- var path = function (parts, scope) {
687
- var o = scope !== undefined && scope !== null ? scope : Global;
688
- for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
689
- o = o[parts[i]];
690
- return o;
691
- };
692
- var resolve = function (p, scope) {
693
- var parts = p.split('.');
694
- return path(parts, scope);
695
- };
696
-
697
- var unsafe = function (name, scope) {
698
- return resolve(name, scope);
699
- };
700
- var getOrDie = function (name, scope) {
701
- var actual = unsafe(name, scope);
702
- if (actual === undefined || actual === null)
703
- throw name + ' not available on this browser';
704
- return actual;
705
- };
706
- var Global$1 = { getOrDie: getOrDie };
707
-
708
  var node = function () {
709
  var f = Global$1.getOrDie('Node');
710
  return f;
@@ -726,18 +704,20 @@ var table = (function (domGlobals) {
726
  var firstMatch = function (regexes, s) {
727
  for (var i = 0; i < regexes.length; i++) {
728
  var x = regexes[i];
729
- if (x.test(s))
730
  return x;
 
731
  }
732
  return undefined;
733
  };
734
  var find$1 = function (regexes, agent) {
735
  var r = firstMatch(regexes, agent);
736
- if (!r)
737
  return {
738
  major: 0,
739
  minor: 0
740
  };
 
741
  var group = function (i) {
742
  return Number(agent.replace(r, '$' + i));
743
  };
@@ -745,8 +725,9 @@ var table = (function (domGlobals) {
745
  };
746
  var detect = function (versionRegexes, agent) {
747
  var cleanedAgent = String(agent).toLowerCase();
748
- if (versionRegexes.length === 0)
749
  return unknown();
 
750
  return find$1(versionRegexes, cleanedAgent);
751
  };
752
  var unknown = function () {
@@ -912,8 +893,7 @@ var table = (function (domGlobals) {
912
  name: 'Edge',
913
  versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
914
  search: function (uastring) {
915
- var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
916
- return monstrosity;
917
  }
918
  },
919
  {
@@ -1031,19 +1011,22 @@ var table = (function (domGlobals) {
1031
  var ELEMENT$1 = ELEMENT;
1032
  var DOCUMENT$1 = DOCUMENT;
1033
  var is = function (element, selector) {
1034
- var elem = element.dom();
1035
- if (elem.nodeType !== ELEMENT$1) {
1036
  return false;
1037
- } else if (elem.matches !== undefined) {
1038
- return elem.matches(selector);
1039
- } else if (elem.msMatchesSelector !== undefined) {
1040
- return elem.msMatchesSelector(selector);
1041
- } else if (elem.webkitMatchesSelector !== undefined) {
1042
- return elem.webkitMatchesSelector(selector);
1043
- } else if (elem.mozMatchesSelector !== undefined) {
1044
- return elem.mozMatchesSelector(selector);
1045
  } else {
1046
- throw new Error('Browser lacks native selectors');
 
 
 
 
 
 
 
 
 
 
 
1047
  }
1048
  };
1049
  var bypassSelector = function (dom) {
@@ -1077,16 +1060,13 @@ var table = (function (domGlobals) {
1077
  return Element.fromDom(element.dom().ownerDocument);
1078
  };
1079
  var defaultView = function (element) {
1080
- var el = element.dom();
1081
- var defView = el.ownerDocument.defaultView;
1082
- return Element.fromDom(defView);
1083
  };
1084
  var parent = function (element) {
1085
- var dom = element.dom();
1086
- return Option.from(dom.parentNode).map(Element.fromDom);
1087
  };
1088
  var parents = function (element, isRoot) {
1089
- var stop = isFunction(isRoot) ? isRoot : constant(false);
1090
  var dom = element.dom();
1091
  var ret = [];
1092
  while (dom.parentNode !== null && dom.parentNode !== undefined) {
@@ -1102,16 +1082,13 @@ var table = (function (domGlobals) {
1102
  return ret;
1103
  };
1104
  var prevSibling = function (element) {
1105
- var dom = element.dom();
1106
- return Option.from(dom.previousSibling).map(Element.fromDom);
1107
  };
1108
  var nextSibling = function (element) {
1109
- var dom = element.dom();
1110
- return Option.from(dom.nextSibling).map(Element.fromDom);
1111
  };
1112
  var children = function (element) {
1113
- var dom = element.dom();
1114
- return map(dom.childNodes, Element.fromDom);
1115
  };
1116
  var child = function (element, index) {
1117
  var cs = element.dom().childNodes;
@@ -1192,6 +1169,7 @@ var table = (function (domGlobals) {
1192
  remove$2(wrapper);
1193
  };
1194
 
 
1195
  var dimensions = Immutable('width', 'height');
1196
  var grid = Immutable('rows', 'columns');
1197
  var address = Immutable('row', 'column');
@@ -1205,21 +1183,6 @@ var table = (function (domGlobals) {
1205
  var rowcells = Immutable('cells', 'section');
1206
  var rowdetails = Immutable('details', 'section');
1207
  var bounds = Immutable('startRow', 'startCol', 'finishRow', 'finishCol');
1208
- var Structs = {
1209
- dimensions: dimensions,
1210
- grid: grid,
1211
- address: address,
1212
- coords: coords,
1213
- extended: extended,
1214
- detail: detail,
1215
- detailnew: detailnew,
1216
- rowdata: rowdata,
1217
- elementnew: elementnew,
1218
- rowdatanew: rowdatanew,
1219
- rowcells: rowcells,
1220
- rowdetails: rowdetails,
1221
- bounds: bounds
1222
- };
1223
 
1224
  var ancestors = function (scope, predicate, isRoot) {
1225
  return filter(parents(scope, isRoot), predicate);
@@ -1271,20 +1234,24 @@ var table = (function (domGlobals) {
1271
  return Option.none();
1272
  };
1273
  var closest = function (scope, predicate, isRoot) {
1274
- var is = function (s) {
1275
- return predicate(s);
1276
  };
1277
  return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
1278
  };
1279
  var child$1 = function (scope, predicate) {
1280
- var result = find(scope.dom().childNodes, compose(predicate, Element.fromDom));
 
 
 
1281
  return result.map(Element.fromDom);
1282
  };
1283
  var descendant = function (scope, predicate) {
1284
  var descend = function (node) {
1285
  for (var i = 0; i < node.childNodes.length; i++) {
1286
- if (predicate(Element.fromDom(node.childNodes[i]))) {
1287
- return Option.some(Element.fromDom(node.childNodes[i]));
 
1288
  }
1289
  var res = descend(node.childNodes[i]);
1290
  if (res.isSome()) {
@@ -1326,8 +1293,10 @@ var table = (function (domGlobals) {
1326
  filterFirstLayer: filterFirstLayer
1327
  };
1328
 
1329
- var lookup = function (tags, element, _isRoot) {
1330
- var isRoot = _isRoot !== undefined ? _isRoot : constant(false);
 
 
1331
  if (isRoot(element)) {
1332
  return Option.none();
1333
  }
@@ -1382,7 +1351,7 @@ var table = (function (domGlobals) {
1382
  var grid$1 = function (element, rowProp, colProp) {
1383
  var rowsCount = attr(element, rowProp);
1384
  var cols = attr(element, colProp);
1385
- return Structs.grid(rowsCount, cols);
1386
  };
1387
  var TableLookup = {
1388
  cell: cell,
@@ -1410,9 +1379,9 @@ var table = (function (domGlobals) {
1410
  var cells = map(TableLookup.cells(row), function (cell) {
1411
  var rowspan = has(cell, 'rowspan') ? parseInt(get(cell, 'rowspan'), 10) : 1;
1412
  var colspan = has(cell, 'colspan') ? parseInt(get(cell, 'colspan'), 10) : 1;
1413
- return Structs.detail(cell, rowspan, colspan);
1414
  });
1415
- return Structs.rowdata(element, cells, parentSection);
1416
  });
1417
  };
1418
  var fromPastedRows = function (rows, example) {
@@ -1420,9 +1389,9 @@ var table = (function (domGlobals) {
1420
  var cells = map(TableLookup.cells(row), function (cell) {
1421
  var rowspan = has(cell, 'rowspan') ? parseInt(get(cell, 'rowspan'), 10) : 1;
1422
  var colspan = has(cell, 'colspan') ? parseInt(get(cell, 'colspan'), 10) : 1;
1423
- return Structs.detail(cell, rowspan, colspan);
1424
  });
1425
- return Structs.rowdata(row, cells, example.section());
1426
  });
1427
  };
1428
  var DetailsList = {
@@ -1456,12 +1425,12 @@ var table = (function (domGlobals) {
1456
  var maxColumns = 0;
1457
  each(list, function (details, r) {
1458
  var currentRow = [];
1459
- each(details.cells(), function (detail, c) {
1460
  var start = 0;
1461
  while (access[key(r, start)] !== undefined) {
1462
  start++;
1463
  }
1464
- var current = Structs.extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);
1465
  for (var i = 0; i < detail.colspan(); i++) {
1466
  for (var j = 0; j < detail.rowspan(); j++) {
1467
  var cr = r + j;
@@ -1473,11 +1442,11 @@ var table = (function (domGlobals) {
1473
  }
1474
  currentRow.push(current);
1475
  });
1476
- cells.push(Structs.rowdata(details.element(), currentRow, details.section()));
1477
  });
1478
- var grid = Structs.grid(maxRows, maxColumns);
1479
  return {
1480
- grid: constant(grid),
1481
  access: constant(access),
1482
  all: constant(cells)
1483
  };
@@ -1589,18 +1558,9 @@ var table = (function (domGlobals) {
1589
  }
1590
  return getOption(element).getOr('');
1591
  };
1592
- var getOptionIE10 = function (element) {
1593
- try {
1594
- return getOptionSafe(element);
1595
- } catch (e) {
1596
- return Option.none();
1597
- }
1598
- };
1599
- var getOptionSafe = function (element) {
1600
  return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
1601
  };
1602
- var browser = PlatformDetection$1.detect().browser;
1603
- var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;
1604
  var set = function (element, value) {
1605
  if (!is(element)) {
1606
  throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');
@@ -1709,8 +1669,8 @@ var table = (function (domGlobals) {
1709
  });
1710
  return replica;
1711
  };
1712
- var pasteReplace = function (cellContent) {
1713
- return cellContent;
1714
  };
1715
  var newRow = function (doc) {
1716
  return function () {
@@ -1789,6 +1749,121 @@ var table = (function (domGlobals) {
1789
  return children(Element.fromDom(div));
1790
  };
1791
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1792
  var TagBoundaries = [
1793
  'body',
1794
  'p',
@@ -1831,15 +1906,18 @@ var table = (function (domGlobals) {
1831
  return element.dom().ownerDocument;
1832
  };
1833
  var isBoundary = function (element) {
1834
- if (!isElement(element))
1835
  return false;
1836
- if (name(element) === 'body')
 
1837
  return true;
 
1838
  return contains(TagBoundaries, name(element));
1839
  };
1840
  var isEmptyTag = function (element) {
1841
- if (!isElement(element))
1842
  return false;
 
1843
  return contains([
1844
  'br',
1845
  'img',
@@ -1919,6 +1997,7 @@ var table = (function (domGlobals) {
1919
  }
1920
 
1921
  var leftRight = Immutable('left', 'right');
 
1922
  var bisect = function (universe, parent, child) {
1923
  var children = universe.property().children(parent);
1924
  var index = findIndex(children, curry(universe.eq, child));
@@ -1947,12 +2026,11 @@ var table = (function (domGlobals) {
1947
  });
1948
  };
1949
  var breakPath = function (universe, item, isTop, breaker) {
1950
- var result = Immutable('first', 'second', 'splits');
1951
  var next = function (child, group, splits) {
1952
- var fallback = result(child, Option.none(), splits);
1953
- if (isTop(child))
1954
- return result(child, group, splits);
1955
- else {
1956
  return universe.property().parent(child).bind(function (parent) {
1957
  return breaker(universe, parent, child).map(function (breakage) {
1958
  var extra = [{
@@ -1961,17 +2039,12 @@ var table = (function (domGlobals) {
1961
  }];
1962
  var nextChild = isTop(parent) ? parent : breakage.left();
1963
  return next(nextChild, Option.some(breakage.right()), splits.concat(extra));
1964
- }).getOr(fallback);
1965
- });
1966
  }
1967
  };
1968
  return next(item, Option.none(), []);
1969
  };
1970
- var Breaker = {
1971
- breakToLeft: breakToLeft,
1972
- breakToRight: breakToRight,
1973
- breakPath: breakPath
1974
- };
1975
 
1976
  var all$1 = function (universe, look, elements, f) {
1977
  var head = elements[0];
@@ -1993,17 +2066,18 @@ var table = (function (domGlobals) {
1993
  return end.filter(curry(universe.eq, s));
1994
  });
1995
  };
1996
- var Shared = { oneAll: oneAll };
1997
 
1998
  var eq$1 = function (universe, item) {
1999
  return curry(universe.eq, item);
2000
  };
2001
  var unsafeSubset = function (universe, common, ps1, ps2) {
2002
  var children = universe.property().children(common);
2003
- if (universe.eq(common, ps1[0]))
2004
  return Option.some([ps1[0]]);
2005
- if (universe.eq(common, ps2[0]))
 
2006
  return Option.some([ps2[0]]);
 
2007
  var finder = function (ps) {
2008
  var topDown = reverse(ps);
2009
  var index = findIndex(topDown, eq$1(universe, common)).getOr(-1);
@@ -2020,8 +2094,10 @@ var table = (function (domGlobals) {
2020
  });
2021
  });
2022
  };
2023
- var ancestors$2 = function (universe, start, end, _isRoot) {
2024
- var isRoot = _isRoot !== undefined ? _isRoot : constant(false);
 
 
2025
  var ps1 = [start].concat(universe.up().all(start));
2026
  var ps2 = [end].concat(universe.up().all(end));
2027
  var prune = function (path) {
@@ -2049,29 +2125,17 @@ var table = (function (domGlobals) {
2049
  return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());
2050
  });
2051
  };
2052
- var Subset = {
2053
  subset: subset,
2054
  ancestors: ancestors$2
2055
  };
2056
 
2057
- var sharedOne = function (universe, look, elements) {
2058
- return Shared.oneAll(universe, look, elements);
2059
- };
2060
- var subset$1 = function (universe, start, finish) {
2061
- return Subset.subset(universe, start, finish);
2062
- };
2063
- var ancestors$3 = function (universe, start, finish, _isRoot) {
2064
- return Subset.ancestors(universe, start, finish, _isRoot);
2065
- };
2066
- var breakToLeft$1 = function (universe, parent, child) {
2067
- return Breaker.breakToLeft(universe, parent, child);
2068
- };
2069
- var breakToRight$1 = function (universe, parent, child) {
2070
- return Breaker.breakToRight(universe, parent, child);
2071
- };
2072
- var breakPath$1 = function (universe, child, isTop, breaker) {
2073
- return Breaker.breakPath(universe, child, isTop, breaker);
2074
- };
2075
  var Parent = {
2076
  sharedOne: sharedOne,
2077
  subset: subset$1,
@@ -2083,15 +2147,15 @@ var table = (function (domGlobals) {
2083
 
2084
  var universe = DomUniverse();
2085
  var sharedOne$1 = function (look, elements) {
2086
- return Parent.sharedOne(universe, function (universe, element) {
2087
  return look(element);
2088
  }, elements);
2089
  };
2090
  var subset$2 = function (start, finish) {
2091
  return Parent.subset(universe, start, finish);
2092
  };
2093
- var ancestors$4 = function (start, finish, _isRoot) {
2094
- return Parent.ancestors(universe, start, finish, _isRoot);
2095
  };
2096
  var breakToLeft$2 = function (parent, child) {
2097
  return Parent.breakToLeft(universe, parent, child);
@@ -2113,142 +2177,33 @@ var table = (function (domGlobals) {
2113
  breakPath: breakPath$2
2114
  };
2115
 
2116
- var inSelection = function (bounds, detail) {
2117
- var leftEdge = detail.column();
2118
- var rightEdge = detail.column() + detail.colspan() - 1;
2119
- var topEdge = detail.row();
2120
- var bottomEdge = detail.row() + detail.rowspan() - 1;
2121
- return leftEdge <= bounds.finishCol() && rightEdge >= bounds.startCol() && (topEdge <= bounds.finishRow() && bottomEdge >= bounds.startRow());
2122
- };
2123
- var isWithin = function (bounds, detail) {
2124
- return detail.column() >= bounds.startCol() && detail.column() + detail.colspan() - 1 <= bounds.finishCol() && detail.row() >= bounds.startRow() && detail.row() + detail.rowspan() - 1 <= bounds.finishRow();
2125
- };
2126
- var isRectangular = function (warehouse, bounds) {
2127
- var isRect = true;
2128
- var detailIsWithin = curry(isWithin, bounds);
2129
- for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
2130
- for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
2131
- isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);
2132
- }
2133
- }
2134
- return isRect ? Option.some(bounds) : Option.none();
2135
- };
2136
- var CellBounds = {
2137
- inSelection: inSelection,
2138
- isWithin: isWithin,
2139
- isRectangular: isRectangular
2140
- };
2141
 
2142
- var getBounds = function (detailA, detailB) {
2143
- return Structs.bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));
2144
- };
2145
- var getAnyBox = function (warehouse, startCell, finishCell) {
2146
- var startCoords = Warehouse.findItem(warehouse, startCell, eq);
2147
- var finishCoords = Warehouse.findItem(warehouse, finishCell, eq);
2148
- return startCoords.bind(function (sc) {
2149
- return finishCoords.map(function (fc) {
2150
- return getBounds(sc, fc);
2151
- });
2152
- });
2153
  };
2154
- var getBox = function (warehouse, startCell, finishCell) {
2155
- return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {
2156
- return CellBounds.isRectangular(warehouse, bounds);
2157
- });
2158
- };
2159
- var CellGroup = {
2160
- getAnyBox: getAnyBox,
2161
- getBox: getBox
2162
- };
2163
-
2164
- var moveBy = function (warehouse, cell, row, column) {
2165
- return Warehouse.findItem(warehouse, cell, eq).bind(function (detail) {
2166
- var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();
2167
- var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();
2168
- var dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);
2169
- return dest.map(function (d) {
2170
- return d.element();
2171
- });
2172
- });
2173
- };
2174
- var intercepts = function (warehouse, start, finish) {
2175
- return CellGroup.getAnyBox(warehouse, start, finish).map(function (bounds) {
2176
- var inside = Warehouse.filterItems(warehouse, curry(CellBounds.inSelection, bounds));
2177
- return map(inside, function (detail) {
2178
- return detail.element();
2179
- });
2180
- });
2181
- };
2182
- var parentCell = function (warehouse, innerCell) {
2183
- var isContainedBy = function (c1, c2) {
2184
- return contains$2(c2, c1);
2185
- };
2186
- return Warehouse.findItem(warehouse, innerCell, isContainedBy).bind(function (detail) {
2187
- return detail.element();
2188
- });
2189
- };
2190
- var CellFinder = {
2191
- moveBy: moveBy,
2192
- intercepts: intercepts,
2193
- parentCell: parentCell
2194
- };
2195
-
2196
- var moveBy$1 = function (cell, deltaRow, deltaColumn) {
2197
- return TableLookup.table(cell).bind(function (table) {
2198
- var warehouse = getWarehouse(table);
2199
- return CellFinder.moveBy(warehouse, cell, deltaRow, deltaColumn);
2200
- });
2201
- };
2202
- var intercepts$1 = function (table, first, last) {
2203
- var warehouse = getWarehouse(table);
2204
- return CellFinder.intercepts(warehouse, first, last);
2205
- };
2206
- var nestedIntercepts = function (table, first, firstTable, last, lastTable) {
2207
- var warehouse = getWarehouse(table);
2208
- var startCell = eq(table, firstTable) ? first : CellFinder.parentCell(warehouse, first);
2209
- var lastCell = eq(table, lastTable) ? last : CellFinder.parentCell(warehouse, last);
2210
- return CellFinder.intercepts(warehouse, startCell, lastCell);
2211
- };
2212
- var getBox$1 = function (table, first, last) {
2213
- var warehouse = getWarehouse(table);
2214
- return CellGroup.getBox(warehouse, first, last);
2215
- };
2216
- var getWarehouse = function (table) {
2217
- var list = DetailsList.fromTable(table);
2218
- return Warehouse.generate(list);
2219
- };
2220
- var TablePositions = {
2221
- moveBy: moveBy$1,
2222
- intercepts: intercepts$1,
2223
- nestedIntercepts: nestedIntercepts,
2224
- getBox: getBox$1
2225
- };
2226
-
2227
- var lookupTable = function (container, isRoot) {
2228
- return ancestor$1(container, 'table');
2229
- };
2230
- var identified = MixedBag([
2231
- 'boxes',
2232
- 'start',
2233
- 'finish'
2234
- ], []);
2235
  var identify = function (start, finish, isRoot) {
2236
  var getIsRoot = function (rootTable) {
2237
  return function (element) {
2238
- return isRoot(element) || eq(element, rootTable);
2239
  };
2240
  };
2241
  if (eq(start, finish)) {
2242
- return Option.some(identified({
2243
  boxes: Option.some([start]),
2244
  start: start,
2245
  finish: finish
2246
  }));
2247
  } else {
2248
- return lookupTable(start, isRoot).bind(function (startTable) {
2249
- return lookupTable(finish, isRoot).bind(function (finishTable) {
2250
  if (eq(startTable, finishTable)) {
2251
- return Option.some(identified({
2252
  boxes: TablePositions.intercepts(startTable, start, finish),
2253
  start: start,
2254
  finish: finish
@@ -2256,7 +2211,7 @@ var table = (function (domGlobals) {
2256
  } else if (contains$2(startTable, finishTable)) {
2257
  var ancestorCells = ancestors$1(finish, 'td,th', getIsRoot(startTable));
2258
  var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;
2259
- return Option.some(identified({
2260
  boxes: TablePositions.nestedIntercepts(startTable, start, startTable, finish, finishTable),
2261
  start: start,
2262
  finish: finishCell
@@ -2264,7 +2219,7 @@ var table = (function (domGlobals) {
2264
  } else if (contains$2(finishTable, startTable)) {
2265
  var ancestorCells = ancestors$1(start, 'td,th', getIsRoot(finishTable));
2266
  var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;
2267
- return Option.some(identified({
2268
  boxes: TablePositions.nestedIntercepts(finishTable, start, startTable, finish, finishTable),
2269
  start: start,
2270
  finish: startCell
@@ -2276,7 +2231,7 @@ var table = (function (domGlobals) {
2276
  var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;
2277
  var startAncestorCells = ancestors$1(start, 'td,th', getIsRoot(lcaTable));
2278
  var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;
2279
- return Option.some(identified({
2280
  boxes: TablePositions.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),
2281
  start: startCell,
2282
  finish: finishCell
@@ -2411,8 +2366,9 @@ var table = (function (domGlobals) {
2411
  throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
2412
  }
2413
  var args = new Array(argLength);
2414
- for (var i = 0; i < args.length; i++)
2415
  args[i] = arguments[i];
 
2416
  var match = function (branches) {
2417
  var branchKeys = keys(branches);
2418
  if (constructors.length !== branchKeys.length) {
@@ -2421,8 +2377,9 @@ var table = (function (domGlobals) {
2421
  var allReqd = forall(constructors, function (reqKey) {
2422
  return contains(branchKeys, reqKey);
2423
  });
2424
- if (!allReqd)
2425
  throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
 
2426
  return branches[key].apply(null, args);
2427
  };
2428
  return {
@@ -2733,8 +2690,8 @@ var table = (function (domGlobals) {
2733
  return cellWidth / tableSize.pixelWidth() * 100;
2734
  };
2735
  var choosePercentageSize = function (element, width, tableSize) {
2736
- if (percentageBasedSizeRegex.test(width)) {
2737
- var percentMatch = percentageBasedSizeRegex.exec(width);
2738
  return parseFloat(percentMatch[1]);
2739
  } else {
2740
  var intWidth = get$4(element);
@@ -2754,16 +2711,16 @@ var table = (function (domGlobals) {
2754
  return cellWidth / 100 * tableSize.pixelWidth();
2755
  };
2756
  var choosePixelSize = function (element, width, tableSize) {
2757
- if (pixelBasedSizeRegex.test(width)) {
2758
- var pixelMatch = pixelBasedSizeRegex.exec(width);
2759
  return parseInt(pixelMatch[1], 10);
2760
- } else if (percentageBasedSizeRegex.test(width)) {
2761
- var percentMatch = percentageBasedSizeRegex.exec(width);
 
2762
  var floatWidth = parseFloat(percentMatch[1]);
2763
  return normalizePixelWidth(floatWidth, tableSize);
2764
- } else {
2765
- return get$4(element);
2766
  }
 
2767
  };
2768
  var getPixelWidth = function (cell, tableSize) {
2769
  var width = getRawWidth(cell);
@@ -2779,10 +2736,10 @@ var table = (function (domGlobals) {
2779
  var getGenericWidth = function (cell) {
2780
  var width = getRawWidth(cell);
2781
  return width.bind(function (w) {
2782
- if (genericSizeRegex.test(w)) {
2783
- var match = genericSizeRegex.exec(w);
2784
  return Option.some({
2785
- width: constant(match[1]),
2786
  unit: constant(match[3])
2787
  });
2788
  } else {
@@ -2817,18 +2774,6 @@ var table = (function (domGlobals) {
2817
  };
2818
  var CellMutations = { halve: halve };
2819
 
2820
- var attached = function (element, scope) {
2821
- var doc = scope || Element.fromDom(domGlobals.document.documentElement);
2822
- return ancestor(element, curry(eq, doc)).isSome();
2823
- };
2824
- var windowOf = function (element) {
2825
- var dom = element.dom();
2826
- if (dom === dom.window && element instanceof domGlobals.Window) {
2827
- return element;
2828
- }
2829
- return isDocument(element) ? dom.defaultView || dom.parentWindow : null;
2830
- };
2831
-
2832
  var r = function (left, top) {
2833
  var translate = function (x, y) {
2834
  return r(left + x, top + y);
@@ -2851,7 +2796,7 @@ var table = (function (domGlobals) {
2851
  var absolute = function (element) {
2852
  var doc = element.dom().ownerDocument;
2853
  var body = doc.body;
2854
- var win = windowOf(Element.fromDom(doc));
2855
  var html = doc.documentElement;
2856
  var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);
2857
  var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);
@@ -2863,11 +2808,10 @@ var table = (function (domGlobals) {
2863
  var dom = element.dom();
2864
  var doc = dom.ownerDocument;
2865
  var body = doc.body;
2866
- var html = Element.fromDom(doc.documentElement);
2867
  if (body === dom) {
2868
  return Position(body.offsetLeft, body.offsetTop);
2869
  }
2870
- if (!attached(element, html)) {
2871
  return Position(0, 0);
2872
  }
2873
  return boxPosition(dom);
@@ -2911,23 +2855,29 @@ var table = (function (domGlobals) {
2911
  });
2912
  return lines.concat([lastLine]);
2913
  };
2914
- var negate = function (step, _table) {
2915
  return -step;
2916
  };
2917
  var height = {
2918
  delta: identity,
2919
- positions: curry(findPositions, getTopEdge, getBottomEdge),
 
 
2920
  edge: getTop
2921
  };
2922
  var ltr = {
2923
  delta: identity,
2924
  edge: ltrEdge,
2925
- positions: curry(findPositions, getLeftEdge, getRightEdge)
 
 
2926
  };
2927
  var rtl = {
2928
  delta: negate,
2929
  edge: rtlEdge,
2930
- positions: curry(findPositions, getRightEdge, getLeftEdge)
 
 
2931
  };
2932
  var BarPositions = {
2933
  height: height,
@@ -2948,7 +2898,7 @@ var table = (function (domGlobals) {
2948
  return auto(table).delta(amount, table);
2949
  };
2950
  var positions = function (cols, table) {
2951
- return auto(table).positions(cols);
2952
  };
2953
  var edge = function (cell) {
2954
  return auto(cell).edge(cell);
@@ -2967,29 +2917,18 @@ var table = (function (domGlobals) {
2967
  };
2968
  var TableGridSize = { getGridSize: getGridSize };
2969
 
2970
- var hasOwnProperty = Object.prototype.hasOwnProperty;
2971
- var shallow$1 = function (old, nu) {
2972
- return nu;
2973
- };
2974
- var baseMerge = function (merger) {
2975
- return function () {
2976
- var objects = new Array(arguments.length);
2977
- for (var i = 0; i < objects.length; i++)
2978
- objects[i] = arguments[i];
2979
- if (objects.length === 0)
2980
- throw new Error('Can\'t merge zero objects');
2981
- var ret = {};
2982
- for (var j = 0; j < objects.length; j++) {
2983
- var curObject = objects[j];
2984
- for (var key in curObject)
2985
- if (hasOwnProperty.call(curObject, key)) {
2986
- ret[key] = merger(ret[key], curObject[key]);
2987
- }
2988
  }
2989
- return ret;
2990
  };
 
2991
  };
2992
- var merge = baseMerge(shallow$1);
2993
 
2994
  var cat = function (arr) {
2995
  var r = [];
@@ -3173,17 +3112,6 @@ var table = (function (domGlobals) {
3173
  }
3174
  return r;
3175
  };
3176
- var unique = function (xs, comparator) {
3177
- var result = [];
3178
- each(xs, function (x, i) {
3179
- if (i < xs.length - 1 && !comparator(x, xs[i + 1])) {
3180
- result.push(x);
3181
- } else if (i === xs.length - 1) {
3182
- result.push(x);
3183
- }
3184
- });
3185
- return result;
3186
- };
3187
  var deduce = function (xs, index) {
3188
  if (index < 0 || index >= xs.length - 1) {
3189
  return Option.none();
@@ -3227,17 +3155,11 @@ var table = (function (domGlobals) {
3227
  });
3228
  });
3229
  };
3230
- var Util = {
3231
- repeat: repeat,
3232
- range: range,
3233
- unique: unique,
3234
- deduce: deduce
3235
- };
3236
 
3237
  var columns = function (warehouse) {
3238
  var grid = warehouse.grid();
3239
- var cols = Util.range(0, grid.columns());
3240
- var rowsArr = Util.range(0, grid.rows());
3241
  return map(cols, function (col) {
3242
  var getBlock = function () {
3243
  return bind(rowsArr, function (r) {
@@ -3269,8 +3191,8 @@ var table = (function (domGlobals) {
3269
  };
3270
  var rows$1 = function (warehouse) {
3271
  var grid = warehouse.grid();
3272
- var rowsArr = Util.range(0, grid.rows());
3273
- var cols = Util.range(0, grid.columns());
3274
  return map(rowsArr, function (row) {
3275
  var getBlock = function () {
3276
  return bind(cols, function (c) {
@@ -3345,7 +3267,7 @@ var table = (function (domGlobals) {
3345
  var resizeRowBar = Styles.resolve('resizer-rows');
3346
  var resizeColBar = Styles.resolve('resizer-cols');
3347
  var BAR_THICKNESS = 7;
3348
- var clear = function (wire) {
3349
  var previous = descendants$1(wire.parent(), '.' + resizeBar);
3350
  each(previous, remove$2);
3351
  };
@@ -3381,7 +3303,7 @@ var table = (function (domGlobals) {
3381
  refreshCol(wire, colPositions, position, getOuter(table));
3382
  };
3383
  var refresh = function (wire, table, hdirection, vdirection) {
3384
- clear(wire);
3385
  var list = DetailsList.fromTable(table);
3386
  var warehouse = Warehouse.generate(list);
3387
  var rows = Blocks.rows(warehouse);
@@ -3412,7 +3334,7 @@ var table = (function (domGlobals) {
3412
  refresh: refresh,
3413
  hide: hide,
3414
  show: show,
3415
- destroy: clear,
3416
  isRowBar: isRowBar,
3417
  isColBar: isColBar
3418
  };
@@ -3429,12 +3351,12 @@ var table = (function (domGlobals) {
3429
  cells[index] = cell;
3430
  };
3431
  var setCells = function (gridRow, cells) {
3432
- return Structs.rowcells(cells, gridRow.section());
3433
  };
3434
  var mapCells = function (gridRow, f) {
3435
  var cells = gridRow.cells();
3436
  var r = map(cells, f);
3437
- return Structs.rowcells(r, gridRow.section());
3438
  };
3439
  var getCell = function (gridRow, index) {
3440
  return gridRow.cells()[index];
@@ -3507,12 +3429,12 @@ var table = (function (domGlobals) {
3507
  if (seen[ri][ci] === false) {
3508
  var result = TableGrid.subgrid(grid, ri, ci, comparator);
3509
  updateSeen(ri, ci, result.rowspan(), result.colspan());
3510
- return [Structs.detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];
3511
  } else {
3512
  return [];
3513
  }
3514
  });
3515
- return Structs.rowdetails(details, row.section());
3516
  });
3517
  };
3518
  var toGrid = function (warehouse, generators, isNew) {
@@ -3521,13 +3443,13 @@ var table = (function (domGlobals) {
3521
  var rowCells = [];
3522
  for (var j = 0; j < warehouse.grid().columns(); j++) {
3523
  var element = Warehouse.getAt(warehouse, i, j).map(function (item) {
3524
- return Structs.elementnew(item.element(), isNew);
3525
  }).getOrThunk(function () {
3526
- return Structs.elementnew(generators.gap(), true);
3527
  });
3528
  rowCells.push(element);
3529
  }
3530
- var row = Structs.rowcells(rowCells, warehouse.all()[i].section());
3531
  grid.push(row);
3532
  }
3533
  return grid;
@@ -3545,16 +3467,16 @@ var table = (function (domGlobals) {
3545
  var rowOfCells = findMap(details, function (detail) {
3546
  return parent(detail.element()).map(function (row) {
3547
  var isNew = parent(row).isNone();
3548
- return Structs.elementnew(row, isNew);
3549
  });
3550
  });
3551
  return rowOfCells.getOrThunk(function () {
3552
- return Structs.elementnew(generators.row(), true);
3553
  });
3554
  };
3555
  return map(rendered, function (details) {
3556
  var row = findRow(details.details());
3557
- return Structs.rowdatanew(row.element(), details.details(), details.section(), row.isNew());
3558
  });
3559
  };
3560
  var toDetailList = function (grid, generators) {
@@ -3605,10 +3527,11 @@ var table = (function (domGlobals) {
3605
  var onPaste = function (warehouse, target) {
3606
  return TableLookup.cell(target.element()).bind(function (cell) {
3607
  return findInWarehouse(warehouse, cell).map(function (details) {
3608
- return merge(details, {
3609
  generators: target.generators,
3610
  clipboard: target.clipboard
3611
  });
 
3612
  });
3613
  });
3614
  };
@@ -3619,15 +3542,16 @@ var table = (function (domGlobals) {
3619
  });
3620
  });
3621
  var cells = cat(details);
3622
- return cells.length > 0 ? Option.some(merge({ cells: cells }, {
 
3623
  generators: target.generators,
3624
  clipboard: target.clipboard
3625
- })) : Option.none();
3626
  };
3627
- var onMergable = function (warehouse, target) {
3628
  return target.mergable();
3629
  };
3630
- var onUnmergable = function (warehouse, target) {
3631
  return target.unmergable();
3632
  };
3633
  var onCells = function (warehouse, target) {
@@ -3639,16 +3563,6 @@ var table = (function (domGlobals) {
3639
  var cells = cat(details);
3640
  return cells.length > 0 ? Option.some(cells) : Option.none();
3641
  };
3642
- var RunOperation = {
3643
- run: run,
3644
- toDetailList: toDetailList,
3645
- onCell: onCell,
3646
- onCells: onCells,
3647
- onPaste: onPaste,
3648
- onPasteRows: onPasteRows,
3649
- onMergable: onMergable,
3650
- onUnmergable: onUnmergable
3651
- };
3652
 
3653
  var value = function (o) {
3654
  var is = function (v) {
@@ -3747,9 +3661,15 @@ var table = (function (domGlobals) {
3747
  toOption: Option.none
3748
  };
3749
  };
 
 
 
 
 
3750
  var Result = {
3751
  value: value,
3752
- error: error
 
3753
  };
3754
 
3755
  var measure = function (startAddress, gridA, gridB) {
@@ -3775,17 +3695,17 @@ var table = (function (domGlobals) {
3775
  };
3776
  var fill = function (cells, generator) {
3777
  return map(cells, function () {
3778
- return Structs.elementnew(generator.cell(), true);
3779
  });
3780
  };
3781
  var rowFill = function (grid, amount, generator) {
3782
- return grid.concat(Util.repeat(amount, function (_row) {
3783
  return GridRow.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));
3784
  }));
3785
  };
3786
  var colFill = function (grid, amount, generator) {
3787
  return map(grid, function (row) {
3788
- return GridRow.setCells(row, row.cells().concat(fill(Util.range(0, amount), generator)));
3789
  });
3790
  };
3791
  var tailor = function (gridA, delta, generator) {
@@ -3801,13 +3721,13 @@ var table = (function (domGlobals) {
3801
  tailor: tailor
3802
  };
3803
 
3804
- var merge$1 = function (grid, bounds, comparator, substitution) {
3805
  if (grid.length === 0) {
3806
  return grid;
3807
  }
3808
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
3809
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
3810
- GridRow.mutateCell(grid[i], j, Structs.elementnew(substitution(), false));
3811
  }
3812
  }
3813
  return grid;
@@ -3819,7 +3739,7 @@ var table = (function (domGlobals) {
3819
  var current = GridRow.getCellElement(grid[i], j);
3820
  var isToReplace = comparator(current, target);
3821
  if (isToReplace === true && first === false) {
3822
- GridRow.mutateCell(grid[i], j, Structs.elementnew(substitution(), true));
3823
  } else if (isToReplace === true) {
3824
  first = false;
3825
  }
@@ -3849,7 +3769,7 @@ var table = (function (domGlobals) {
3849
  replacement = Option.some(substitution());
3850
  }
3851
  replacement.each(function (sub) {
3852
- GridRow.mutateCell(grid[i], j, Structs.elementnew(sub, true));
3853
  });
3854
  }
3855
  };
@@ -3865,7 +3785,7 @@ var table = (function (domGlobals) {
3865
  return grid;
3866
  };
3867
  var MergingOperations = {
3868
- merge: merge$1,
3869
  unmerge: unmerge,
3870
  splitRows: splitRows
3871
  };
@@ -3874,7 +3794,7 @@ var table = (function (domGlobals) {
3874
  var candidate = GridRow.getCell(grid[row], col);
3875
  var matching = curry(comparator, candidate.element());
3876
  var currentRow = grid[row];
3877
- return grid.length > 1 && GridRow.cellLength(currentRow) > 1 && (col > 0 && matching(GridRow.getCellElement(currentRow, col - 1)) || col < currentRow.length - 1 && matching(GridRow.getCellElement(currentRow, col + 1)) || row > 0 && matching(GridRow.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(GridRow.getCellElement(grid[row + 1], col)));
3878
  };
3879
  var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {
3880
  var startRow = startAddress.row();
@@ -3890,12 +3810,12 @@ var table = (function (domGlobals) {
3890
  }
3891
  var newCell = GridRow.getCellElement(gridB[r - startRow], c - startCol);
3892
  var replacement = generator.replace(newCell);
3893
- GridRow.mutateCell(gridA[r], c, Structs.elementnew(replacement, true));
3894
  }
3895
  }
3896
  return gridA;
3897
  };
3898
- var merge$2 = function (startAddress, gridA, gridB, generator, comparator) {
3899
  var result = Fitment.measure(startAddress, gridA, gridB);
3900
  return result.map(function (delta) {
3901
  var fittedGrid = Fitment.tailor(gridA, delta, generator);
@@ -3911,7 +3831,7 @@ var table = (function (domGlobals) {
3911
  return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));
3912
  };
3913
  var TableMerge = {
3914
- merge: merge$2,
3915
  insert: insert
3916
  };
3917
 
@@ -3920,7 +3840,7 @@ var table = (function (domGlobals) {
3920
  var after = grid.slice(index);
3921
  var between = GridRow.mapCells(grid[example], function (ex, c) {
3922
  var withinSpan = index > 0 && index < grid.length && comparator(GridRow.getCellElement(grid[index - 1], c), GridRow.getCellElement(grid[index], c));
3923
- var ret = withinSpan ? GridRow.getCell(grid[index], c) : Structs.elementnew(substitution(ex.element(), comparator), true);
3924
  return ret;
3925
  });
3926
  return before.concat([between]).concat(after);
@@ -3928,7 +3848,7 @@ var table = (function (domGlobals) {
3928
  var insertColumnAt = function (grid, index, example, comparator, substitution) {
3929
  return map(grid, function (row) {
3930
  var withinSpan = index > 0 && index < GridRow.cellLength(row) && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));
3931
- var sub = withinSpan ? GridRow.getCell(row, index) : Structs.elementnew(substitution(GridRow.getCellElement(row, example), comparator), true);
3932
  return GridRow.addCell(row, index, sub);
3933
  });
3934
  };
@@ -3936,7 +3856,7 @@ var table = (function (domGlobals) {
3936
  var index = exampleCol + 1;
3937
  return map(grid, function (row, i) {
3938
  var isTargetCell = i === exampleRow;
3939
- var sub = isTargetCell ? Structs.elementnew(substitution(GridRow.getCellElement(row, exampleCol), comparator), true) : GridRow.getCell(row, exampleCol);
3940
  return GridRow.addCell(row, index, sub);
3941
  });
3942
  };
@@ -3946,14 +3866,14 @@ var table = (function (domGlobals) {
3946
  var after = grid.slice(index);
3947
  var between = GridRow.mapCells(grid[exampleRow], function (ex, i) {
3948
  var isTargetCell = i === exampleCol;
3949
- return isTargetCell ? Structs.elementnew(substitution(ex.element(), comparator), true) : ex;
3950
  });
3951
  return before.concat([between]).concat(after);
3952
  };
3953
  var deleteColumnsAt = function (grid, start, finish) {
3954
  var rows = map(grid, function (row) {
3955
  var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));
3956
- return Structs.rowcells(cells, row.section());
3957
  });
3958
  return filter(rows, function (row) {
3959
  return row.cells().length > 0;
@@ -3971,10 +3891,6 @@ var table = (function (domGlobals) {
3971
  deleteColumnsAt: deleteColumnsAt
3972
  };
3973
 
3974
- var get$7 = function (element) {
3975
- return element.dom().textContent;
3976
- };
3977
-
3978
  var replaceIn = function (grid, targets, comparator, substitution) {
3979
  var isTarget = function (cell) {
3980
  return exists(targets, function (target) {
@@ -3983,7 +3899,7 @@ var table = (function (domGlobals) {
3983
  };
3984
  return map(grid, function (row) {
3985
  return GridRow.mapCells(row, function (cell) {
3986
- return isTarget(cell) ? Structs.elementnew(substitution(cell.element(), comparator), true) : cell;
3987
  });
3988
  });
3989
  };
@@ -4008,110 +3924,35 @@ var table = (function (domGlobals) {
4008
  });
4009
  return replaceIn(grid, targets, comparator, substitution);
4010
  };
4011
- var sortTableRows = function (grid, index, comparator, ascending) {
4012
- var grouped = groupBy(grid, function (row) {
4013
- return name(GridRow.getCell(row, index).element());
4014
- });
4015
- var sortGroup = function (group) {
4016
- var texted = map(group, function (row) {
4017
- var cell = GridRow.getCell(row, index);
4018
- var text = get$7(cell.element());
4019
- return {
4020
- row: row,
4021
- text: text
4022
- };
4023
- });
4024
- var sorted = sort(texted, function (rowA, rowB) {
4025
- var compared = comparator(rowA.text, rowB.text);
4026
- return ascending ? compared : compared * -1;
4027
- });
4028
- return map(sorted, function (sortedRow) {
4029
- return sortedRow.row;
4030
- });
4031
- };
4032
- return bind(grouped, function (group) {
4033
- return name(GridRow.getCell(group[0], index).element()) === 'th' ? group : sortGroup(group);
4034
- });
4035
- };
4036
- var sortTableColumns = function (grid, index, comparator, ascending) {
4037
- var targetRow = grid[index].cells();
4038
- var targetReferences = map(targetRow, function (cell) {
4039
- return get$7(cell.element());
4040
- });
4041
- var zip = function (row) {
4042
- var zippedCells = map(row.cells(), function (cell, i) {
4043
- return {
4044
- cell: cell,
4045
- reference: targetRow[i],
4046
- referenceText: targetReferences[i]
4047
- };
4048
- });
4049
- return {
4050
- zippedCells: zippedCells,
4051
- section: row.section()
4052
- };
4053
- };
4054
- var unzip = function (row) {
4055
- var grouped = groupBy(row.zippedCells, function (zippedCell) {
4056
- return name(zippedCell.reference.element());
4057
- });
4058
- var sorted = bind(grouped, function (group) {
4059
- return name(group[0].reference.element()) === 'th' ? group : sort(group, function (cellA, cellB) {
4060
- var compared = comparator(cellA.referenceText, cellB.referenceText);
4061
- return ascending ? compared : compared * -1;
4062
- });
4063
- });
4064
- var unzippedCells = map(sorted, function (sortedCell) {
4065
- return sortedCell.cell;
4066
- });
4067
- return Structs.rowcells(unzippedCells, row.section);
4068
- };
4069
- var zippedGrid = map(grid, zip);
4070
- var unzipped = map(zippedGrid, unzip);
4071
- return unzipped;
4072
- };
4073
  var TransformOperations = {
4074
  replaceColumn: replaceColumn,
4075
- replaceRow: replaceRow,
4076
- sortTableRows: sortTableRows,
4077
- sortTableColumns: sortTableColumns
4078
  };
4079
 
4080
- var none$1 = function () {
4081
- return folder(function (n, o, l, m, r) {
4082
- return n();
4083
- });
4084
- };
4085
- var only = function (index) {
4086
- return folder(function (n, o, l, m, r) {
4087
- return o(index);
4088
- });
4089
- };
4090
- var left = function (index, next) {
4091
- return folder(function (n, o, l, m, r) {
4092
- return l(index, next);
4093
- });
4094
- };
4095
- var middle = function (prev, index, next) {
4096
- return folder(function (n, o, l, m, r) {
4097
- return m(prev, index, next);
4098
- });
4099
- };
4100
- var right = function (prev, index) {
4101
- return folder(function (n, o, l, m, r) {
4102
- return r(prev, index);
4103
- });
4104
- };
4105
- var folder = function (fold) {
4106
- return { fold: fold };
4107
- };
4108
- var ColumnContext = {
4109
- none: none$1,
4110
- only: only,
4111
- left: left,
4112
- middle: middle,
4113
- right: right
4114
- };
4115
 
4116
  var neighbours$1 = function (input, index) {
4117
  if (input.length === 0) {
@@ -4158,10 +3999,10 @@ var table = (function (domGlobals) {
4158
  }
4159
  };
4160
  var onLeft = onChange;
4161
- var onMiddle = function (prev, index, next) {
4162
  return onChange(index, next);
4163
  };
4164
- var onRight = function (prev, index) {
4165
  if (step >= 0) {
4166
  return zero(result.slice(0, index)).concat([step]);
4167
  } else {
@@ -4200,8 +4041,10 @@ var table = (function (domGlobals) {
4200
  return raw;
4201
  });
4202
  };
4203
- var getRawW = function (cell) {
4204
- return getRaw$1(cell, 'width', Sizes.getPixelWidth);
 
 
4205
  };
4206
  var getRawH = function (cell) {
4207
  return getRaw$1(cell, 'height', Sizes.getHeight);
@@ -4214,7 +4057,7 @@ var table = (function (domGlobals) {
4214
  return map(columns, function (cellOption, c) {
4215
  var columnCell = cellOption.filter(not(CellUtils.hasColspan));
4216
  return columnCell.fold(function () {
4217
- var deduced = Util.deduce(backups, c);
4218
  return fallback(deduced);
4219
  }, function (cell) {
4220
  return getWidth(cell, tableSize);
@@ -4226,8 +4069,8 @@ var table = (function (domGlobals) {
4226
  return d + 'px';
4227
  }).getOr('');
4228
  };
4229
- var getRawWidths = function (warehouse, direction) {
4230
- return getWidthFrom(warehouse, direction, getRawW, getDeduced);
4231
  };
4232
  var getPercentageWidths = function (warehouse, direction, tableSize) {
4233
  return getWidthFrom(warehouse, direction, Sizes.getPercentageWidth, function (deduced) {
@@ -4251,7 +4094,7 @@ var table = (function (domGlobals) {
4251
  return map(rows, function (cellOption, c) {
4252
  var rowCell = cellOption.filter(not(CellUtils.hasRowspan));
4253
  return rowCell.fold(function () {
4254
- var deduced = Util.deduce(backups, c);
4255
  return fallback(deduced);
4256
  }, function (cell) {
4257
  return getHeight(cell);
@@ -4330,8 +4173,9 @@ var table = (function (domGlobals) {
4330
  return CellUtils.minWidth() / pixelWidth * 100;
4331
  };
4332
  var setTableWidth = function (table, _newWidths, delta) {
4333
- var total = floatWidth + delta;
4334
- Sizes.setPercentageWidth(table, total);
 
4335
  };
4336
  return {
4337
  width: constant(floatWidth),
@@ -4345,7 +4189,6 @@ var table = (function (domGlobals) {
4345
  };
4346
  };
4347
  var pixelSize = function (width) {
4348
- var intWidth = parseInt(width, 10);
4349
  var getCellDelta = identity;
4350
  var singleColumnWidth = function (w, delta) {
4351
  var newNext = Math.max(CellUtils.minWidth(), w + delta);
@@ -4358,8 +4201,8 @@ var table = (function (domGlobals) {
4358
  Sizes.setPixelWidth(table, total);
4359
  };
4360
  return {
4361
- width: constant(intWidth),
4362
- pixelWidth: constant(intWidth),
4363
  getWidths: ColumnSizes.getPixelWidths,
4364
  getCellDelta: getCellDelta,
4365
  singleColumnWidth: singleColumnWidth,
@@ -4369,16 +4212,17 @@ var table = (function (domGlobals) {
4369
  };
4370
  };
4371
  var chooseSize = function (element, width) {
4372
- if (Sizes.percentageBasedSizeRegex().test(width)) {
4373
- var percentMatch = Sizes.percentageBasedSizeRegex().exec(width);
4374
  return percentageSize(percentMatch[1], element);
4375
- } else if (Sizes.pixelBasedSizeRegex().test(width)) {
4376
- var pixelMatch = Sizes.pixelBasedSizeRegex().exec(width);
4377
- return pixelSize(pixelMatch[1]);
4378
- } else {
4379
- var fallbackWidth = get$4(element);
4380
- return pixelSize(fallbackWidth);
4381
  }
 
 
 
 
 
 
 
4382
  };
4383
  var getTableSize = function (element) {
4384
  var width = Sizes.getRawWidth(element);
@@ -4445,11 +4289,8 @@ var table = (function (domGlobals) {
4445
  each(newSizes, function (cell) {
4446
  tableSize.setElementWidth(cell.element(), cell.width());
4447
  });
4448
- var total = foldr(widths, function (b, a) {
4449
- return a + b;
4450
- }, 0);
4451
  if (newSizes.length > 0) {
4452
- tableSize.setTableWidth(table, total);
4453
  }
4454
  };
4455
  var Adjustments = {
@@ -4483,8 +4324,9 @@ var table = (function (domGlobals) {
4483
  });
4484
  };
4485
  var baseWith = function (handleUnsupported, required, pred) {
4486
- if (required.length === 0)
4487
  throw new Error('You must specify at least one required field.');
 
4488
  validateStrArr('required', required);
4489
  checkDupes(required);
4490
  return function (obj) {
@@ -4492,14 +4334,16 @@ var table = (function (domGlobals) {
4492
  var allReqd = forall(required, function (req) {
4493
  return contains(keys$1, req);
4494
  });
4495
- if (!allReqd)
4496
  reqMessage(required, keys$1);
 
4497
  handleUnsupported(required, keys$1);
4498
  var invalidKeys = filter(required, function (key) {
4499
  return !pred.validate(obj[key], key);
4500
  });
4501
- if (invalidKeys.length > 0)
4502
  invalidTypeMessage(invalidKeys, pred.label);
 
4503
  return obj;
4504
  };
4505
  };
@@ -4507,13 +4351,20 @@ var table = (function (domGlobals) {
4507
  var unsupported = filter(keys, function (key) {
4508
  return !contains(required, key);
4509
  });
4510
- if (unsupported.length > 0)
4511
  unsuppMessage(unsupported);
 
4512
  };
4513
  var exactly = function (required) {
4514
  return base(handleExact, required);
4515
  };
4516
 
 
 
 
 
 
 
4517
  var elementToData = function (element) {
4518
  var colspan = has(element, 'colspan') ? parseInt(get(element, 'colspan'), 10) : 1;
4519
  var rowspan = has(element, 'rowspan') ? parseInt(get(element, 'rowspan'), 10) : 1;
@@ -4523,10 +4374,12 @@ var table = (function (domGlobals) {
4523
  rowspan: constant(rowspan)
4524
  };
4525
  };
4526
- var modification = function (generators, _toData) {
4527
- contract(generators);
 
 
 
4528
  var position = Cell(Option.none());
4529
- var toData = _toData !== undefined ? _toData : elementToData;
4530
  var nu = function (data) {
4531
  return generators.cell(data);
4532
  };
@@ -4561,7 +4414,7 @@ var table = (function (domGlobals) {
4561
  var transform = function (scope, tag) {
4562
  return function (generators) {
4563
  var position = Cell(Option.none());
4564
- contract(generators);
4565
  var list = [];
4566
  var find$1 = function (element, comparator) {
4567
  return find(list, function (x) {
@@ -4569,7 +4422,8 @@ var table = (function (domGlobals) {
4569
  });
4570
  };
4571
  var makeNew = function (element) {
4572
- var cell = generators.replace(element, tag, { scope: scope });
 
4573
  list.push({
4574
  item: element,
4575
  sub: cell
@@ -4593,7 +4447,7 @@ var table = (function (domGlobals) {
4593
  };
4594
  };
4595
  var merging = function (generators) {
4596
- contract(generators);
4597
  var position = Cell(Option.none());
4598
  var combine = function (cell) {
4599
  if (position.get().isNone()) {
@@ -4615,12 +4469,6 @@ var table = (function (domGlobals) {
4615
  cursor: position.get
4616
  };
4617
  };
4618
- var contract = exactly([
4619
- 'cell',
4620
- 'row',
4621
- 'replace',
4622
- 'gap'
4623
- ]);
4624
  var Generators = {
4625
  modification: modification,
4626
  transform: transform,
@@ -4767,7 +4615,7 @@ var table = (function (domGlobals) {
4767
  isInline: isInline$1
4768
  };
4769
 
4770
- var merge$3 = function (cells) {
4771
  var isBr = function (el) {
4772
  return name(el) === 'br';
4773
  };
@@ -4787,6 +4635,7 @@ var table = (function (domGlobals) {
4787
  if (DomStructure.isEmptyTag(rightSibling)) {
4788
  return name(rightSibling) === 'img' ? false : true;
4789
  }
 
4790
  }).getOr(false);
4791
  };
4792
  var markCell = function (cell) {
@@ -4808,7 +4657,7 @@ var table = (function (domGlobals) {
4808
  empty(cells[0]);
4809
  append$1(cells[0], contents);
4810
  };
4811
- var TableContent = { merge: merge$3 };
4812
 
4813
  var prune = function (table) {
4814
  var cells = TableLookup.cells(table);
@@ -4934,13 +4783,13 @@ var table = (function (domGlobals) {
4934
  var newGrid = ModificationOperations.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
4935
  return bundle(newGrid, detail.row(), detail.column());
4936
  };
4937
- var eraseColumns = function (grid, details, comparator, _genWrappers) {
4938
  var columns = uniqueColumns(details);
4939
  var newGrid = ModificationOperations.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());
4940
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
4941
  return outcome(newGrid, cursor);
4942
  };
4943
- var eraseRows = function (grid, details, comparator, _genWrappers) {
4944
  var rows = uniqueRows(details);
4945
  var newGrid = ModificationOperations.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());
4946
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
@@ -4965,7 +4814,7 @@ var table = (function (domGlobals) {
4965
  return Transitions.toGrid(wh, generators, true);
4966
  };
4967
  var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());
4968
- var startAddress = Structs.address(pasteDetails.row(), pasteDetails.column());
4969
  var mergedGrid = TableMerge.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);
4970
  return mergedGrid.fold(function () {
4971
  return outcome(grid, Option.some(pasteDetails.element()));
@@ -4995,48 +4844,29 @@ var table = (function (domGlobals) {
4995
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
4996
  return outcome(mergedGrid, cursor);
4997
  };
4998
- var sortRows = function (grid, detail, sortComparator, ascending) {
4999
- var newGrid = TransformOperations.sortTableRows(grid, detail.column(), sortComparator, ascending);
5000
- return bundle(newGrid, detail.row(), detail.column());
5001
- };
5002
- var sortColumns = function (grid, detail, sortComparator, ascending) {
5003
- var newGrid = TransformOperations.sortTableColumns(grid, detail.row(), sortComparator, ascending);
5004
- return bundle(newGrid, detail.row(), detail.column());
5005
- };
5006
- var runSort = function (sortF) {
5007
- return function (wire, table, target, generators, direction, sortComparator, ascending) {
5008
- var operation = function (grid, detail, _comparator, _generators) {
5009
- return sortF(grid, detail, sortComparator, ascending);
5010
- };
5011
- var wrappedOperation = RunOperation.run(operation, RunOperation.onCell, noop, noop, Generators.modification);
5012
- return wrappedOperation(wire, table, target, generators, direction);
5013
- };
5014
- };
5015
  var resize = Adjustments.adjustWidthTo;
5016
  var TableOperations = {
5017
- insertRowBefore: RunOperation.run(insertRowBefore, RunOperation.onCell, noop, noop, Generators.modification),
5018
- insertRowsBefore: RunOperation.run(insertRowsBefore, RunOperation.onCells, noop, noop, Generators.modification),
5019
- insertRowAfter: RunOperation.run(insertRowAfter, RunOperation.onCell, noop, noop, Generators.modification),
5020
- insertRowsAfter: RunOperation.run(insertRowsAfter, RunOperation.onCells, noop, noop, Generators.modification),
5021
- insertColumnBefore: RunOperation.run(insertColumnBefore, RunOperation.onCell, resize, noop, Generators.modification),
5022
- insertColumnsBefore: RunOperation.run(insertColumnsBefore, RunOperation.onCells, resize, noop, Generators.modification),
5023
- insertColumnAfter: RunOperation.run(insertColumnAfter, RunOperation.onCell, resize, noop, Generators.modification),
5024
- insertColumnsAfter: RunOperation.run(insertColumnsAfter, RunOperation.onCells, resize, noop, Generators.modification),
5025
- splitCellIntoColumns: RunOperation.run(splitCellIntoColumns$1, RunOperation.onCell, resize, noop, Generators.modification),
5026
- splitCellIntoRows: RunOperation.run(splitCellIntoRows$1, RunOperation.onCell, noop, noop, Generators.modification),
5027
- eraseColumns: RunOperation.run(eraseColumns, RunOperation.onCells, resize, prune, Generators.modification),
5028
- eraseRows: RunOperation.run(eraseRows, RunOperation.onCells, noop, prune, Generators.modification),
5029
- makeColumnHeader: RunOperation.run(makeColumnHeader, RunOperation.onCell, noop, noop, Generators.transform('row', 'th')),
5030
- unmakeColumnHeader: RunOperation.run(unmakeColumnHeader, RunOperation.onCell, noop, noop, Generators.transform(null, 'td')),
5031
- makeRowHeader: RunOperation.run(makeRowHeader, RunOperation.onCell, noop, noop, Generators.transform('col', 'th')),
5032
- unmakeRowHeader: RunOperation.run(unmakeRowHeader, RunOperation.onCell, noop, noop, Generators.transform(null, 'td')),
5033
- mergeCells: RunOperation.run(mergeCells, RunOperation.onMergable, noop, noop, Generators.merging),
5034
- unmergeCells: RunOperation.run(unmergeCells, RunOperation.onUnmergable, resize, noop, Generators.merging),
5035
- pasteCells: RunOperation.run(pasteCells, RunOperation.onPaste, resize, noop, Generators.modification),
5036
- pasteRowsBefore: RunOperation.run(pasteRowsBefore, RunOperation.onPasteRows, noop, noop, Generators.modification),
5037
- pasteRowsAfter: RunOperation.run(pasteRowsAfter, RunOperation.onPasteRows, noop, noop, Generators.modification),
5038
- sortRows: runSort(sortRows),
5039
- sortColumns: runSort(sortColumns)
5040
  };
5041
 
5042
  var getBody$1 = function (editor) {
@@ -5257,11 +5087,11 @@ var table = (function (domGlobals) {
5257
  var copyRows = function (table, target, generators) {
5258
  var list = DetailsList.fromTable(table);
5259
  var house = Warehouse.generate(list);
5260
- var details = RunOperation.onCells(house, target);
5261
  return details.map(function (selectedCells) {
5262
  var grid = Transitions.toGrid(house, generators, false);
5263
  var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());
5264
- var slicedDetails = RunOperation.toDetailList(slicedGrid, generators);
5265
  return Redraw.copy(slicedDetails);
5266
  });
5267
  };
@@ -6036,14 +5866,14 @@ var table = (function (domGlobals) {
6036
  return table;
6037
  };
6038
 
6039
- var get$8 = function (element) {
6040
  return element.dom().innerHTML;
6041
  };
6042
  var getOuter$2 = function (element) {
6043
  var container = Element.fromTag('div');
6044
  var clone = Element.fromDom(element.dom().cloneNode(true));
6045
  append(container, clone);
6046
- return get$8(container);
6047
  };
6048
 
6049
  var placeCaretInCell = function (editor, cell) {
@@ -6490,7 +6320,7 @@ var table = (function (domGlobals) {
6490
  };
6491
  var Commands = { registerCommands: registerCommands };
6492
 
6493
- var only$1 = function (element) {
6494
  var parent = Option.from(element.dom().documentElement).map(Element.fromDom).getOr(element);
6495
  return {
6496
  parent: constant(parent),
@@ -6499,7 +6329,9 @@ var table = (function (domGlobals) {
6499
  };
6500
  };
6501
  var detached = function (editable, chrome) {
6502
- var origin = curry(absolute, chrome);
 
 
6503
  return {
6504
  parent: constant(chrome),
6505
  view: constant(editable),
@@ -6514,17 +6346,17 @@ var table = (function (domGlobals) {
6514
  };
6515
  };
6516
  var ResizeWire = {
6517
- only: only$1,
6518
  detached: detached,
6519
  body: body$1
6520
  };
6521
 
6522
- function Event (fields) {
6523
  var struct = Immutable.apply(null, fields);
6524
  var handlers = [];
6525
  var bind = function (handler) {
6526
  if (handler === undefined) {
6527
- throw 'Event bind error: undefined handler';
6528
  }
6529
  handlers.push(handler);
6530
  };
@@ -6534,7 +6366,11 @@ var table = (function (domGlobals) {
6534
  });
6535
  };
6536
  var trigger = function () {
6537
- var event = struct.apply(null, arguments);
 
 
 
 
6538
  each(handlers, function (handler) {
6539
  handler(event);
6540
  });
@@ -6544,9 +6380,9 @@ var table = (function (domGlobals) {
6544
  unbind: unbind,
6545
  trigger: trigger
6546
  };
6547
- }
6548
 
6549
- var create = function (typeDefs) {
6550
  var registry = map$1(typeDefs, function (event) {
6551
  return {
6552
  bind: event.bind,
@@ -6561,59 +6397,7 @@ var table = (function (domGlobals) {
6561
  trigger: trigger
6562
  };
6563
  };
6564
- var Events = { create: create };
6565
-
6566
- var mode = exactly([
6567
- 'compare',
6568
- 'extract',
6569
- 'mutate',
6570
- 'sink'
6571
- ]);
6572
- var sink = exactly([
6573
- 'element',
6574
- 'start',
6575
- 'stop',
6576
- 'destroy'
6577
- ]);
6578
- var api$3 = exactly([
6579
- 'forceDrop',
6580
- 'drop',
6581
- 'move',
6582
- 'delayDrop'
6583
- ]);
6584
- var DragApis = {
6585
- mode: mode,
6586
- sink: sink,
6587
- api: api$3
6588
- };
6589
-
6590
- var styles$1 = css('ephox-dragster');
6591
- var Styles$2 = { resolve: styles$1.resolve };
6592
-
6593
- function Blocker (options) {
6594
- var settings = merge({ 'layerClass': Styles$2.resolve('blocker') }, options);
6595
- var div = Element.fromTag('div');
6596
- set(div, 'role', 'presentation');
6597
- setAll$1(div, {
6598
- position: 'fixed',
6599
- left: '0px',
6600
- top: '0px',
6601
- width: '100%',
6602
- height: '100%'
6603
- });
6604
- add$2(div, Styles$2.resolve('blocker'));
6605
- add$2(div, settings.layerClass);
6606
- var element = function () {
6607
- return div;
6608
- };
6609
- var destroy = function () {
6610
- remove$2(div);
6611
- };
6612
- return {
6613
- element: element,
6614
- destroy: destroy
6615
- };
6616
- }
6617
 
6618
  var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
6619
  return {
@@ -6660,16 +6444,90 @@ var table = (function (domGlobals) {
6660
  return bind$1(element, event, filter$1, handler);
6661
  };
6662
 
6663
- var compare = function (old, nu) {
6664
- return Position(nu.left() - old.left(), nu.top() - old.top());
6665
- };
6666
- var extract$1 = function (event) {
6667
- return Option.some(Position(event.x(), event.y()));
6668
- };
6669
- var mutate = function (mutation, info) {
6670
- mutation.mutate(info.left(), info.top());
6671
  };
6672
- var sink$1 = function (dragApi, settings) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6673
  var blocker = Blocker(settings);
6674
  var mdown = bind$2(blocker.element(), 'mousedown', dragApi.forceDrop);
6675
  var mup = bind$2(blocker.element(), 'mouseup', dragApi.drop);
@@ -6688,20 +6546,47 @@ var table = (function (domGlobals) {
6688
  var stop = function () {
6689
  remove$2(blocker.element());
6690
  };
6691
- return DragApis.sink({
6692
  element: blocker.element,
6693
  start: start,
6694
  stop: stop,
6695
  destroy: destroy
6696
  });
6697
  };
6698
- var MouseDrag = DragApis.mode({
6699
  compare: compare,
6700
  extract: extract$1,
6701
- sink: sink$1,
6702
  mutate: mutate
6703
  });
6704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6705
  function InDrag () {
6706
  var previous = Option.none();
6707
  var reset = function () {
@@ -6731,11 +6616,9 @@ var table = (function (domGlobals) {
6731
  };
6732
  }
6733
 
6734
- function NoDrag (anchor) {
6735
- var onEvent = function (event, mode) {
6736
- };
6737
  return {
6738
- onEvent: onEvent,
6739
  reset: noop
6740
  };
6741
  }
@@ -6767,32 +6650,6 @@ var table = (function (domGlobals) {
6767
  };
6768
  }
6769
 
6770
- var last$2 = function (fn, rate) {
6771
- var timer = null;
6772
- var cancel = function () {
6773
- if (timer !== null) {
6774
- domGlobals.clearTimeout(timer);
6775
- timer = null;
6776
- }
6777
- };
6778
- var throttle = function () {
6779
- var args = [];
6780
- for (var _i = 0; _i < arguments.length; _i++) {
6781
- args[_i] = arguments[_i];
6782
- }
6783
- if (timer !== null)
6784
- domGlobals.clearTimeout(timer);
6785
- timer = domGlobals.setTimeout(function () {
6786
- fn.apply(null, args);
6787
- timer = null;
6788
- }, rate);
6789
- };
6790
- return {
6791
- cancel: cancel,
6792
- throttle: throttle
6793
- };
6794
- };
6795
-
6796
  var setup = function (mutation, mode, settings) {
6797
  var active = false;
6798
  var events = Events.create({
@@ -6813,7 +6670,7 @@ var table = (function (domGlobals) {
6813
  movement.on();
6814
  events.trigger.start();
6815
  };
6816
- var mousemove = function (event, ui) {
6817
  throttledDrop.cancel();
6818
  movement.onEvent(event, mode);
6819
  };
@@ -6828,13 +6685,16 @@ var table = (function (domGlobals) {
6828
  };
6829
  var runIfActive = function (f) {
6830
  return function () {
6831
- var args = Array.prototype.slice.call(arguments, 0);
 
 
 
6832
  if (active) {
6833
- return f.apply(null, args);
6834
  }
6835
  };
6836
  };
6837
- var sink = mode.sink(DragApis.api({
6838
  forceDrop: drop,
6839
  drop: runIfActive(drop),
6840
  move: runIfActive(mousemove),
@@ -6854,18 +6714,16 @@ var table = (function (domGlobals) {
6854
  };
6855
  var Dragging = { setup: setup };
6856
 
6857
- var transform$1 = function (mutation, options) {
6858
- var settings = options !== undefined ? options : {};
 
 
6859
  var mode = settings.mode !== undefined ? settings.mode : MouseDrag;
6860
- return Dragging.setup(mutation, mode, options);
6861
  };
6862
  var Dragger = { transform: transform$1 };
6863
 
6864
- var closest$2 = function (scope, selector, isRoot) {
6865
- return closest$1(scope, selector, isRoot).isSome();
6866
- };
6867
-
6868
- function Mutation () {
6869
  var events = Events.create({
6870
  drag: Event([
6871
  'xDelta',
@@ -6879,9 +6737,9 @@ var table = (function (domGlobals) {
6879
  mutate: mutate,
6880
  events: events.registry
6881
  };
6882
- }
6883
 
6884
- function BarMutation () {
6885
  var events = Events.create({
6886
  drag: Event([
6887
  'xDelta',
@@ -6908,10 +6766,17 @@ var table = (function (domGlobals) {
6908
  mutate: delegate.mutate,
6909
  events: events.registry
6910
  };
6911
- }
 
 
 
 
 
 
 
6912
 
6913
  var resizeBarDragging = Styles.resolve('resizer-bar-dragging');
6914
- function BarManager (wire, direction, hdirection) {
6915
  var mutation = BarMutation();
6916
  var resizing = Dragger.transform(mutation, {});
6917
  var hoverTable = Option.none();
@@ -6969,15 +6834,20 @@ var table = (function (domGlobals) {
6969
  var isRoot = function (e) {
6970
  return eq(e, wire.view());
6971
  };
 
 
 
 
 
6972
  var mouseover = bind$2(wire.view(), 'mouseover', function (event) {
6973
- if (name(event.target()) === 'table' || closest$2(event.target(), 'table', isRoot)) {
6974
- hoverTable = name(event.target()) === 'table' ? Option.some(event.target()) : ancestor$1(event.target(), 'table', isRoot);
6975
- hoverTable.each(function (ht) {
6976
- Bars.refresh(wire, ht, hdirection, direction);
6977
- });
6978
- } else if (inBody(event.target())) {
6979
- Bars.destroy(wire);
6980
- }
6981
  });
6982
  var destroy = function () {
6983
  mousedown.unbind();
@@ -7010,7 +6880,7 @@ var table = (function (domGlobals) {
7010
  showBars: curry(Bars.show, wire),
7011
  events: events.registry
7012
  };
7013
- }
7014
 
7015
  function TableResize (wire, vdirection) {
7016
  var hdirection = BarPositions.height;
@@ -7022,7 +6892,7 @@ var table = (function (domGlobals) {
7022
  });
7023
  manager.events.adjustHeight.bind(function (event) {
7024
  events.trigger.beforeResize(event.table());
7025
- var delta = hdirection.delta(event.delta());
7026
  Adjustments.adjustHeight(event.table(), delta, event.row(), hdirection);
7027
  events.trigger.afterResize(event.table());
7028
  });
@@ -7058,7 +6928,7 @@ var table = (function (domGlobals) {
7058
  append(body(), container);
7059
  return container;
7060
  };
7061
- var get$9 = function (editor, container) {
7062
  return editor.inline ? ResizeWire.body(getBody$1(editor), createContainer()) : ResizeWire.only(Element.fromDom(editor.getDoc()));
7063
  };
7064
  var remove$6 = function (editor, wire) {
@@ -7067,7 +6937,7 @@ var table = (function (domGlobals) {
7067
  }
7068
  };
7069
  var TableWire = {
7070
- get: get$9,
7071
  remove: remove$6
7072
  };
7073
 
@@ -7165,35 +7035,24 @@ var table = (function (domGlobals) {
7165
  };
7166
  };
7167
 
7168
- var folder$1 = function (fold) {
7169
- return { fold: fold };
7170
- };
7171
- var none$2 = function (current) {
7172
- return folder$1(function (n, f, m, l) {
7173
- return n(current);
7174
- });
7175
- };
7176
- var first$1 = function (current) {
7177
- return folder$1(function (n, f, m, l) {
7178
- return f(current);
7179
- });
7180
- };
7181
- var middle$1 = function (current, target) {
7182
- return folder$1(function (n, f, m, l) {
7183
- return m(current, target);
7184
- });
7185
- };
7186
- var last$3 = function (current) {
7187
- return folder$1(function (n, f, m, l) {
7188
- return l(current);
7189
- });
7190
- };
7191
- var CellLocation = {
7192
- none: none$2,
7193
- first: first$1,
7194
- middle: middle$1,
7195
- last: last$3
7196
  };
 
7197
 
7198
  var detect$4 = function (current, isRoot) {
7199
  return TableLookup.table(current, isRoot).bind(function (table) {
@@ -7230,7 +7089,10 @@ var table = (function (domGlobals) {
7230
  prev: prev
7231
  };
7232
 
7233
- var adt = Adt.generate([
 
 
 
7234
  { before: ['element'] },
7235
  {
7236
  on: [
@@ -7246,9 +7108,9 @@ var table = (function (domGlobals) {
7246
  var getStart = function (situ) {
7247
  return situ.fold(identity, identity, identity);
7248
  };
7249
- var before$2 = adt.before;
7250
- var on = adt.on;
7251
- var after$2 = adt.after;
7252
  var Situ = {
7253
  before: before$2,
7254
  on: on,
@@ -7257,7 +7119,7 @@ var table = (function (domGlobals) {
7257
  getStart: getStart
7258
  };
7259
 
7260
- var type$2 = Adt.generate([
7261
  { domRange: ['rng'] },
7262
  {
7263
  relative: [
@@ -7274,7 +7136,9 @@ var table = (function (domGlobals) {
7274
  ]
7275
  }
7276
  ]);
7277
- var range$1 = Immutable('start', 'soffset', 'finish', 'foffset');
 
 
7278
  var getStart$1 = function (selection) {
7279
  return selection.match({
7280
  domRange: function (rng) {
@@ -7288,24 +7152,21 @@ var table = (function (domGlobals) {
7288
  }
7289
  });
7290
  };
 
 
 
7291
  var getWin = function (selection) {
7292
  var start = getStart$1(selection);
7293
  return defaultView(start);
7294
  };
7295
- var relative = type$2.relative;
7296
- var exact = type$2.exact;
7297
-
7298
- var makeRange = function (start, soffset, finish, foffset) {
7299
- var doc = owner(start);
7300
- var rng = doc.dom().createRange();
7301
- rng.setStart(start.dom(), soffset);
7302
- rng.setEnd(finish.dom(), foffset);
7303
- return rng;
7304
- };
7305
- var after$3 = function (start, soffset, finish, foffset) {
7306
- var r = makeRange(start, soffset, finish, foffset);
7307
- var same = eq(start, finish) && soffset === foffset;
7308
- return r.collapsed && !same;
7309
  };
7310
 
7311
  var selectNodeContents = function (win, element) {
@@ -7362,7 +7223,7 @@ var table = (function (domGlobals) {
7362
  return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();
7363
  };
7364
 
7365
- var adt$1 = Adt.generate([
7366
  {
7367
  ltr: [
7368
  'start',
@@ -7420,12 +7281,12 @@ var table = (function (domGlobals) {
7420
  return rev.collapsed === false;
7421
  });
7422
  return reversed.map(function (rev) {
7423
- return adt$1.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);
7424
  }).getOrThunk(function () {
7425
- return fromRange(win, adt$1.ltr, rng);
7426
  });
7427
  } else {
7428
- return fromRange(win, adt$1.ltr, rng);
7429
  }
7430
  };
7431
  var diagnose = function (win, selection) {
@@ -7510,8 +7371,7 @@ var table = (function (domGlobals) {
7510
  });
7511
  };
7512
  var locateNode = function (doc, node, x, y) {
7513
- var locator = isText(node) ? locate : searchInChildren;
7514
- return locator(doc, node, x, y);
7515
  };
7516
  var locate$1 = function (doc, node, x, y) {
7517
  var r = doc.dom().createRange();
@@ -7587,7 +7447,7 @@ var table = (function (domGlobals) {
7587
  var fromPoint$1 = function (win, x, y) {
7588
  var doc = Element.fromDom(win.document);
7589
  return availableSearch(doc, x, y).map(function (rng) {
7590
- return range$1(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);
7591
  });
7592
  };
7593
 
@@ -7607,12 +7467,12 @@ var table = (function (domGlobals) {
7607
  var preprocessRelative = function (startSitu, finishSitu) {
7608
  var start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);
7609
  var finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);
7610
- return relative(start, finish);
7611
  };
7612
  var preprocessExact = function (start, soffset, finish, foffset) {
7613
  var startSitu = beforeSpecial(start, soffset);
7614
  var finishSitu = beforeSpecial(finish, foffset);
7615
- return relative(startSitu, finishSitu);
7616
  };
7617
  var preprocess = function (selection) {
7618
  return selection.match({
@@ -7626,6 +7486,19 @@ var table = (function (domGlobals) {
7626
  });
7627
  };
7628
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7629
  var doSetNativeRange = function (win, rng) {
7630
  Option.from(win.getSelection()).each(function (selection) {
7631
  selection.removeAllRanges();
@@ -7670,7 +7543,7 @@ var table = (function (domGlobals) {
7670
  setRangeFromRelative(win, relative);
7671
  };
7672
  var toNative = function (selection) {
7673
- var win = getWin(selection).dom();
7674
  var getDomRange = function (start, soffset, finish, foffset) {
7675
  return exactToNative(win, start, soffset, finish, foffset);
7676
  };
@@ -7684,7 +7557,7 @@ var table = (function (domGlobals) {
7684
  if (selection.rangeCount > 0) {
7685
  var firstRng = selection.getRangeAt(0);
7686
  var lastRng = selection.getRangeAt(selection.rangeCount - 1);
7687
- return Option.some(range$1(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));
7688
  } else {
7689
  return Option.none();
7690
  }
@@ -7692,7 +7565,7 @@ var table = (function (domGlobals) {
7692
  var doGetExact = function (selection) {
7693
  var anchor = Element.fromDom(selection.anchorNode);
7694
  var focus = Element.fromDom(selection.focusNode);
7695
- return after$3(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(range$1(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);
7696
  };
7697
  var setToElement = function (win, element) {
7698
  var rng = selectNodeContents(win, element);
@@ -7703,9 +7576,9 @@ var table = (function (domGlobals) {
7703
  return sel.rangeCount > 0;
7704
  }).bind(doGetExact);
7705
  };
7706
- var get$a = function (win) {
7707
  return getExact(win).map(function (range) {
7708
- return exact(range.start(), range.soffset(), range.finish(), range.foffset());
7709
  });
7710
  };
7711
  var getFirstRect$1 = function (win, selection) {
@@ -7715,7 +7588,7 @@ var table = (function (domGlobals) {
7715
  var getAtPoint = function (win, x, y) {
7716
  return fromPoint$1(win, x, y);
7717
  };
7718
- var clear$1 = function (win) {
7719
  var selection = win.getSelection();
7720
  selection.removeAllRanges();
7721
  };
@@ -7729,7 +7602,7 @@ var table = (function (domGlobals) {
7729
  return go(editor, isRoot, CellNavigation.prev(cell), lazyWire);
7730
  };
7731
  var getCellFirstCursorPosition = function (editor, cell) {
7732
- var selection = exact(cell, 0, cell, 0);
7733
  return toNative(selection);
7734
  };
7735
  var getNewRowCursorPosition = function (editor, table) {
@@ -7783,160 +7656,52 @@ var table = (function (domGlobals) {
7783
  };
7784
  var TabContext = { handle: handle$1 };
7785
 
7786
- var response = Immutable('selection', 'kill');
7787
- var Responses = { response: response };
7788
 
7789
- var isKey = function (key) {
7790
- return function (keycode) {
7791
- return keycode === key;
 
7792
  };
7793
  };
7794
- var isUp = isKey(38);
7795
- var isDown = isKey(40);
7796
- var isNavigation = function (keycode) {
7797
- return keycode >= 37 && keycode <= 40;
7798
- };
7799
- var SelectionKeys = {
7800
- ltr: {
7801
- isBackward: isKey(37),
7802
- isForward: isKey(39)
7803
- },
7804
- rtl: {
7805
- isBackward: isKey(39),
7806
- isForward: isKey(37)
7807
- },
7808
- isUp: isUp,
7809
- isDown: isDown,
7810
- isNavigation: isNavigation
7811
- };
7812
 
7813
  var convertToRange = function (win, selection) {
7814
  var rng = asLtrRange(win, selection);
7815
- return {
7816
- start: constant(Element.fromDom(rng.startContainer)),
7817
- soffset: constant(rng.startOffset),
7818
- finish: constant(Element.fromDom(rng.endContainer)),
7819
- foffset: constant(rng.endOffset)
7820
- };
7821
- };
7822
- var makeSitus = function (start, soffset, finish, foffset) {
7823
- return {
7824
- start: constant(Situ.on(start, soffset)),
7825
- finish: constant(Situ.on(finish, foffset))
7826
- };
7827
  };
7828
- var Util$1 = {
 
7829
  convertToRange: convertToRange,
7830
  makeSitus: makeSitus
7831
  };
7832
 
7833
- var isSafari = PlatformDetection$1.detect().browser.isSafari();
7834
- var get$b = function (_DOC) {
7835
- var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;
7836
- var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
7837
- var y = doc.body.scrollTop || doc.documentElement.scrollTop;
7838
- return Position(x, y);
 
 
 
 
7839
  };
7840
- var by = function (x, y, _DOC) {
7841
- var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;
7842
- var win = doc.defaultView;
7843
- win.scrollBy(x, y);
7844
- };
7845
-
7846
- function WindowBridge (win) {
7847
- var elementFromPoint = function (x, y) {
7848
- return Element.fromPoint(Element.fromDom(win.document), x, y);
7849
- };
7850
- var getRect = function (element) {
7851
- return element.dom().getBoundingClientRect();
7852
- };
7853
- var getRangedRect = function (start, soffset, finish, foffset) {
7854
- var sel = exact(start, soffset, finish, foffset);
7855
- return getFirstRect$1(win, sel).map(function (structRect) {
7856
- return map$1(structRect, apply);
7857
- });
7858
- };
7859
- var getSelection = function () {
7860
- return get$a(win).map(function (exactAdt) {
7861
- return Util$1.convertToRange(win, exactAdt);
7862
- });
7863
- };
7864
- var fromSitus = function (situs) {
7865
- var relative$1 = relative(situs.start(), situs.finish());
7866
- return Util$1.convertToRange(win, relative$1);
7867
- };
7868
- var situsFromPoint = function (x, y) {
7869
- return getAtPoint(win, x, y).map(function (exact) {
7870
- return {
7871
- start: constant(Situ.on(exact.start(), exact.soffset())),
7872
- finish: constant(Situ.on(exact.finish(), exact.foffset()))
7873
- };
7874
- });
7875
- };
7876
- var clearSelection = function () {
7877
- clear$1(win);
7878
- };
7879
- var selectContents = function (element) {
7880
- setToElement(win, element);
7881
- };
7882
- var setSelection = function (sel) {
7883
- setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());
7884
- };
7885
- var setRelativeSelection = function (start, finish) {
7886
- setRelative(win, start, finish);
7887
- };
7888
- var getInnerHeight = function () {
7889
- return win.innerHeight;
7890
- };
7891
- var getScrollY = function () {
7892
- var pos = get$b(Element.fromDom(win.document));
7893
- return pos.top();
7894
- };
7895
- var scrollBy = function (x, y) {
7896
- by(x, y, Element.fromDom(win.document));
7897
- };
7898
- return {
7899
- elementFromPoint: elementFromPoint,
7900
- getRect: getRect,
7901
- getRangedRect: getRangedRect,
7902
- getSelection: getSelection,
7903
- fromSitus: fromSitus,
7904
- situsFromPoint: situsFromPoint,
7905
- clearSelection: clearSelection,
7906
- setSelection: setSelection,
7907
- setRelativeSelection: setRelativeSelection,
7908
- selectContents: selectContents,
7909
- getInnerHeight: getInnerHeight,
7910
- getScrollY: getScrollY,
7911
- scrollBy: scrollBy
7912
- };
7913
- }
7914
-
7915
- var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {
7916
- if (!(eq(start, finish) && soffset === foffset)) {
7917
- return closest$1(start, 'td,th', isRoot).bind(function (s) {
7918
- return closest$1(finish, 'td,th', isRoot).bind(function (f) {
7919
- return detect$5(container, isRoot, s, f, selectRange);
7920
- });
7921
- });
7922
- } else {
7923
- return Option.none();
7924
- }
7925
- };
7926
- var detect$5 = function (container, isRoot, start, finish, selectRange) {
7927
- if (!eq(start, finish)) {
7928
- return CellSelection.identify(start, finish, isRoot).bind(function (cellSel) {
7929
- var boxes = cellSel.boxes().getOr([]);
7930
- if (boxes.length > 0) {
7931
- selectRange(container, boxes, cellSel.start(), cellSel.finish());
7932
- return Option.some(Responses.response(Option.some(Util$1.makeSitus(start, 0, start, getEnd(start))), true));
7933
- } else {
7934
- return Option.none();
7935
- }
7936
- });
7937
- } else {
7938
- return Option.none();
7939
- }
7940
  };
7941
  var update = function (rows, columns, container, selected, annotations) {
7942
  var updateSelection = function (newSels) {
@@ -7952,114 +7717,6 @@ var table = (function (domGlobals) {
7952
  update: update
7953
  };
7954
 
7955
- var nu$3 = MixedBag([
7956
- 'left',
7957
- 'top',
7958
- 'right',
7959
- 'bottom'
7960
- ], []);
7961
- var moveDown = function (caret, amount) {
7962
- return nu$3({
7963
- left: caret.left(),
7964
- top: caret.top() + amount,
7965
- right: caret.right(),
7966
- bottom: caret.bottom() + amount
7967
- });
7968
- };
7969
- var moveUp = function (caret, amount) {
7970
- return nu$3({
7971
- left: caret.left(),
7972
- top: caret.top() - amount,
7973
- right: caret.right(),
7974
- bottom: caret.bottom() - amount
7975
- });
7976
- };
7977
- var moveBottomTo = function (caret, bottom) {
7978
- var height = caret.bottom() - caret.top();
7979
- return nu$3({
7980
- left: caret.left(),
7981
- top: bottom - height,
7982
- right: caret.right(),
7983
- bottom: bottom
7984
- });
7985
- };
7986
- var moveTopTo = function (caret, top) {
7987
- var height = caret.bottom() - caret.top();
7988
- return nu$3({
7989
- left: caret.left(),
7990
- top: top,
7991
- right: caret.right(),
7992
- bottom: top + height
7993
- });
7994
- };
7995
- var translate = function (caret, xDelta, yDelta) {
7996
- return nu$3({
7997
- left: caret.left() + xDelta,
7998
- top: caret.top() + yDelta,
7999
- right: caret.right() + xDelta,
8000
- bottom: caret.bottom() + yDelta
8001
- });
8002
- };
8003
- var getTop$1 = function (caret) {
8004
- return caret.top();
8005
- };
8006
- var getBottom = function (caret) {
8007
- return caret.bottom();
8008
- };
8009
- var toString = function (caret) {
8010
- return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';
8011
- };
8012
- var Carets = {
8013
- nu: nu$3,
8014
- moveUp: moveUp,
8015
- moveDown: moveDown,
8016
- moveBottomTo: moveBottomTo,
8017
- moveTopTo: moveTopTo,
8018
- getTop: getTop$1,
8019
- getBottom: getBottom,
8020
- translate: translate,
8021
- toString: toString
8022
- };
8023
-
8024
- var getPartialBox = function (bridge, element, offset) {
8025
- if (offset >= 0 && offset < getEnd(element))
8026
- return bridge.getRangedRect(element, offset, element, offset + 1);
8027
- else if (offset > 0)
8028
- return bridge.getRangedRect(element, offset - 1, element, offset);
8029
- return Option.none();
8030
- };
8031
- var toCaret = function (rect) {
8032
- return Carets.nu({
8033
- left: rect.left,
8034
- top: rect.top,
8035
- right: rect.right,
8036
- bottom: rect.bottom
8037
- });
8038
- };
8039
- var getElemBox = function (bridge, element) {
8040
- return Option.some(bridge.getRect(element));
8041
- };
8042
- var getBoxAt = function (bridge, element, offset) {
8043
- if (isElement(element))
8044
- return getElemBox(bridge, element).map(toCaret);
8045
- else if (isText(element))
8046
- return getPartialBox(bridge, element, offset).map(toCaret);
8047
- else
8048
- return Option.none();
8049
- };
8050
- var getEntireBox = function (bridge, element) {
8051
- if (isElement(element))
8052
- return getElemBox(bridge, element).map(toCaret);
8053
- else if (isText(element))
8054
- return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);
8055
- else
8056
- return Option.none();
8057
- };
8058
- var Rectangles = {
8059
- getBoxAt: getBoxAt,
8060
- getEntireBox: getEntireBox
8061
- };
8062
-
8063
  var traverse = Immutable('item', 'mode');
8064
  var backtrack = function (universe, item, _direction, transition) {
8065
  if (transition === void 0) {
@@ -8120,7 +7777,7 @@ var table = (function (domGlobals) {
8120
  });
8121
  };
8122
 
8123
- var left$1 = function () {
8124
  var sibling = function (universe, item) {
8125
  return universe.query().prevSibling(item);
8126
  };
@@ -8132,7 +7789,7 @@ var table = (function (domGlobals) {
8132
  first: first
8133
  };
8134
  };
8135
- var right$1 = function () {
8136
  var sibling = function (universe, item) {
8137
  return universe.query().nextSibling(item);
8138
  };
@@ -8145,23 +7802,24 @@ var table = (function (domGlobals) {
8145
  };
8146
  };
8147
  var Walkers = {
8148
- left: left$1,
8149
- right: right$1
8150
  };
8151
 
8152
  var hone = function (universe, item, predicate, mode, direction, isRoot) {
8153
  var next = go$1(universe, item, mode, direction);
8154
  return next.bind(function (n) {
8155
- if (isRoot(n.item()))
8156
  return Option.none();
8157
- else
8158
  return predicate(n.item()) ? Option.some(n.item()) : hone(universe, n.item(), predicate, n.mode(), direction, isRoot);
 
8159
  });
8160
  };
8161
- var left$2 = function (universe, item, predicate, isRoot) {
8162
  return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);
8163
  };
8164
- var right$2 = function (universe, item, predicate, isRoot) {
8165
  return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);
8166
  };
8167
 
@@ -8176,28 +7834,257 @@ var table = (function (domGlobals) {
8176
  var after$4 = function (universe, item, isRoot) {
8177
  return seekRight(universe, item, isLeaf(universe), isRoot);
8178
  };
8179
- var seekLeft = left$2;
8180
- var seekRight = right$2;
8181
-
8182
- var universe$2 = DomUniverse();
8183
- var before$4 = function (element, isRoot) {
8184
- return before$3(universe$2, element, isRoot);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8185
  };
8186
- var after$5 = function (element, isRoot) {
8187
- return after$4(universe$2, element, isRoot);
 
 
 
 
 
 
8188
  };
8189
- var seekLeft$1 = function (element, predicate, isRoot) {
8190
- return seekLeft(universe$2, element, predicate, isRoot);
 
 
 
 
 
 
8191
  };
8192
- var seekRight$1 = function (element, predicate, isRoot) {
8193
- return seekRight(universe$2, element, predicate, isRoot);
 
8194
  };
8195
 
8196
  var JUMP_SIZE = 5;
8197
  var NUM_RETRIES = 100;
8198
- var adt$2 = Adt.generate([
8199
- { 'none': [] },
8200
- { 'retry': ['caret'] }
8201
  ]);
8202
  var isOutside = function (caret, box) {
8203
  return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();
@@ -8211,25 +8098,27 @@ var table = (function (domGlobals) {
8211
  };
8212
  var adjustDown = function (bridge, element, guessBox, original, caret) {
8213
  var lowerCaret = Carets.moveDown(caret, JUMP_SIZE);
8214
- if (Math.abs(guessBox.bottom() - original.bottom()) < 1)
8215
- return adt$2.retry(lowerCaret);
8216
- else if (guessBox.top() > caret.bottom())
8217
- return adt$2.retry(lowerCaret);
8218
- else if (guessBox.top() === caret.bottom())
8219
- return adt$2.retry(Carets.moveDown(caret, 1));
8220
- else
8221
- return inOutsideBlock(bridge, element, caret) ? adt$2.retry(Carets.translate(lowerCaret, JUMP_SIZE, 0)) : adt$2.none();
 
8222
  };
8223
  var adjustUp = function (bridge, element, guessBox, original, caret) {
8224
  var higherCaret = Carets.moveUp(caret, JUMP_SIZE);
8225
- if (Math.abs(guessBox.top() - original.top()) < 1)
8226
- return adt$2.retry(higherCaret);
8227
- else if (guessBox.bottom() < caret.top())
8228
- return adt$2.retry(higherCaret);
8229
- else if (guessBox.bottom() === caret.top())
8230
- return adt$2.retry(Carets.moveUp(caret, 1));
8231
- else
8232
- return inOutsideBlock(bridge, element, caret) ? adt$2.retry(Carets.translate(higherCaret, JUMP_SIZE, 0)) : adt$2.none();
 
8233
  };
8234
  var upMovement = {
8235
  point: Carets.getTop,
@@ -8252,13 +8141,15 @@ var table = (function (domGlobals) {
8252
  return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);
8253
  };
8254
  var adjustTil = function (bridge, movement, original, caret, numRetries) {
8255
- if (numRetries === 0)
8256
  return Option.some(caret);
8257
- if (isAtTable(bridge, caret.left(), movement.point(caret)))
 
8258
  return adjustForTable(bridge, movement, original, caret, numRetries - 1);
 
8259
  return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {
8260
- return guess.start().fold(Option.none, function (element, offset) {
8261
- return Rectangles.getEntireBox(bridge, element, offset).bind(function (guessBox) {
8262
  return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {
8263
  return adjustTil(bridge, movement, original, newCaret, numRetries - 1);
8264
  });
@@ -8275,12 +8166,13 @@ var table = (function (domGlobals) {
8275
  return bridge.situsFromPoint(caret.left(), caret.top() - JUMP_SIZE);
8276
  };
8277
  var checkScroll = function (movement, adjusted, bridge) {
8278
- if (movement.point(adjusted) > bridge.getInnerHeight())
8279
  return Option.some(movement.point(adjusted) - bridge.getInnerHeight());
8280
- else if (movement.point(adjusted) < 0)
8281
  return Option.some(-movement.point(adjusted));
8282
- else
8283
  return Option.none();
 
8284
  };
8285
  var retry = function (movement, bridge, caret) {
8286
  var moved = movement.move(caret, JUMP_SIZE);
@@ -8300,121 +8192,6 @@ var table = (function (domGlobals) {
8300
  getJumpSize: constant(JUMP_SIZE)
8301
  };
8302
 
8303
- var adt$3 = Adt.generate([
8304
- { 'none': ['message'] },
8305
- { 'success': [] },
8306
- { 'failedUp': ['cell'] },
8307
- { 'failedDown': ['cell'] }
8308
- ]);
8309
- var isOverlapping = function (bridge, before, after) {
8310
- var beforeBounds = bridge.getRect(before);
8311
- var afterBounds = bridge.getRect(after);
8312
- return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;
8313
- };
8314
- var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {
8315
- return closest$1(after, 'td,th', isRoot).bind(function (afterCell) {
8316
- return closest$1(before, 'td,th', isRoot).map(function (beforeCell) {
8317
- if (!eq(afterCell, beforeCell)) {
8318
- return DomParent.sharedOne(isRow, [
8319
- afterCell,
8320
- beforeCell
8321
- ]).fold(function () {
8322
- return isOverlapping(bridge, beforeCell, afterCell) ? adt$3.success() : failure(beforeCell);
8323
- }, function (sharedRow) {
8324
- return failure(beforeCell);
8325
- });
8326
- } else {
8327
- return eq(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$3.none('in same cell');
8328
- }
8329
- });
8330
- }).getOr(adt$3.none('default'));
8331
- };
8332
- var isRow = function (elem) {
8333
- return closest$1(elem, 'tr');
8334
- };
8335
- var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {
8336
- return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);
8337
- };
8338
- var BeforeAfter = {
8339
- verify: verify,
8340
- cata: cata$2,
8341
- adt: adt$3
8342
- };
8343
-
8344
- var point = Immutable('element', 'offset');
8345
- var delta = Immutable('element', 'deltaOffset');
8346
- var range$2 = Immutable('element', 'start', 'finish');
8347
- var points = Immutable('begin', 'end');
8348
- var text = Immutable('element', 'text');
8349
-
8350
- var inAncestor = Immutable('ancestor', 'descendants', 'element', 'index');
8351
- var inParent = Immutable('parent', 'children', 'element', 'index');
8352
- var indexInParent = function (element) {
8353
- return parent(element).bind(function (parent) {
8354
- var children$1 = children(parent);
8355
- return indexOf(children$1, element).map(function (index) {
8356
- return inParent(parent, children$1, element, index);
8357
- });
8358
- });
8359
- };
8360
- var indexOf = function (elements, element) {
8361
- return findIndex(elements, curry(eq, element));
8362
- };
8363
-
8364
- var isBr = function (elem) {
8365
- return name(elem) === 'br';
8366
- };
8367
- var gatherer = function (cand, gather, isRoot) {
8368
- return gather(cand, isRoot).bind(function (target) {
8369
- return isText(target) && get$2(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);
8370
- });
8371
- };
8372
- var handleBr = function (isRoot, element, direction) {
8373
- return direction.traverse(element).orThunk(function () {
8374
- return gatherer(element, direction.gather, isRoot);
8375
- }).map(direction.relative);
8376
- };
8377
- var findBr = function (element, offset) {
8378
- return child(element, offset).filter(isBr).orThunk(function () {
8379
- return child(element, offset - 1).filter(isBr);
8380
- });
8381
- };
8382
- var handleParent = function (isRoot, element, offset, direction) {
8383
- return findBr(element, offset).bind(function (br) {
8384
- return direction.traverse(br).fold(function () {
8385
- return gatherer(br, direction.gather, isRoot).map(direction.relative);
8386
- }, function (adjacent) {
8387
- return indexInParent(adjacent).map(function (info) {
8388
- return Situ.on(info.parent(), info.index());
8389
- });
8390
- });
8391
- });
8392
- };
8393
- var tryBr = function (isRoot, element, offset, direction) {
8394
- var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);
8395
- return target.map(function (tgt) {
8396
- return {
8397
- start: constant(tgt),
8398
- finish: constant(tgt)
8399
- };
8400
- });
8401
- };
8402
- var process = function (analysis) {
8403
- return BeforeAfter.cata(analysis, function (message) {
8404
- return Option.none();
8405
- }, function () {
8406
- return Option.none();
8407
- }, function (cell) {
8408
- return Option.some(point(cell, 0));
8409
- }, function (cell) {
8410
- return Option.some(point(cell, getEnd(cell)));
8411
- });
8412
- };
8413
- var BrTags = {
8414
- tryBr: tryBr,
8415
- process: process
8416
- };
8417
-
8418
  var MAX_RETRIES = 20;
8419
  var platform$1 = PlatformDetection$1.detect();
8420
  var findSpot = function (bridge, isRoot, direction) {
@@ -8429,8 +8206,9 @@ var table = (function (domGlobals) {
8429
  });
8430
  };
8431
  var scan = function (bridge, isRoot, element, offset, direction, numRetries) {
8432
- if (numRetries === 0)
8433
  return Option.none();
 
8434
  return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {
8435
  var range = bridge.fromSitus(situs);
8436
  var analysis = BeforeAfter.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);
@@ -8439,15 +8217,17 @@ var table = (function (domGlobals) {
8439
  }, function () {
8440
  return Option.some(situs);
8441
  }, function (cell) {
8442
- if (eq(element, cell) && offset === 0)
8443
  return tryAgain(bridge, element, offset, Carets.moveUp, direction);
8444
- else
8445
  return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);
 
8446
  }, function (cell) {
8447
- if (eq(element, cell) && offset === getEnd(cell))
8448
  return tryAgain(bridge, element, offset, Carets.moveDown, direction);
8449
- else
8450
  return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);
 
8451
  });
8452
  });
8453
  };
@@ -8457,12 +8237,13 @@ var table = (function (domGlobals) {
8457
  });
8458
  };
8459
  var tryAt = function (bridge, direction, box) {
8460
- if (platform$1.browser.isChrome() || platform$1.browser.isSafari() || platform$1.browser.isFirefox() || platform$1.browser.isEdge())
8461
  return direction.otherRetry(bridge, box);
8462
- else if (platform$1.browser.isIE())
8463
  return direction.ieRetry(bridge, box);
8464
- else
8465
  return Option.none();
 
8466
  };
8467
  var tryCursor = function (bridge, isRoot, element, offset, direction) {
8468
  return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {
@@ -8476,10 +8257,6 @@ var table = (function (domGlobals) {
8476
  };
8477
  var TableKeys = { handle: handle$2 };
8478
 
8479
- var ancestor$2 = function (scope, predicate, isRoot) {
8480
- return ancestor(scope, predicate, isRoot).isSome();
8481
- };
8482
-
8483
  var detection = PlatformDetection$1.detect();
8484
  var inSameTable = function (elem, table) {
8485
  return ancestor$2(elem, function (e) {
@@ -8491,8 +8268,9 @@ var table = (function (domGlobals) {
8491
  var simulate = function (bridge, isRoot, direction, initial, anchor) {
8492
  return closest$1(initial, 'td,th', isRoot).bind(function (start) {
8493
  return closest$1(start, 'table', isRoot).bind(function (table) {
8494
- if (!inSameTable(anchor, table))
8495
  return Option.none();
 
8496
  return TableKeys.handle(bridge, isRoot, direction).bind(function (range) {
8497
  return closest$1(range.finish(), 'td,th', isRoot).map(function (finish) {
8498
  return {
@@ -8512,7 +8290,7 @@ var table = (function (domGlobals) {
8512
  return precheck(initial, isRoot).orThunk(function () {
8513
  return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {
8514
  var range = info.range();
8515
- return Responses.response(Option.some(Util$1.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);
8516
  });
8517
  });
8518
  }
@@ -8526,7 +8304,7 @@ var table = (function (domGlobals) {
8526
  return last$1(element).isSome();
8527
  }, isRoot).map(function (last) {
8528
  var lastOffset = getEnd(last);
8529
- return Responses.response(Option.some(Util$1.makeSitus(last, lastOffset, last, lastOffset)), true);
8530
  });
8531
  } else {
8532
  return Option.none();
@@ -8542,7 +8320,7 @@ var table = (function (domGlobals) {
8542
  return seekRight$1(table, function (element) {
8543
  return first(element).isSome();
8544
  }, isRoot).map(function (first) {
8545
- return Responses.response(Option.some(Util$1.makeSitus(first, 0, first, 0)), true);
8546
  });
8547
  } else {
8548
  return Option.none();
@@ -8588,7 +8366,7 @@ var table = (function (domGlobals) {
8588
  });
8589
  });
8590
  };
8591
- var mouseup = function () {
8592
  cursor.each(clearState);
8593
  };
8594
  return {
@@ -8598,23 +8376,138 @@ var table = (function (domGlobals) {
8598
  };
8599
  }
8600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8601
  var KeyDirection = {
8602
- down: {
8603
- traverse: nextSibling,
8604
- gather: after$5,
8605
- relative: Situ.before,
8606
- otherRetry: Retries.tryDown,
8607
- ieRetry: Retries.ieTryDown,
8608
- failure: BeforeAfter.adt.failedDown
 
 
 
 
 
 
 
 
 
 
 
8609
  },
8610
- up: {
8611
- traverse: prevSibling,
8612
- gather: before$4,
8613
- relative: Situ.before,
8614
- otherRetry: Retries.tryUp,
8615
- ieRetry: Retries.ieTryUp,
8616
- failure: BeforeAfter.adt.failedUp
8617
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8618
  };
8619
 
8620
  var rc = Immutable('rows', 'cols');
@@ -8634,8 +8527,9 @@ var table = (function (domGlobals) {
8634
  return Option.none();
8635
  };
8636
  var keydown = function (event, start, soffset, finish, foffset, direction) {
8637
- var keycode = event.raw().which;
8638
- var shiftKey = event.raw().shiftKey === true;
 
8639
  var handler = CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {
8640
  if (SelectionKeys.isDown(keycode) && shiftKey) {
8641
  return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.down, finish, start, annotations.selectRange);
@@ -8659,44 +8553,48 @@ var table = (function (domGlobals) {
8659
  var relative = SelectionKeys.isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;
8660
  bridge.setRelativeSelection(Situ.on(edges.first(), 0), relative(edges.table()));
8661
  annotations.clear(container);
8662
- return Responses.response(Option.none(), true);
8663
  });
8664
  }, function (_) {
8665
- return Option.some(Responses.response(Option.none(), true));
8666
  });
8667
  };
8668
  };
8669
- if (SelectionKeys.isDown(keycode) && shiftKey)
8670
  return update([rc(+1, 0)]);
8671
- else if (SelectionKeys.isUp(keycode) && shiftKey)
8672
  return update([rc(-1, 0)]);
8673
- else if (direction.isBackward(keycode) && shiftKey)
8674
  return update([
8675
  rc(0, -1),
8676
  rc(-1, 0)
8677
  ]);
8678
- else if (direction.isForward(keycode) && shiftKey)
8679
  return update([
8680
  rc(0, +1),
8681
  rc(+1, 0)
8682
  ]);
8683
- else if (SelectionKeys.isNavigation(keycode) && shiftKey === false)
8684
  return clearToNavigate;
8685
- else
8686
  return Option.none;
 
8687
  });
8688
  return handler();
8689
  };
8690
  var keyup = function (event, start, soffset, finish, foffset) {
8691
  return CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {
8692
- var keycode = event.raw().which;
8693
- var shiftKey = event.raw().shiftKey === true;
8694
- if (shiftKey === false)
 
8695
  return Option.none();
8696
- if (SelectionKeys.isNavigation(keycode))
 
8697
  return KeySelection.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);
8698
- else
8699
  return Option.none();
 
8700
  }, Option.none);
8701
  };
8702
  return {
@@ -8825,8 +8723,8 @@ var table = (function (domGlobals) {
8825
  event.kill();
8826
  }
8827
  response.selection().each(function (ns) {
8828
- var relative$1 = relative(ns.start(), ns.finish());
8829
- var rng = asLtrRange(win, relative$1);
8830
  editor.selection.setRng(rng);
8831
  });
8832
  };
5
  var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
6
 
7
  var noop = function () {
 
 
 
 
8
  };
9
  var compose = function (fa, fb) {
10
  return function () {
51
  throw new Error(msg);
52
  };
53
  };
 
 
 
54
  var never = constant(false);
55
  var always = constant(true);
56
 
108
  },
109
  toString: constant('none()')
110
  };
111
+ if (Object.freeze) {
112
  Object.freeze(me);
113
+ }
114
  return me;
115
  }();
116
  var some = function (a) {
185
  };
186
 
187
  var typeOf = function (x) {
188
+ if (x === null) {
189
  return 'null';
190
+ }
191
  var t = typeof x;
192
+ if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
193
  return 'array';
194
+ }
195
+ if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
196
  return 'string';
197
+ }
198
  return t;
199
  };
200
  var isType = function (type) {
208
  var isFunction = isType('function');
209
  var isNumber = isType('number');
210
 
211
+ var slice = Array.prototype.slice;
212
  var rawIndexOf = function () {
213
  var pIndexOf = Array.prototype.indexOf;
214
  var fastIndex = function (xs, x) {
256
  }
257
  return r;
258
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  var foldr = function (xs, f, acc) {
260
  eachr(xs, function (x) {
261
  acc = f(acc, x);
298
  var flatten = function (xs) {
299
  var r = [];
300
  for (var i = 0, len = xs.length; i < len; ++i) {
301
+ if (!isArray(xs[i])) {
302
  throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
303
+ }
304
  push.apply(r, xs[i]);
305
  }
306
  return r;
318
  }
319
  return true;
320
  };
 
321
  var reverse = function (xs) {
322
  var r = slice.call(xs, 0);
323
  r.reverse();
324
  return r;
325
  };
 
 
 
 
 
326
  var last = function (xs) {
327
  return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
328
  };
377
  };
378
  };
379
 
380
+ var sort = function (arr) {
381
  return arr.slice(0).sort();
382
  };
383
  var reqMessage = function (required, keys) {
384
+ throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');
385
  };
386
  var unsuppMessage = function (unsupported) {
387
+ throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));
388
  };
389
  var validateStrArr = function (label, array) {
390
+ if (!isArray(array)) {
391
  throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
392
+ }
393
  each(array, function (a) {
394
+ if (!isString(a)) {
395
  throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
396
+ }
397
  });
398
  };
399
  var invalidTypeMessage = function (incorrect, type) {
400
+ throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');
401
  };
402
  var checkDupes = function (everything) {
403
+ var sorted = sort(everything);
404
  var dupe = find(sorted, function (s, i) {
405
  return i < sorted.length - 1 && s === sorted[i + 1];
406
  });
411
 
412
  var MixedBag = function (required, optional) {
413
  var everything = required.concat(optional);
414
+ if (everything.length === 0) {
415
  throw new Error('You must specify at least one required or optional field.');
416
+ }
417
  validateStrArr('required', required);
418
  validateStrArr('optional', optional);
419
  checkDupes(everything);
422
  var allReqd = forall(required, function (req) {
423
  return contains(keys$1, req);
424
  });
425
+ if (!allReqd) {
426
  reqMessage(required, keys$1);
427
+ }
428
  var unsupported = filter(keys$1, function (key) {
429
  return !contains(everything, key);
430
  });
431
+ if (unsupported.length > 0) {
432
  unsuppMessage(unsupported);
433
+ }
434
  var r = {};
435
  each(required, function (req) {
436
  r[req] = constant(obj[req]);
455
  var ENTITY = domGlobals.Node.ENTITY_NODE;
456
  var NOTATION = domGlobals.Node.NOTATION_NODE;
457
 
458
+ var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
459
+
460
+ var path = function (parts, scope) {
461
+ var o = scope !== undefined && scope !== null ? scope : Global;
462
+ for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
463
+ o = o[parts[i]];
464
+ }
465
+ return o;
466
+ };
467
+ var resolve = function (p, scope) {
468
+ var parts = p.split('.');
469
+ return path(parts, scope);
470
+ };
471
+
472
+ var unsafe = function (name, scope) {
473
+ return resolve(name, scope);
474
+ };
475
+ var getOrDie = function (name, scope) {
476
+ var actual = unsafe(name, scope);
477
+ if (actual === undefined || actual === null) {
478
+ throw new Error(name + ' not available on this browser');
479
+ }
480
+ return actual;
481
+ };
482
+ var Global$1 = { getOrDie: getOrDie };
483
+
484
  var name = function (element) {
485
  var r = element.dom().nodeName;
486
  return r.toLowerCase();
498
  };
499
  var isElement = isType$1(ELEMENT);
500
  var isText = isType$1(TEXT);
 
501
 
502
  var rawSet = function (dom, key, value) {
503
  if (isString(value) || isBoolean(value) || isNumber(value)) {
535
  };
536
 
537
  var checkRange = function (str, substr, start) {
538
+ if (substr === '') {
539
  return true;
540
+ }
541
+ if (str.length < substr.length) {
542
  return false;
543
+ }
544
  var x = str.substr(start, start + substr.length);
545
  return x === substr;
546
  };
555
  };
556
 
557
  var isSupported = function (dom) {
558
+ return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
559
  };
560
 
561
  var cached = function (f) {
683
  }
684
  };
685
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
686
  var node = function () {
687
  var f = Global$1.getOrDie('Node');
688
  return f;
704
  var firstMatch = function (regexes, s) {
705
  for (var i = 0; i < regexes.length; i++) {
706
  var x = regexes[i];
707
+ if (x.test(s)) {
708
  return x;
709
+ }
710
  }
711
  return undefined;
712
  };
713
  var find$1 = function (regexes, agent) {
714
  var r = firstMatch(regexes, agent);
715
+ if (!r) {
716
  return {
717
  major: 0,
718
  minor: 0
719
  };
720
+ }
721
  var group = function (i) {
722
  return Number(agent.replace(r, '$' + i));
723
  };
725
  };
726
  var detect = function (versionRegexes, agent) {
727
  var cleanedAgent = String(agent).toLowerCase();
728
+ if (versionRegexes.length === 0) {
729
  return unknown();
730
+ }
731
  return find$1(versionRegexes, cleanedAgent);
732
  };
733
  var unknown = function () {
893
  name: 'Edge',
894
  versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
895
  search: function (uastring) {
896
+ return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
 
897
  }
898
  },
899
  {
1011
  var ELEMENT$1 = ELEMENT;
1012
  var DOCUMENT$1 = DOCUMENT;
1013
  var is = function (element, selector) {
1014
+ var dom = element.dom();
1015
+ if (dom.nodeType !== ELEMENT$1) {
1016
  return false;
 
 
 
 
 
 
 
 
1017
  } else {
1018
+ var elem = dom;
1019
+ if (elem.matches !== undefined) {
1020
+ return elem.matches(selector);
1021
+ } else if (elem.msMatchesSelector !== undefined) {
1022
+ return elem.msMatchesSelector(selector);
1023
+ } else if (elem.webkitMatchesSelector !== undefined) {
1024
+ return elem.webkitMatchesSelector(selector);
1025
+ } else if (elem.mozMatchesSelector !== undefined) {
1026
+ return elem.mozMatchesSelector(selector);
1027
+ } else {
1028
+ throw new Error('Browser lacks native selectors');
1029
+ }
1030
  }
1031
  };
1032
  var bypassSelector = function (dom) {
1060
  return Element.fromDom(element.dom().ownerDocument);
1061
  };
1062
  var defaultView = function (element) {
1063
+ return Element.fromDom(element.dom().ownerDocument.defaultView);
 
 
1064
  };
1065
  var parent = function (element) {
1066
+ return Option.from(element.dom().parentNode).map(Element.fromDom);
 
1067
  };
1068
  var parents = function (element, isRoot) {
1069
+ var stop = isFunction(isRoot) ? isRoot : never;
1070
  var dom = element.dom();
1071
  var ret = [];
1072
  while (dom.parentNode !== null && dom.parentNode !== undefined) {
1082
  return ret;
1083
  };
1084
  var prevSibling = function (element) {
1085
+ return Option.from(element.dom().previousSibling).map(Element.fromDom);
 
1086
  };
1087
  var nextSibling = function (element) {
1088
+ return Option.from(element.dom().nextSibling).map(Element.fromDom);
 
1089
  };
1090
  var children = function (element) {
1091
+ return map(element.dom().childNodes, Element.fromDom);
 
1092
  };
1093
  var child = function (element, index) {
1094
  var cs = element.dom().childNodes;
1169
  remove$2(wrapper);
1170
  };
1171
 
1172
+ var dimension = Immutable('width', 'height');
1173
  var dimensions = Immutable('width', 'height');
1174
  var grid = Immutable('rows', 'columns');
1175
  var address = Immutable('row', 'column');
1183
  var rowcells = Immutable('cells', 'section');
1184
  var rowdetails = Immutable('details', 'section');
1185
  var bounds = Immutable('startRow', 'startCol', 'finishRow', 'finishCol');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1186
 
1187
  var ancestors = function (scope, predicate, isRoot) {
1188
  return filter(parents(scope, isRoot), predicate);
1234
  return Option.none();
1235
  };
1236
  var closest = function (scope, predicate, isRoot) {
1237
+ var is = function (s, test) {
1238
+ return test(s);
1239
  };
1240
  return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
1241
  };
1242
  var child$1 = function (scope, predicate) {
1243
+ var pred = function (node) {
1244
+ return predicate(Element.fromDom(node));
1245
+ };
1246
+ var result = find(scope.dom().childNodes, pred);
1247
  return result.map(Element.fromDom);
1248
  };
1249
  var descendant = function (scope, predicate) {
1250
  var descend = function (node) {
1251
  for (var i = 0; i < node.childNodes.length; i++) {
1252
+ var child_1 = Element.fromDom(node.childNodes[i]);
1253
+ if (predicate(child_1)) {
1254
+ return Option.some(child_1);
1255
  }
1256
  var res = descend(node.childNodes[i]);
1257
  if (res.isSome()) {
1293
  filterFirstLayer: filterFirstLayer
1294
  };
1295
 
1296
+ var lookup = function (tags, element, isRoot) {
1297
+ if (isRoot === void 0) {
1298
+ isRoot = never;
1299
+ }
1300
  if (isRoot(element)) {
1301
  return Option.none();
1302
  }
1351
  var grid$1 = function (element, rowProp, colProp) {
1352
  var rowsCount = attr(element, rowProp);
1353
  var cols = attr(element, colProp);
1354
+ return grid(rowsCount, cols);
1355
  };
1356
  var TableLookup = {
1357
  cell: cell,
1379
  var cells = map(TableLookup.cells(row), function (cell) {
1380
  var rowspan = has(cell, 'rowspan') ? parseInt(get(cell, 'rowspan'), 10) : 1;
1381
  var colspan = has(cell, 'colspan') ? parseInt(get(cell, 'colspan'), 10) : 1;
1382
+ return detail(cell, rowspan, colspan);
1383
  });
1384
+ return rowdata(element, cells, parentSection);
1385
  });
1386
  };
1387
  var fromPastedRows = function (rows, example) {
1389
  var cells = map(TableLookup.cells(row), function (cell) {
1390
  var rowspan = has(cell, 'rowspan') ? parseInt(get(cell, 'rowspan'), 10) : 1;
1391
  var colspan = has(cell, 'colspan') ? parseInt(get(cell, 'colspan'), 10) : 1;
1392
+ return detail(cell, rowspan, colspan);
1393
  });
1394
+ return rowdata(row, cells, example.section());
1395
  });
1396
  };
1397
  var DetailsList = {
1425
  var maxColumns = 0;
1426
  each(list, function (details, r) {
1427
  var currentRow = [];
1428
+ each(details.cells(), function (detail) {
1429
  var start = 0;
1430
  while (access[key(r, start)] !== undefined) {
1431
  start++;
1432
  }
1433
+ var current = extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);
1434
  for (var i = 0; i < detail.colspan(); i++) {
1435
  for (var j = 0; j < detail.rowspan(); j++) {
1436
  var cr = r + j;
1442
  }
1443
  currentRow.push(current);
1444
  });
1445
+ cells.push(rowdata(details.element(), currentRow, details.section()));
1446
  });
1447
+ var grid$1 = grid(maxRows, maxColumns);
1448
  return {
1449
+ grid: constant(grid$1),
1450
  access: constant(access),
1451
  all: constant(cells)
1452
  };
1558
  }
1559
  return getOption(element).getOr('');
1560
  };
1561
+ var getOption = function (element) {
 
 
 
 
 
 
 
1562
  return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
1563
  };
 
 
1564
  var set = function (element, value) {
1565
  if (!is(element)) {
1566
  throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');
1669
  });
1670
  return replica;
1671
  };
1672
+ var pasteReplace = function (cell) {
1673
+ return cell;
1674
  };
1675
  var newRow = function (doc) {
1676
  return function () {
1749
  return children(Element.fromDom(div));
1750
  };
1751
 
1752
+ var inSelection = function (bounds, detail) {
1753
+ var leftEdge = detail.column();
1754
+ var rightEdge = detail.column() + detail.colspan() - 1;
1755
+ var topEdge = detail.row();
1756
+ var bottomEdge = detail.row() + detail.rowspan() - 1;
1757
+ return leftEdge <= bounds.finishCol() && rightEdge >= bounds.startCol() && (topEdge <= bounds.finishRow() && bottomEdge >= bounds.startRow());
1758
+ };
1759
+ var isWithin = function (bounds, detail) {
1760
+ return detail.column() >= bounds.startCol() && detail.column() + detail.colspan() - 1 <= bounds.finishCol() && detail.row() >= bounds.startRow() && detail.row() + detail.rowspan() - 1 <= bounds.finishRow();
1761
+ };
1762
+ var isRectangular = function (warehouse, bounds) {
1763
+ var isRect = true;
1764
+ var detailIsWithin = curry(isWithin, bounds);
1765
+ for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
1766
+ for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
1767
+ isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);
1768
+ }
1769
+ }
1770
+ return isRect ? Option.some(bounds) : Option.none();
1771
+ };
1772
+ var CellBounds = {
1773
+ inSelection: inSelection,
1774
+ isWithin: isWithin,
1775
+ isRectangular: isRectangular
1776
+ };
1777
+
1778
+ var getBounds = function (detailA, detailB) {
1779
+ return bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));
1780
+ };
1781
+ var getAnyBox = function (warehouse, startCell, finishCell) {
1782
+ var startCoords = Warehouse.findItem(warehouse, startCell, eq);
1783
+ var finishCoords = Warehouse.findItem(warehouse, finishCell, eq);
1784
+ return startCoords.bind(function (sc) {
1785
+ return finishCoords.map(function (fc) {
1786
+ return getBounds(sc, fc);
1787
+ });
1788
+ });
1789
+ };
1790
+ var getBox = function (warehouse, startCell, finishCell) {
1791
+ return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {
1792
+ return CellBounds.isRectangular(warehouse, bounds);
1793
+ });
1794
+ };
1795
+ var CellGroup = {
1796
+ getAnyBox: getAnyBox,
1797
+ getBox: getBox
1798
+ };
1799
+
1800
+ var moveBy = function (warehouse, cell, row, column) {
1801
+ return Warehouse.findItem(warehouse, cell, eq).bind(function (detail) {
1802
+ var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();
1803
+ var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();
1804
+ var dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);
1805
+ return dest.map(function (d) {
1806
+ return d.element();
1807
+ });
1808
+ });
1809
+ };
1810
+ var intercepts = function (warehouse, start, finish) {
1811
+ return CellGroup.getAnyBox(warehouse, start, finish).map(function (bounds) {
1812
+ var inside = Warehouse.filterItems(warehouse, curry(CellBounds.inSelection, bounds));
1813
+ return map(inside, function (detail) {
1814
+ return detail.element();
1815
+ });
1816
+ });
1817
+ };
1818
+ var parentCell = function (warehouse, innerCell) {
1819
+ var isContainedBy = function (c1, c2) {
1820
+ return contains$2(c2, c1);
1821
+ };
1822
+ return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(function (detail) {
1823
+ return detail.element();
1824
+ });
1825
+ };
1826
+ var CellFinder = {
1827
+ moveBy: moveBy,
1828
+ intercepts: intercepts,
1829
+ parentCell: parentCell
1830
+ };
1831
+
1832
+ var moveBy$1 = function (cell, deltaRow, deltaColumn) {
1833
+ return TableLookup.table(cell).bind(function (table) {
1834
+ var warehouse = getWarehouse(table);
1835
+ return CellFinder.moveBy(warehouse, cell, deltaRow, deltaColumn);
1836
+ });
1837
+ };
1838
+ var intercepts$1 = function (table, first, last) {
1839
+ var warehouse = getWarehouse(table);
1840
+ return CellFinder.intercepts(warehouse, first, last);
1841
+ };
1842
+ var nestedIntercepts = function (table, first, firstTable, last, lastTable) {
1843
+ var warehouse = getWarehouse(table);
1844
+ var optStartCell = eq(table, firstTable) ? Option.some(first) : CellFinder.parentCell(warehouse, first);
1845
+ var optLastCell = eq(table, lastTable) ? Option.some(last) : CellFinder.parentCell(warehouse, last);
1846
+ return optStartCell.bind(function (startCell) {
1847
+ return optLastCell.bind(function (lastCell) {
1848
+ return CellFinder.intercepts(warehouse, startCell, lastCell);
1849
+ });
1850
+ });
1851
+ };
1852
+ var getBox$1 = function (table, first, last) {
1853
+ var warehouse = getWarehouse(table);
1854
+ return CellGroup.getBox(warehouse, first, last);
1855
+ };
1856
+ var getWarehouse = function (table) {
1857
+ var list = DetailsList.fromTable(table);
1858
+ return Warehouse.generate(list);
1859
+ };
1860
+ var TablePositions = {
1861
+ moveBy: moveBy$1,
1862
+ intercepts: intercepts$1,
1863
+ nestedIntercepts: nestedIntercepts,
1864
+ getBox: getBox$1
1865
+ };
1866
+
1867
  var TagBoundaries = [
1868
  'body',
1869
  'p',
1906
  return element.dom().ownerDocument;
1907
  };
1908
  var isBoundary = function (element) {
1909
+ if (!isElement(element)) {
1910
  return false;
1911
+ }
1912
+ if (name(element) === 'body') {
1913
  return true;
1914
+ }
1915
  return contains(TagBoundaries, name(element));
1916
  };
1917
  var isEmptyTag = function (element) {
1918
+ if (!isElement(element)) {
1919
  return false;
1920
+ }
1921
  return contains([
1922
  'br',
1923
  'img',
1997
  }
1998
 
1999
  var leftRight = Immutable('left', 'right');
2000
+ var brokenPath = Immutable('first', 'second', 'splits');
2001
  var bisect = function (universe, parent, child) {
2002
  var children = universe.property().children(parent);
2003
  var index = findIndex(children, curry(universe.eq, child));
2026
  });
2027
  };
2028
  var breakPath = function (universe, item, isTop, breaker) {
 
2029
  var next = function (child, group, splits) {
2030
+ var fallback = brokenPath(child, Option.none(), splits);
2031
+ if (isTop(child)) {
2032
+ return brokenPath(child, group, splits);
2033
+ } else {
2034
  return universe.property().parent(child).bind(function (parent) {
2035
  return breaker(universe, parent, child).map(function (breakage) {
2036
  var extra = [{
2039
  }];
2040
  var nextChild = isTop(parent) ? parent : breakage.left();
2041
  return next(nextChild, Option.some(breakage.right()), splits.concat(extra));
2042
+ });
2043
+ }).getOr(fallback);
2044
  }
2045
  };
2046
  return next(item, Option.none(), []);
2047
  };
 
 
 
 
 
2048
 
2049
  var all$1 = function (universe, look, elements, f) {
2050
  var head = elements[0];
2066
  return end.filter(curry(universe.eq, s));
2067
  });
2068
  };
 
2069
 
2070
  var eq$1 = function (universe, item) {
2071
  return curry(universe.eq, item);
2072
  };
2073
  var unsafeSubset = function (universe, common, ps1, ps2) {
2074
  var children = universe.property().children(common);
2075
+ if (universe.eq(common, ps1[0])) {
2076
  return Option.some([ps1[0]]);
2077
+ }
2078
+ if (universe.eq(common, ps2[0])) {
2079
  return Option.some([ps2[0]]);
2080
+ }
2081
  var finder = function (ps) {
2082
  var topDown = reverse(ps);
2083
  var index = findIndex(topDown, eq$1(universe, common)).getOr(-1);
2094
  });
2095
  });
2096
  };
2097
+ var ancestors$2 = function (universe, start, end, isRoot) {
2098
+ if (isRoot === void 0) {
2099
+ isRoot = never;
2100
+ }
2101
  var ps1 = [start].concat(universe.up().all(start));
2102
  var ps2 = [end].concat(universe.up().all(end));
2103
  var prune = function (path) {
2125
  return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());
2126
  });
2127
  };
2128
+ var SubsetFn = {
2129
  subset: subset,
2130
  ancestors: ancestors$2
2131
  };
2132
 
2133
+ var sharedOne = oneAll;
2134
+ var subset$1 = SubsetFn.subset;
2135
+ var ancestors$3 = SubsetFn.ancestors;
2136
+ var breakToLeft$1 = breakToLeft;
2137
+ var breakToRight$1 = breakToRight;
2138
+ var breakPath$1 = breakPath;
 
 
 
 
 
 
 
 
 
 
 
 
2139
  var Parent = {
2140
  sharedOne: sharedOne,
2141
  subset: subset$1,
2147
 
2148
  var universe = DomUniverse();
2149
  var sharedOne$1 = function (look, elements) {
2150
+ return Parent.sharedOne(universe, function (_universe, element) {
2151
  return look(element);
2152
  }, elements);
2153
  };
2154
  var subset$2 = function (start, finish) {
2155
  return Parent.subset(universe, start, finish);
2156
  };
2157
+ var ancestors$4 = function (start, finish, isRoot) {
2158
+ return Parent.ancestors(universe, start, finish, isRoot);
2159
  };
2160
  var breakToLeft$2 = function (parent, child) {
2161
  return Parent.breakToLeft(universe, parent, child);
2177
  breakPath: breakPath$2
2178
  };
2179
 
2180
+ var create = MixedBag([
2181
+ 'boxes',
2182
+ 'start',
2183
+ 'finish'
2184
+ ], []);
2185
+ var Identified = { create: create };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2186
 
2187
+ var lookupTable = function (container) {
2188
+ return ancestor$1(container, 'table');
 
 
 
 
 
 
 
 
 
2189
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2190
  var identify = function (start, finish, isRoot) {
2191
  var getIsRoot = function (rootTable) {
2192
  return function (element) {
2193
+ return isRoot !== undefined && isRoot(element) || eq(element, rootTable);
2194
  };
2195
  };
2196
  if (eq(start, finish)) {
2197
+ return Option.some(Identified.create({
2198
  boxes: Option.some([start]),
2199
  start: start,
2200
  finish: finish
2201
  }));
2202
  } else {
2203
+ return lookupTable(start).bind(function (startTable) {
2204
+ return lookupTable(finish).bind(function (finishTable) {
2205
  if (eq(startTable, finishTable)) {
2206
+ return Option.some(Identified.create({
2207
  boxes: TablePositions.intercepts(startTable, start, finish),
2208
  start: start,
2209
  finish: finish
2211
  } else if (contains$2(startTable, finishTable)) {
2212
  var ancestorCells = ancestors$1(finish, 'td,th', getIsRoot(startTable));
2213
  var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;
2214
+ return Option.some(Identified.create({
2215
  boxes: TablePositions.nestedIntercepts(startTable, start, startTable, finish, finishTable),
2216
  start: start,
2217
  finish: finishCell
2219
  } else if (contains$2(finishTable, startTable)) {
2220
  var ancestorCells = ancestors$1(start, 'td,th', getIsRoot(finishTable));
2221
  var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;
2222
+ return Option.some(Identified.create({
2223
  boxes: TablePositions.nestedIntercepts(finishTable, start, startTable, finish, finishTable),
2224
  start: start,
2225
  finish: startCell
2231
  var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;
2232
  var startAncestorCells = ancestors$1(start, 'td,th', getIsRoot(lcaTable));
2233
  var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;
2234
+ return Option.some(Identified.create({
2235
  boxes: TablePositions.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),
2236
  start: startCell,
2237
  finish: finishCell
2366
  throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
2367
  }
2368
  var args = new Array(argLength);
2369
+ for (var i = 0; i < args.length; i++) {
2370
  args[i] = arguments[i];
2371
+ }
2372
  var match = function (branches) {
2373
  var branchKeys = keys(branches);
2374
  if (constructors.length !== branchKeys.length) {
2377
  var allReqd = forall(constructors, function (reqKey) {
2378
  return contains(branchKeys, reqKey);
2379
  });
2380
+ if (!allReqd) {
2381
  throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
2382
+ }
2383
  return branches[key].apply(null, args);
2384
  };
2385
  return {
2690
  return cellWidth / tableSize.pixelWidth() * 100;
2691
  };
2692
  var choosePercentageSize = function (element, width, tableSize) {
2693
+ var percentMatch = percentageBasedSizeRegex.exec(width);
2694
+ if (percentMatch !== null) {
2695
  return parseFloat(percentMatch[1]);
2696
  } else {
2697
  var intWidth = get$4(element);
2711
  return cellWidth / 100 * tableSize.pixelWidth();
2712
  };
2713
  var choosePixelSize = function (element, width, tableSize) {
2714
+ var pixelMatch = pixelBasedSizeRegex.exec(width);
2715
+ if (pixelMatch !== null) {
2716
  return parseInt(pixelMatch[1], 10);
2717
+ }
2718
+ var percentMatch = percentageBasedSizeRegex.exec(width);
2719
+ if (percentMatch !== null) {
2720
  var floatWidth = parseFloat(percentMatch[1]);
2721
  return normalizePixelWidth(floatWidth, tableSize);
 
 
2722
  }
2723
+ return get$4(element);
2724
  };
2725
  var getPixelWidth = function (cell, tableSize) {
2726
  var width = getRawWidth(cell);
2736
  var getGenericWidth = function (cell) {
2737
  var width = getRawWidth(cell);
2738
  return width.bind(function (w) {
2739
+ var match = genericSizeRegex.exec(w);
2740
+ if (match !== null) {
2741
  return Option.some({
2742
+ width: constant(parseFloat(match[1])),
2743
  unit: constant(match[3])
2744
  });
2745
  } else {
2774
  };
2775
  var CellMutations = { halve: halve };
2776
 
 
 
 
 
 
 
 
 
 
 
 
 
2777
  var r = function (left, top) {
2778
  var translate = function (x, y) {
2779
  return r(left + x, top + y);
2796
  var absolute = function (element) {
2797
  var doc = element.dom().ownerDocument;
2798
  var body = doc.body;
2799
+ var win = doc.defaultView;
2800
  var html = doc.documentElement;
2801
  var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);
2802
  var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);
2808
  var dom = element.dom();
2809
  var doc = dom.ownerDocument;
2810
  var body = doc.body;
 
2811
  if (body === dom) {
2812
  return Position(body.offsetLeft, body.offsetTop);
2813
  }
2814
+ if (!inBody(element)) {
2815
  return Position(0, 0);
2816
  }
2817
  return boxPosition(dom);
2855
  });
2856
  return lines.concat([lastLine]);
2857
  };
2858
+ var negate = function (step) {
2859
  return -step;
2860
  };
2861
  var height = {
2862
  delta: identity,
2863
+ positions: function (optElements) {
2864
+ return findPositions(getTopEdge, getBottomEdge, optElements);
2865
+ },
2866
  edge: getTop
2867
  };
2868
  var ltr = {
2869
  delta: identity,
2870
  edge: ltrEdge,
2871
+ positions: function (optElements) {
2872
+ return findPositions(getLeftEdge, getRightEdge, optElements);
2873
+ }
2874
  };
2875
  var rtl = {
2876
  delta: negate,
2877
  edge: rtlEdge,
2878
+ positions: function (optElements) {
2879
+ return findPositions(getRightEdge, getLeftEdge, optElements);
2880
+ }
2881
  };
2882
  var BarPositions = {
2883
  height: height,
2898
  return auto(table).delta(amount, table);
2899
  };
2900
  var positions = function (cols, table) {
2901
+ return auto(table).positions(cols, table);
2902
  };
2903
  var edge = function (cell) {
2904
  return auto(cell).edge(cell);
2917
  };
2918
  var TableGridSize = { getGridSize: getGridSize };
2919
 
2920
+ var __assign = function () {
2921
+ __assign = Object.assign || function __assign(t) {
2922
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2923
+ s = arguments[i];
2924
+ for (var p in s)
2925
+ if (Object.prototype.hasOwnProperty.call(s, p))
2926
+ t[p] = s[p];
 
 
 
 
 
 
 
 
 
 
 
2927
  }
2928
+ return t;
2929
  };
2930
+ return __assign.apply(this, arguments);
2931
  };
 
2932
 
2933
  var cat = function (arr) {
2934
  var r = [];
3112
  }
3113
  return r;
3114
  };
 
 
 
 
 
 
 
 
 
 
 
3115
  var deduce = function (xs, index) {
3116
  if (index < 0 || index >= xs.length - 1) {
3117
  return Option.none();
3155
  });
3156
  });
3157
  };
 
 
 
 
 
 
3158
 
3159
  var columns = function (warehouse) {
3160
  var grid = warehouse.grid();
3161
+ var cols = range(0, grid.columns());
3162
+ var rowsArr = range(0, grid.rows());
3163
  return map(cols, function (col) {
3164
  var getBlock = function () {
3165
  return bind(rowsArr, function (r) {
3191
  };
3192
  var rows$1 = function (warehouse) {
3193
  var grid = warehouse.grid();
3194
+ var rowsArr = range(0, grid.rows());
3195
+ var cols = range(0, grid.columns());
3196
  return map(rowsArr, function (row) {
3197
  var getBlock = function () {
3198
  return bind(cols, function (c) {
3267
  var resizeRowBar = Styles.resolve('resizer-rows');
3268
  var resizeColBar = Styles.resolve('resizer-cols');
3269
  var BAR_THICKNESS = 7;
3270
+ var destroy = function (wire) {
3271
  var previous = descendants$1(wire.parent(), '.' + resizeBar);
3272
  each(previous, remove$2);
3273
  };
3303
  refreshCol(wire, colPositions, position, getOuter(table));
3304
  };
3305
  var refresh = function (wire, table, hdirection, vdirection) {
3306
+ destroy(wire);
3307
  var list = DetailsList.fromTable(table);
3308
  var warehouse = Warehouse.generate(list);
3309
  var rows = Blocks.rows(warehouse);
3334
  refresh: refresh,
3335
  hide: hide,
3336
  show: show,
3337
+ destroy: destroy,
3338
  isRowBar: isRowBar,
3339
  isColBar: isColBar
3340
  };
3351
  cells[index] = cell;
3352
  };
3353
  var setCells = function (gridRow, cells) {
3354
+ return rowcells(cells, gridRow.section());
3355
  };
3356
  var mapCells = function (gridRow, f) {
3357
  var cells = gridRow.cells();
3358
  var r = map(cells, f);
3359
+ return rowcells(r, gridRow.section());
3360
  };
3361
  var getCell = function (gridRow, index) {
3362
  return gridRow.cells()[index];
3429
  if (seen[ri][ci] === false) {
3430
  var result = TableGrid.subgrid(grid, ri, ci, comparator);
3431
  updateSeen(ri, ci, result.rowspan(), result.colspan());
3432
+ return [detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];
3433
  } else {
3434
  return [];
3435
  }
3436
  });
3437
+ return rowdetails(details, row.section());
3438
  });
3439
  };
3440
  var toGrid = function (warehouse, generators, isNew) {
3443
  var rowCells = [];
3444
  for (var j = 0; j < warehouse.grid().columns(); j++) {
3445
  var element = Warehouse.getAt(warehouse, i, j).map(function (item) {
3446
+ return elementnew(item.element(), isNew);
3447
  }).getOrThunk(function () {
3448
+ return elementnew(generators.gap(), true);
3449
  });
3450
  rowCells.push(element);
3451
  }
3452
+ var row = rowcells(rowCells, warehouse.all()[i].section());
3453
  grid.push(row);
3454
  }
3455
  return grid;
3467
  var rowOfCells = findMap(details, function (detail) {
3468
  return parent(detail.element()).map(function (row) {
3469
  var isNew = parent(row).isNone();
3470
+ return elementnew(row, isNew);
3471
  });
3472
  });
3473
  return rowOfCells.getOrThunk(function () {
3474
+ return elementnew(generators.row(), true);
3475
  });
3476
  };
3477
  return map(rendered, function (details) {
3478
  var row = findRow(details.details());
3479
+ return rowdatanew(row.element(), details.details(), details.section(), row.isNew());
3480
  });
3481
  };
3482
  var toDetailList = function (grid, generators) {
3527
  var onPaste = function (warehouse, target) {
3528
  return TableLookup.cell(target.element()).bind(function (cell) {
3529
  return findInWarehouse(warehouse, cell).map(function (details) {
3530
+ var value = __assign({}, details, {
3531
  generators: target.generators,
3532
  clipboard: target.clipboard
3533
  });
3534
+ return value;
3535
  });
3536
  });
3537
  };
3542
  });
3543
  });
3544
  var cells = cat(details);
3545
+ return cells.length > 0 ? Option.some({
3546
+ cells: cells,
3547
  generators: target.generators,
3548
  clipboard: target.clipboard
3549
+ }) : Option.none();
3550
  };
3551
+ var onMergable = function (_warehouse, target) {
3552
  return target.mergable();
3553
  };
3554
+ var onUnmergable = function (_warehouse, target) {
3555
  return target.unmergable();
3556
  };
3557
  var onCells = function (warehouse, target) {
3563
  var cells = cat(details);
3564
  return cells.length > 0 ? Option.some(cells) : Option.none();
3565
  };
 
 
 
 
 
 
 
 
 
 
3566
 
3567
  var value = function (o) {
3568
  var is = function (v) {
3661
  toOption: Option.none
3662
  };
3663
  };
3664
+ var fromOption = function (opt, err) {
3665
+ return opt.fold(function () {
3666
+ return error(err);
3667
+ }, value);
3668
+ };
3669
  var Result = {
3670
  value: value,
3671
+ error: error,
3672
+ fromOption: fromOption
3673
  };
3674
 
3675
  var measure = function (startAddress, gridA, gridB) {
3695
  };
3696
  var fill = function (cells, generator) {
3697
  return map(cells, function () {
3698
+ return elementnew(generator.cell(), true);
3699
  });
3700
  };
3701
  var rowFill = function (grid, amount, generator) {
3702
+ return grid.concat(repeat(amount, function (_row) {
3703
  return GridRow.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));
3704
  }));
3705
  };
3706
  var colFill = function (grid, amount, generator) {
3707
  return map(grid, function (row) {
3708
+ return GridRow.setCells(row, row.cells().concat(fill(range(0, amount), generator)));
3709
  });
3710
  };
3711
  var tailor = function (gridA, delta, generator) {
3721
  tailor: tailor
3722
  };
3723
 
3724
+ var merge = function (grid, bounds, comparator, substitution) {
3725
  if (grid.length === 0) {
3726
  return grid;
3727
  }
3728
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
3729
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
3730
+ GridRow.mutateCell(grid[i], j, elementnew(substitution(), false));
3731
  }
3732
  }
3733
  return grid;
3739
  var current = GridRow.getCellElement(grid[i], j);
3740
  var isToReplace = comparator(current, target);
3741
  if (isToReplace === true && first === false) {
3742
+ GridRow.mutateCell(grid[i], j, elementnew(substitution(), true));
3743
  } else if (isToReplace === true) {
3744
  first = false;
3745
  }
3769
  replacement = Option.some(substitution());
3770
  }
3771
  replacement.each(function (sub) {
3772
+ GridRow.mutateCell(grid[i], j, elementnew(sub, true));
3773
  });
3774
  }
3775
  };
3785
  return grid;
3786
  };
3787
  var MergingOperations = {
3788
+ merge: merge,
3789
  unmerge: unmerge,
3790
  splitRows: splitRows
3791
  };
3794
  var candidate = GridRow.getCell(grid[row], col);
3795
  var matching = curry(comparator, candidate.element());
3796
  var currentRow = grid[row];
3797
+ return grid.length > 1 && GridRow.cellLength(currentRow) > 1 && (col > 0 && matching(GridRow.getCellElement(currentRow, col - 1)) || col < currentRow.cells().length - 1 && matching(GridRow.getCellElement(currentRow, col + 1)) || row > 0 && matching(GridRow.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(GridRow.getCellElement(grid[row + 1], col)));
3798
  };
3799
  var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {
3800
  var startRow = startAddress.row();
3810
  }
3811
  var newCell = GridRow.getCellElement(gridB[r - startRow], c - startCol);
3812
  var replacement = generator.replace(newCell);
3813
+ GridRow.mutateCell(gridA[r], c, elementnew(replacement, true));
3814
  }
3815
  }
3816
  return gridA;
3817
  };
3818
+ var merge$1 = function (startAddress, gridA, gridB, generator, comparator) {
3819
  var result = Fitment.measure(startAddress, gridA, gridB);
3820
  return result.map(function (delta) {
3821
  var fittedGrid = Fitment.tailor(gridA, delta, generator);
3831
  return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));
3832
  };
3833
  var TableMerge = {
3834
+ merge: merge$1,
3835
  insert: insert
3836
  };
3837
 
3840
  var after = grid.slice(index);
3841
  var between = GridRow.mapCells(grid[example], function (ex, c) {
3842
  var withinSpan = index > 0 && index < grid.length && comparator(GridRow.getCellElement(grid[index - 1], c), GridRow.getCellElement(grid[index], c));
3843
+ var ret = withinSpan ? GridRow.getCell(grid[index], c) : elementnew(substitution(ex.element(), comparator), true);
3844
  return ret;
3845
  });
3846
  return before.concat([between]).concat(after);
3848
  var insertColumnAt = function (grid, index, example, comparator, substitution) {
3849
  return map(grid, function (row) {
3850
  var withinSpan = index > 0 && index < GridRow.cellLength(row) && comparator(GridRow.getCellElement(row, index - 1), GridRow.getCellElement(row, index));
3851
+ var sub = withinSpan ? GridRow.getCell(row, index) : elementnew(substitution(GridRow.getCellElement(row, example), comparator), true);
3852
  return GridRow.addCell(row, index, sub);
3853
  });
3854
  };
3856
  var index = exampleCol + 1;
3857
  return map(grid, function (row, i) {
3858
  var isTargetCell = i === exampleRow;
3859
+ var sub = isTargetCell ? elementnew(substitution(GridRow.getCellElement(row, exampleCol), comparator), true) : GridRow.getCell(row, exampleCol);
3860
  return GridRow.addCell(row, index, sub);
3861
  });
3862
  };
3866
  var after = grid.slice(index);
3867
  var between = GridRow.mapCells(grid[exampleRow], function (ex, i) {
3868
  var isTargetCell = i === exampleCol;
3869
+ return isTargetCell ? elementnew(substitution(ex.element(), comparator), true) : ex;
3870
  });
3871
  return before.concat([between]).concat(after);
3872
  };
3873
  var deleteColumnsAt = function (grid, start, finish) {
3874
  var rows = map(grid, function (row) {
3875
  var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));
3876
+ return rowcells(cells, row.section());
3877
  });
3878
  return filter(rows, function (row) {
3879
  return row.cells().length > 0;
3891
  deleteColumnsAt: deleteColumnsAt
3892
  };
3893
 
 
 
 
 
3894
  var replaceIn = function (grid, targets, comparator, substitution) {
3895
  var isTarget = function (cell) {
3896
  return exists(targets, function (target) {
3899
  };
3900
  return map(grid, function (row) {
3901
  return GridRow.mapCells(row, function (cell) {
3902
+ return isTarget(cell) ? elementnew(substitution(cell.element(), comparator), true) : cell;
3903
  });
3904
  });
3905
  };
3924
  });
3925
  return replaceIn(grid, targets, comparator, substitution);
3926
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3927
  var TransformOperations = {
3928
  replaceColumn: replaceColumn,
3929
+ replaceRow: replaceRow
 
 
3930
  };
3931
 
3932
+ var adt = Adt.generate([
3933
+ { none: [] },
3934
+ { only: ['index'] },
3935
+ {
3936
+ left: [
3937
+ 'index',
3938
+ 'next'
3939
+ ]
3940
+ },
3941
+ {
3942
+ middle: [
3943
+ 'prev',
3944
+ 'index',
3945
+ 'next'
3946
+ ]
3947
+ },
3948
+ {
3949
+ right: [
3950
+ 'prev',
3951
+ 'index'
3952
+ ]
3953
+ }
3954
+ ]);
3955
+ var ColumnContext = __assign({}, adt);
 
 
 
 
 
 
 
 
 
 
 
3956
 
3957
  var neighbours$1 = function (input, index) {
3958
  if (input.length === 0) {
3999
  }
4000
  };
4001
  var onLeft = onChange;
4002
+ var onMiddle = function (_prev, index, next) {
4003
  return onChange(index, next);
4004
  };
4005
+ var onRight = function (_prev, index) {
4006
  if (step >= 0) {
4007
  return zero(result.slice(0, index)).concat([step]);
4008
  } else {
4041
  return raw;
4042
  });
4043
  };
4044
+ var getRawW = function (cell, tableSize) {
4045
+ return getRaw$1(cell, 'width', function (e) {
4046
+ return Sizes.getPixelWidth(e, tableSize);
4047
+ });
4048
  };
4049
  var getRawH = function (cell) {
4050
  return getRaw$1(cell, 'height', Sizes.getHeight);
4057
  return map(columns, function (cellOption, c) {
4058
  var columnCell = cellOption.filter(not(CellUtils.hasColspan));
4059
  return columnCell.fold(function () {
4060
+ var deduced = deduce(backups, c);
4061
  return fallback(deduced);
4062
  }, function (cell) {
4063
  return getWidth(cell, tableSize);
4069
  return d + 'px';
4070
  }).getOr('');
4071
  };
4072
+ var getRawWidths = function (warehouse, direction, tableSize) {
4073
+ return getWidthFrom(warehouse, direction, getRawW, getDeduced, tableSize);
4074
  };
4075
  var getPercentageWidths = function (warehouse, direction, tableSize) {
4076
  return getWidthFrom(warehouse, direction, Sizes.getPercentageWidth, function (deduced) {
4094
  return map(rows, function (cellOption, c) {
4095
  var rowCell = cellOption.filter(not(CellUtils.hasRowspan));
4096
  return rowCell.fold(function () {
4097
+ var deduced = deduce(backups, c);
4098
  return fallback(deduced);
4099
  }, function (cell) {
4100
  return getHeight(cell);
4173
  return CellUtils.minWidth() / pixelWidth * 100;
4174
  };
4175
  var setTableWidth = function (table, _newWidths, delta) {
4176
+ var ratio = delta / 100;
4177
+ var change = ratio * floatWidth;
4178
+ Sizes.setPercentageWidth(table, floatWidth + change);
4179
  };
4180
  return {
4181
  width: constant(floatWidth),
4189
  };
4190
  };
4191
  var pixelSize = function (width) {
 
4192
  var getCellDelta = identity;
4193
  var singleColumnWidth = function (w, delta) {
4194
  var newNext = Math.max(CellUtils.minWidth(), w + delta);
4201
  Sizes.setPixelWidth(table, total);
4202
  };
4203
  return {
4204
+ width: constant(width),
4205
+ pixelWidth: constant(width),
4206
  getWidths: ColumnSizes.getPixelWidths,
4207
  getCellDelta: getCellDelta,
4208
  singleColumnWidth: singleColumnWidth,
4212
  };
4213
  };
4214
  var chooseSize = function (element, width) {
4215
+ var percentMatch = Sizes.percentageBasedSizeRegex().exec(width);
4216
+ if (percentMatch !== null) {
4217
  return percentageSize(percentMatch[1], element);
 
 
 
 
 
 
4218
  }
4219
+ var pixelMatch = Sizes.pixelBasedSizeRegex().exec(width);
4220
+ if (pixelMatch !== null) {
4221
+ var intWidth = parseInt(pixelMatch[1], 10);
4222
+ return pixelSize(intWidth);
4223
+ }
4224
+ var fallbackWidth = get$4(element);
4225
+ return pixelSize(fallbackWidth);
4226
  };
4227
  var getTableSize = function (element) {
4228
  var width = Sizes.getRawWidth(element);
4289
  each(newSizes, function (cell) {
4290
  tableSize.setElementWidth(cell.element(), cell.width());
4291
  });
 
 
 
4292
  if (newSizes.length > 0) {
4293
+ tableSize.setTableWidth(table, widths, tableSize.getCellDelta(0));
4294
  }
4295
  };
4296
  var Adjustments = {
4324
  });
4325
  };
4326
  var baseWith = function (handleUnsupported, required, pred) {
4327
+ if (required.length === 0) {
4328
  throw new Error('You must specify at least one required field.');
4329
+ }
4330
  validateStrArr('required', required);
4331
  checkDupes(required);
4332
  return function (obj) {
4334
  var allReqd = forall(required, function (req) {
4335
  return contains(keys$1, req);
4336
  });
4337
+ if (!allReqd) {
4338
  reqMessage(required, keys$1);
4339
+ }
4340
  handleUnsupported(required, keys$1);
4341
  var invalidKeys = filter(required, function (key) {
4342
  return !pred.validate(obj[key], key);
4343
  });
4344
+ if (invalidKeys.length > 0) {
4345
  invalidTypeMessage(invalidKeys, pred.label);
4346
+ }
4347
  return obj;
4348
  };
4349
  };
4351
  var unsupported = filter(keys, function (key) {
4352
  return !contains(required, key);
4353
  });
4354
+ if (unsupported.length > 0) {
4355
  unsuppMessage(unsupported);
4356
+ }
4357
  };
4358
  var exactly = function (required) {
4359
  return base(handleExact, required);
4360
  };
4361
 
4362
+ var verifyGenerators = exactly([
4363
+ 'cell',
4364
+ 'row',
4365
+ 'replace',
4366
+ 'gap'
4367
+ ]);
4368
  var elementToData = function (element) {
4369
  var colspan = has(element, 'colspan') ? parseInt(get(element, 'colspan'), 10) : 1;
4370
  var rowspan = has(element, 'rowspan') ? parseInt(get(element, 'rowspan'), 10) : 1;
4374
  rowspan: constant(rowspan)
4375
  };
4376
  };
4377
+ var modification = function (generators, toData) {
4378
+ if (toData === void 0) {
4379
+ toData = elementToData;
4380
+ }
4381
+ verifyGenerators(generators);
4382
  var position = Cell(Option.none());
 
4383
  var nu = function (data) {
4384
  return generators.cell(data);
4385
  };
4414
  var transform = function (scope, tag) {
4415
  return function (generators) {
4416
  var position = Cell(Option.none());
4417
+ verifyGenerators(generators);
4418
  var list = [];
4419
  var find$1 = function (element, comparator) {
4420
  return find(list, function (x) {
4422
  });
4423
  };
4424
  var makeNew = function (element) {
4425
+ var attrs = { scope: scope };
4426
+ var cell = generators.replace(element, tag, attrs);
4427
  list.push({
4428
  item: element,
4429
  sub: cell
4447
  };
4448
  };
4449
  var merging = function (generators) {
4450
+ verifyGenerators(generators);
4451
  var position = Cell(Option.none());
4452
  var combine = function (cell) {
4453
  if (position.get().isNone()) {
4469
  cursor: position.get
4470
  };
4471
  };
 
 
 
 
 
 
4472
  var Generators = {
4473
  modification: modification,
4474
  transform: transform,
4615
  isInline: isInline$1
4616
  };
4617
 
4618
+ var merge$2 = function (cells) {
4619
  var isBr = function (el) {
4620
  return name(el) === 'br';
4621
  };
4635
  if (DomStructure.isEmptyTag(rightSibling)) {
4636
  return name(rightSibling) === 'img' ? false : true;
4637
  }
4638
+ return false;
4639
  }).getOr(false);
4640
  };
4641
  var markCell = function (cell) {
4657
  empty(cells[0]);
4658
  append$1(cells[0], contents);
4659
  };
4660
+ var TableContent = { merge: merge$2 };
4661
 
4662
  var prune = function (table) {
4663
  var cells = TableLookup.cells(table);
4783
  var newGrid = ModificationOperations.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
4784
  return bundle(newGrid, detail.row(), detail.column());
4785
  };
4786
+ var eraseColumns = function (grid, details, _comparator, _genWrappers) {
4787
  var columns = uniqueColumns(details);
4788
  var newGrid = ModificationOperations.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());
4789
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
4790
  return outcome(newGrid, cursor);
4791
  };
4792
+ var eraseRows = function (grid, details, _comparator, _genWrappers) {
4793
  var rows = uniqueRows(details);
4794
  var newGrid = ModificationOperations.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());
4795
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
4814
  return Transitions.toGrid(wh, generators, true);
4815
  };
4816
  var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());
4817
+ var startAddress = address(pasteDetails.row(), pasteDetails.column());
4818
  var mergedGrid = TableMerge.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);
4819
  return mergedGrid.fold(function () {
4820
  return outcome(grid, Option.some(pasteDetails.element()));
4844
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
4845
  return outcome(mergedGrid, cursor);
4846
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4847
  var resize = Adjustments.adjustWidthTo;
4848
  var TableOperations = {
4849
+ insertRowBefore: run(insertRowBefore, onCell, noop, noop, Generators.modification),
4850
+ insertRowsBefore: run(insertRowsBefore, onCells, noop, noop, Generators.modification),
4851
+ insertRowAfter: run(insertRowAfter, onCell, noop, noop, Generators.modification),
4852
+ insertRowsAfter: run(insertRowsAfter, onCells, noop, noop, Generators.modification),
4853
+ insertColumnBefore: run(insertColumnBefore, onCell, resize, noop, Generators.modification),
4854
+ insertColumnsBefore: run(insertColumnsBefore, onCells, resize, noop, Generators.modification),
4855
+ insertColumnAfter: run(insertColumnAfter, onCell, resize, noop, Generators.modification),
4856
+ insertColumnsAfter: run(insertColumnsAfter, onCells, resize, noop, Generators.modification),
4857
+ splitCellIntoColumns: run(splitCellIntoColumns$1, onCell, resize, noop, Generators.modification),
4858
+ splitCellIntoRows: run(splitCellIntoRows$1, onCell, noop, noop, Generators.modification),
4859
+ eraseColumns: run(eraseColumns, onCells, resize, prune, Generators.modification),
4860
+ eraseRows: run(eraseRows, onCells, noop, prune, Generators.modification),
4861
+ makeColumnHeader: run(makeColumnHeader, onCell, noop, noop, Generators.transform('row', 'th')),
4862
+ unmakeColumnHeader: run(unmakeColumnHeader, onCell, noop, noop, Generators.transform(null, 'td')),
4863
+ makeRowHeader: run(makeRowHeader, onCell, noop, noop, Generators.transform('col', 'th')),
4864
+ unmakeRowHeader: run(unmakeRowHeader, onCell, noop, noop, Generators.transform(null, 'td')),
4865
+ mergeCells: run(mergeCells, onMergable, noop, noop, Generators.merging),
4866
+ unmergeCells: run(unmergeCells, onUnmergable, resize, noop, Generators.merging),
4867
+ pasteCells: run(pasteCells, onPaste, resize, noop, Generators.modification),
4868
+ pasteRowsBefore: run(pasteRowsBefore, onPasteRows, noop, noop, Generators.modification),
4869
+ pasteRowsAfter: run(pasteRowsAfter, onPasteRows, noop, noop, Generators.modification)
 
 
4870
  };
4871
 
4872
  var getBody$1 = function (editor) {
5087
  var copyRows = function (table, target, generators) {
5088
  var list = DetailsList.fromTable(table);
5089
  var house = Warehouse.generate(list);
5090
+ var details = onCells(house, target);
5091
  return details.map(function (selectedCells) {
5092
  var grid = Transitions.toGrid(house, generators, false);
5093
  var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());
5094
+ var slicedDetails = toDetailList(slicedGrid, generators);
5095
  return Redraw.copy(slicedDetails);
5096
  });
5097
  };
5866
  return table;
5867
  };
5868
 
5869
+ var get$7 = function (element) {
5870
  return element.dom().innerHTML;
5871
  };
5872
  var getOuter$2 = function (element) {
5873
  var container = Element.fromTag('div');
5874
  var clone = Element.fromDom(element.dom().cloneNode(true));
5875
  append(container, clone);
5876
+ return get$7(container);
5877
  };
5878
 
5879
  var placeCaretInCell = function (editor, cell) {
6320
  };
6321
  var Commands = { registerCommands: registerCommands };
6322
 
6323
+ var only = function (element) {
6324
  var parent = Option.from(element.dom().documentElement).map(Element.fromDom).getOr(element);
6325
  return {
6326
  parent: constant(parent),
6329
  };
6330
  };
6331
  var detached = function (editable, chrome) {
6332
+ var origin = function () {
6333
+ return absolute(chrome);
6334
+ };
6335
  return {
6336
  parent: constant(chrome),
6337
  view: constant(editable),
6346
  };
6347
  };
6348
  var ResizeWire = {
6349
+ only: only,
6350
  detached: detached,
6351
  body: body$1
6352
  };
6353
 
6354
+ var Event = function (fields) {
6355
  var struct = Immutable.apply(null, fields);
6356
  var handlers = [];
6357
  var bind = function (handler) {
6358
  if (handler === undefined) {
6359
+ throw new Error('Event bind error: undefined handler');
6360
  }
6361
  handlers.push(handler);
6362
  };
6366
  });
6367
  };
6368
  var trigger = function () {
6369
+ var args = [];
6370
+ for (var _i = 0; _i < arguments.length; _i++) {
6371
+ args[_i] = arguments[_i];
6372
+ }
6373
+ var event = struct.apply(null, args);
6374
  each(handlers, function (handler) {
6375
  handler(event);
6376
  });
6380
  unbind: unbind,
6381
  trigger: trigger
6382
  };
6383
+ };
6384
 
6385
+ var create$1 = function (typeDefs) {
6386
  var registry = map$1(typeDefs, function (event) {
6387
  return {
6388
  bind: event.bind,
6397
  trigger: trigger
6398
  };
6399
  };
6400
+ var Events = { create: create$1 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6401
 
6402
  var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
6403
  return {
6444
  return bind$1(element, event, filter$1, handler);
6445
  };
6446
 
6447
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
6448
+ var shallow$1 = function (old, nu) {
6449
+ return nu;
 
 
 
 
 
6450
  };
6451
+ var baseMerge = function (merger) {
6452
+ return function () {
6453
+ var objects = new Array(arguments.length);
6454
+ for (var i = 0; i < objects.length; i++) {
6455
+ objects[i] = arguments[i];
6456
+ }
6457
+ if (objects.length === 0) {
6458
+ throw new Error('Can\'t merge zero objects');
6459
+ }
6460
+ var ret = {};
6461
+ for (var j = 0; j < objects.length; j++) {
6462
+ var curObject = objects[j];
6463
+ for (var key in curObject) {
6464
+ if (hasOwnProperty.call(curObject, key)) {
6465
+ ret[key] = merger(ret[key], curObject[key]);
6466
+ }
6467
+ }
6468
+ }
6469
+ return ret;
6470
+ };
6471
+ };
6472
+ var merge$3 = baseMerge(shallow$1);
6473
+
6474
+ var styles$1 = css('ephox-dragster');
6475
+ var Styles$2 = { resolve: styles$1.resolve };
6476
+
6477
+ var Blocker = function (options) {
6478
+ var settings = merge$3({ layerClass: Styles$2.resolve('blocker') }, options);
6479
+ var div = Element.fromTag('div');
6480
+ set(div, 'role', 'presentation');
6481
+ setAll$1(div, {
6482
+ position: 'fixed',
6483
+ left: '0px',
6484
+ top: '0px',
6485
+ width: '100%',
6486
+ height: '100%'
6487
+ });
6488
+ add$2(div, Styles$2.resolve('blocker'));
6489
+ add$2(div, settings.layerClass);
6490
+ var element = function () {
6491
+ return div;
6492
+ };
6493
+ var destroy = function () {
6494
+ remove$2(div);
6495
+ };
6496
+ return {
6497
+ element: element,
6498
+ destroy: destroy
6499
+ };
6500
+ };
6501
+
6502
+ var DragMode = exactly([
6503
+ 'compare',
6504
+ 'extract',
6505
+ 'mutate',
6506
+ 'sink'
6507
+ ]);
6508
+ var DragSink = exactly([
6509
+ 'element',
6510
+ 'start',
6511
+ 'stop',
6512
+ 'destroy'
6513
+ ]);
6514
+ var DragApi = exactly([
6515
+ 'forceDrop',
6516
+ 'drop',
6517
+ 'move',
6518
+ 'delayDrop'
6519
+ ]);
6520
+
6521
+ var compare = function (old, nu) {
6522
+ return Position(nu.left() - old.left(), nu.top() - old.top());
6523
+ };
6524
+ var extract$1 = function (event) {
6525
+ return Option.some(Position(event.x(), event.y()));
6526
+ };
6527
+ var mutate = function (mutation, info) {
6528
+ mutation.mutate(info.left(), info.top());
6529
+ };
6530
+ var sink = function (dragApi, settings) {
6531
  var blocker = Blocker(settings);
6532
  var mdown = bind$2(blocker.element(), 'mousedown', dragApi.forceDrop);
6533
  var mup = bind$2(blocker.element(), 'mouseup', dragApi.drop);
6546
  var stop = function () {
6547
  remove$2(blocker.element());
6548
  };
6549
+ return DragSink({
6550
  element: blocker.element,
6551
  start: start,
6552
  stop: stop,
6553
  destroy: destroy
6554
  });
6555
  };
6556
+ var MouseDrag = DragMode({
6557
  compare: compare,
6558
  extract: extract$1,
6559
+ sink: sink,
6560
  mutate: mutate
6561
  });
6562
 
6563
+ var last$2 = function (fn, rate) {
6564
+ var timer = null;
6565
+ var cancel = function () {
6566
+ if (timer !== null) {
6567
+ domGlobals.clearTimeout(timer);
6568
+ timer = null;
6569
+ }
6570
+ };
6571
+ var throttle = function () {
6572
+ var args = [];
6573
+ for (var _i = 0; _i < arguments.length; _i++) {
6574
+ args[_i] = arguments[_i];
6575
+ }
6576
+ if (timer !== null) {
6577
+ domGlobals.clearTimeout(timer);
6578
+ }
6579
+ timer = domGlobals.setTimeout(function () {
6580
+ fn.apply(null, args);
6581
+ timer = null;
6582
+ }, rate);
6583
+ };
6584
+ return {
6585
+ cancel: cancel,
6586
+ throttle: throttle
6587
+ };
6588
+ };
6589
+
6590
  function InDrag () {
6591
  var previous = Option.none();
6592
  var reset = function () {
6616
  };
6617
  }
6618
 
6619
+ function NoDrag () {
 
 
6620
  return {
6621
+ onEvent: noop,
6622
  reset: noop
6623
  };
6624
  }
6650
  };
6651
  }
6652
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6653
  var setup = function (mutation, mode, settings) {
6654
  var active = false;
6655
  var events = Events.create({
6670
  movement.on();
6671
  events.trigger.start();
6672
  };
6673
+ var mousemove = function (event) {
6674
  throttledDrop.cancel();
6675
  movement.onEvent(event, mode);
6676
  };
6685
  };
6686
  var runIfActive = function (f) {
6687
  return function () {
6688
+ var args = [];
6689
+ for (var _i = 0; _i < arguments.length; _i++) {
6690
+ args[_i] = arguments[_i];
6691
+ }
6692
  if (active) {
6693
+ f.apply(null, args);
6694
  }
6695
  };
6696
  };
6697
+ var sink = mode.sink(DragApi({
6698
  forceDrop: drop,
6699
  drop: runIfActive(drop),
6700
  move: runIfActive(mousemove),
6714
  };
6715
  var Dragging = { setup: setup };
6716
 
6717
+ var transform$1 = function (mutation, settings) {
6718
+ if (settings === void 0) {
6719
+ settings = {};
6720
+ }
6721
  var mode = settings.mode !== undefined ? settings.mode : MouseDrag;
6722
+ return Dragging.setup(mutation, mode, settings);
6723
  };
6724
  var Dragger = { transform: transform$1 };
6725
 
6726
+ var Mutation = function () {
 
 
 
 
6727
  var events = Events.create({
6728
  drag: Event([
6729
  'xDelta',
6737
  mutate: mutate,
6738
  events: events.registry
6739
  };
6740
+ };
6741
 
6742
+ var BarMutation = function () {
6743
  var events = Events.create({
6744
  drag: Event([
6745
  'xDelta',
6766
  mutate: delegate.mutate,
6767
  events: events.registry
6768
  };
6769
+ };
6770
+
6771
+ var isContentEditableTrue = function (elm) {
6772
+ return get(elm, 'contenteditable') === 'true';
6773
+ };
6774
+ var findClosestContentEditable = function (target, isRoot) {
6775
+ return closest$1(target, '[contenteditable]', isRoot);
6776
+ };
6777
 
6778
  var resizeBarDragging = Styles.resolve('resizer-bar-dragging');
6779
+ var BarManager = function (wire, direction, hdirection) {
6780
  var mutation = BarMutation();
6781
  var resizing = Dragger.transform(mutation, {});
6782
  var hoverTable = Option.none();
6834
  var isRoot = function (e) {
6835
  return eq(e, wire.view());
6836
  };
6837
+ var findClosestEditableTable = function (target) {
6838
+ return closest$1(target, 'table', isRoot).filter(function (table) {
6839
+ return findClosestContentEditable(table, isRoot).exists(isContentEditableTrue);
6840
+ });
6841
+ };
6842
  var mouseover = bind$2(wire.view(), 'mouseover', function (event) {
6843
+ findClosestEditableTable(event.target()).fold(function () {
6844
+ if (inBody(event.target())) {
6845
+ Bars.destroy(wire);
6846
+ }
6847
+ }, function (table) {
6848
+ hoverTable = Option.some(table);
6849
+ Bars.refresh(wire, table, hdirection, direction);
6850
+ });
6851
  });
6852
  var destroy = function () {
6853
  mousedown.unbind();
6880
  showBars: curry(Bars.show, wire),
6881
  events: events.registry
6882
  };
6883
+ };
6884
 
6885
  function TableResize (wire, vdirection) {
6886
  var hdirection = BarPositions.height;
6892
  });
6893
  manager.events.adjustHeight.bind(function (event) {
6894
  events.trigger.beforeResize(event.table());
6895
+ var delta = hdirection.delta(event.delta(), event.table());
6896
  Adjustments.adjustHeight(event.table(), delta, event.row(), hdirection);
6897
  events.trigger.afterResize(event.table());
6898
  });
6928
  append(body(), container);
6929
  return container;
6930
  };
6931
+ var get$8 = function (editor, container) {
6932
  return editor.inline ? ResizeWire.body(getBody$1(editor), createContainer()) : ResizeWire.only(Element.fromDom(editor.getDoc()));
6933
  };
6934
  var remove$6 = function (editor, wire) {
6937
  }
6938
  };
6939
  var TableWire = {
6940
+ get: get$8,
6941
  remove: remove$6
6942
  };
6943
 
7035
  };
7036
  };
7037
 
7038
+ var adt$1 = Adt.generate([
7039
+ { none: ['current'] },
7040
+ { first: ['current'] },
7041
+ {
7042
+ middle: [
7043
+ 'current',
7044
+ 'target'
7045
+ ]
7046
+ },
7047
+ { last: ['current'] }
7048
+ ]);
7049
+ var none$1 = function (current) {
7050
+ if (current === void 0) {
7051
+ current = undefined;
7052
+ }
7053
+ return adt$1.none(current);
 
 
 
 
 
 
 
 
 
 
 
 
7054
  };
7055
+ var CellLocation = __assign({}, adt$1, { none: none$1 });
7056
 
7057
  var detect$4 = function (current, isRoot) {
7058
  return TableLookup.table(current, isRoot).bind(function (table) {
7089
  prev: prev
7090
  };
7091
 
7092
+ var create$2 = Immutable('start', 'soffset', 'finish', 'foffset');
7093
+ var SimRange = { create: create$2 };
7094
+
7095
+ var adt$2 = Adt.generate([
7096
  { before: ['element'] },
7097
  {
7098
  on: [
7108
  var getStart = function (situ) {
7109
  return situ.fold(identity, identity, identity);
7110
  };
7111
+ var before$2 = adt$2.before;
7112
+ var on = adt$2.on;
7113
+ var after$2 = adt$2.after;
7114
  var Situ = {
7115
  before: before$2,
7116
  on: on,
7119
  getStart: getStart
7120
  };
7121
 
7122
+ var adt$3 = Adt.generate([
7123
  { domRange: ['rng'] },
7124
  {
7125
  relative: [
7136
  ]
7137
  }
7138
  ]);
7139
+ var exactFromRange = function (simRange) {
7140
+ return adt$3.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());
7141
+ };
7142
  var getStart$1 = function (selection) {
7143
  return selection.match({
7144
  domRange: function (rng) {
7152
  }
7153
  });
7154
  };
7155
+ var domRange = adt$3.domRange;
7156
+ var relative = adt$3.relative;
7157
+ var exact = adt$3.exact;
7158
  var getWin = function (selection) {
7159
  var start = getStart$1(selection);
7160
  return defaultView(start);
7161
  };
7162
+ var range$1 = SimRange.create;
7163
+ var Selection = {
7164
+ domRange: domRange,
7165
+ relative: relative,
7166
+ exact: exact,
7167
+ exactFromRange: exactFromRange,
7168
+ getWin: getWin,
7169
+ range: range$1
 
 
 
 
 
 
7170
  };
7171
 
7172
  var selectNodeContents = function (win, element) {
7223
  return rect.width > 0 || rect.height > 0 ? Option.some(rect).map(toRect) : Option.none();
7224
  };
7225
 
7226
+ var adt$4 = Adt.generate([
7227
  {
7228
  ltr: [
7229
  'start',
7281
  return rev.collapsed === false;
7282
  });
7283
  return reversed.map(function (rev) {
7284
+ return adt$4.rtl(Element.fromDom(rev.endContainer), rev.endOffset, Element.fromDom(rev.startContainer), rev.startOffset);
7285
  }).getOrThunk(function () {
7286
+ return fromRange(win, adt$4.ltr, rng);
7287
  });
7288
  } else {
7289
+ return fromRange(win, adt$4.ltr, rng);
7290
  }
7291
  };
7292
  var diagnose = function (win, selection) {
7371
  });
7372
  };
7373
  var locateNode = function (doc, node, x, y) {
7374
+ return isText(node) ? locate(doc, node, x, y) : searchInChildren(doc, node, x, y);
 
7375
  };
7376
  var locate$1 = function (doc, node, x, y) {
7377
  var r = doc.dom().createRange();
7447
  var fromPoint$1 = function (win, x, y) {
7448
  var doc = Element.fromDom(win.document);
7449
  return availableSearch(doc, x, y).map(function (rng) {
7450
+ return SimRange.create(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);
7451
  });
7452
  };
7453
 
7467
  var preprocessRelative = function (startSitu, finishSitu) {
7468
  var start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);
7469
  var finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);
7470
+ return Selection.relative(start, finish);
7471
  };
7472
  var preprocessExact = function (start, soffset, finish, foffset) {
7473
  var startSitu = beforeSpecial(start, soffset);
7474
  var finishSitu = beforeSpecial(finish, foffset);
7475
+ return Selection.relative(startSitu, finishSitu);
7476
  };
7477
  var preprocess = function (selection) {
7478
  return selection.match({
7486
  });
7487
  };
7488
 
7489
+ var makeRange = function (start, soffset, finish, foffset) {
7490
+ var doc = owner(start);
7491
+ var rng = doc.dom().createRange();
7492
+ rng.setStart(start.dom(), soffset);
7493
+ rng.setEnd(finish.dom(), foffset);
7494
+ return rng;
7495
+ };
7496
+ var after$3 = function (start, soffset, finish, foffset) {
7497
+ var r = makeRange(start, soffset, finish, foffset);
7498
+ var same = eq(start, finish) && soffset === foffset;
7499
+ return r.collapsed && !same;
7500
+ };
7501
+
7502
  var doSetNativeRange = function (win, rng) {
7503
  Option.from(win.getSelection()).each(function (selection) {
7504
  selection.removeAllRanges();
7543
  setRangeFromRelative(win, relative);
7544
  };
7545
  var toNative = function (selection) {
7546
+ var win = Selection.getWin(selection).dom();
7547
  var getDomRange = function (start, soffset, finish, foffset) {
7548
  return exactToNative(win, start, soffset, finish, foffset);
7549
  };
7557
  if (selection.rangeCount > 0) {
7558
  var firstRng = selection.getRangeAt(0);
7559
  var lastRng = selection.getRangeAt(selection.rangeCount - 1);
7560
+ return Option.some(SimRange.create(Element.fromDom(firstRng.startContainer), firstRng.startOffset, Element.fromDom(lastRng.endContainer), lastRng.endOffset));
7561
  } else {
7562
  return Option.none();
7563
  }
7565
  var doGetExact = function (selection) {
7566
  var anchor = Element.fromDom(selection.anchorNode);
7567
  var focus = Element.fromDom(selection.focusNode);
7568
+ return after$3(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Option.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);
7569
  };
7570
  var setToElement = function (win, element) {
7571
  var rng = selectNodeContents(win, element);
7576
  return sel.rangeCount > 0;
7577
  }).bind(doGetExact);
7578
  };
7579
+ var get$9 = function (win) {
7580
  return getExact(win).map(function (range) {
7581
+ return Selection.exact(range.start(), range.soffset(), range.finish(), range.foffset());
7582
  });
7583
  };
7584
  var getFirstRect$1 = function (win, selection) {
7588
  var getAtPoint = function (win, x, y) {
7589
  return fromPoint$1(win, x, y);
7590
  };
7591
+ var clear = function (win) {
7592
  var selection = win.getSelection();
7593
  selection.removeAllRanges();
7594
  };
7602
  return go(editor, isRoot, CellNavigation.prev(cell), lazyWire);
7603
  };
7604
  var getCellFirstCursorPosition = function (editor, cell) {
7605
+ var selection = Selection.exact(cell, 0, cell, 0);
7606
  return toNative(selection);
7607
  };
7608
  var getNewRowCursorPosition = function (editor, table) {
7656
  };
7657
  var TabContext = { handle: handle$1 };
7658
 
7659
+ var create$3 = Immutable('selection', 'kill');
7660
+ var Response = { create: create$3 };
7661
 
7662
+ var create$4 = function (start, soffset, finish, foffset) {
7663
+ return {
7664
+ start: constant(Situ.on(start, soffset)),
7665
+ finish: constant(Situ.on(finish, foffset))
7666
  };
7667
  };
7668
+ var Situs = { create: create$4 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7669
 
7670
  var convertToRange = function (win, selection) {
7671
  var rng = asLtrRange(win, selection);
7672
+ return SimRange.create(Element.fromDom(rng.startContainer), rng.startOffset, Element.fromDom(rng.endContainer), rng.endOffset);
 
 
 
 
 
 
 
 
 
 
 
7673
  };
7674
+ var makeSitus = Situs.create;
7675
+ var Util = {
7676
  convertToRange: convertToRange,
7677
  makeSitus: makeSitus
7678
  };
7679
 
7680
+ var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {
7681
+ if (!(eq(start, finish) && soffset === foffset)) {
7682
+ return closest$1(start, 'td,th', isRoot).bind(function (s) {
7683
+ return closest$1(finish, 'td,th', isRoot).bind(function (f) {
7684
+ return detect$5(container, isRoot, s, f, selectRange);
7685
+ });
7686
+ });
7687
+ } else {
7688
+ return Option.none();
7689
+ }
7690
  };
7691
+ var detect$5 = function (container, isRoot, start, finish, selectRange) {
7692
+ if (!eq(start, finish)) {
7693
+ return CellSelection.identify(start, finish, isRoot).bind(function (cellSel) {
7694
+ var boxes = cellSel.boxes().getOr([]);
7695
+ if (boxes.length > 0) {
7696
+ selectRange(container, boxes, cellSel.start(), cellSel.finish());
7697
+ return Option.some(Response.create(Option.some(Util.makeSitus(start, 0, start, getEnd(start))), true));
7698
+ } else {
7699
+ return Option.none();
7700
+ }
7701
+ });
7702
+ } else {
7703
+ return Option.none();
7704
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7705
  };
7706
  var update = function (rows, columns, container, selected, annotations) {
7707
  var updateSelection = function (newSels) {
7717
  update: update
7718
  };
7719
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7720
  var traverse = Immutable('item', 'mode');
7721
  var backtrack = function (universe, item, _direction, transition) {
7722
  if (transition === void 0) {
7777
  });
7778
  };
7779
 
7780
+ var left = function () {
7781
  var sibling = function (universe, item) {
7782
  return universe.query().prevSibling(item);
7783
  };
7789
  first: first
7790
  };
7791
  };
7792
+ var right = function () {
7793
  var sibling = function (universe, item) {
7794
  return universe.query().nextSibling(item);
7795
  };
7802
  };
7803
  };
7804
  var Walkers = {
7805
+ left: left,
7806
+ right: right
7807
  };
7808
 
7809
  var hone = function (universe, item, predicate, mode, direction, isRoot) {
7810
  var next = go$1(universe, item, mode, direction);
7811
  return next.bind(function (n) {
7812
+ if (isRoot(n.item())) {
7813
  return Option.none();
7814
+ } else {
7815
  return predicate(n.item()) ? Option.some(n.item()) : hone(universe, n.item(), predicate, n.mode(), direction, isRoot);
7816
+ }
7817
  });
7818
  };
7819
+ var left$1 = function (universe, item, predicate, isRoot) {
7820
  return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);
7821
  };
7822
+ var right$1 = function (universe, item, predicate, isRoot) {
7823
  return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);
7824
  };
7825
 
7834
  var after$4 = function (universe, item, isRoot) {
7835
  return seekRight(universe, item, isLeaf(universe), isRoot);
7836
  };
7837
+ var seekLeft = left$1;
7838
+ var seekRight = right$1;
7839
+
7840
+ var universe$2 = DomUniverse();
7841
+ var before$4 = function (element, isRoot) {
7842
+ return before$3(universe$2, element, isRoot);
7843
+ };
7844
+ var after$5 = function (element, isRoot) {
7845
+ return after$4(universe$2, element, isRoot);
7846
+ };
7847
+ var seekLeft$1 = function (element, predicate, isRoot) {
7848
+ return seekLeft(universe$2, element, predicate, isRoot);
7849
+ };
7850
+ var seekRight$1 = function (element, predicate, isRoot) {
7851
+ return seekRight(universe$2, element, predicate, isRoot);
7852
+ };
7853
+
7854
+ var ancestor$2 = function (scope, predicate, isRoot) {
7855
+ return ancestor(scope, predicate, isRoot).isSome();
7856
+ };
7857
+
7858
+ var point = Immutable('element', 'offset');
7859
+ var delta = Immutable('element', 'deltaOffset');
7860
+ var range$2 = Immutable('element', 'start', 'finish');
7861
+ var points = Immutable('begin', 'end');
7862
+ var text = Immutable('element', 'text');
7863
+
7864
+ var adt$5 = Adt.generate([
7865
+ { none: ['message'] },
7866
+ { success: [] },
7867
+ { failedUp: ['cell'] },
7868
+ { failedDown: ['cell'] }
7869
+ ]);
7870
+ var isOverlapping = function (bridge, before, after) {
7871
+ var beforeBounds = bridge.getRect(before);
7872
+ var afterBounds = bridge.getRect(after);
7873
+ return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;
7874
+ };
7875
+ var isRow = function (elem) {
7876
+ return closest$1(elem, 'tr');
7877
+ };
7878
+ var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {
7879
+ return closest$1(after, 'td,th', isRoot).bind(function (afterCell) {
7880
+ return closest$1(before, 'td,th', isRoot).map(function (beforeCell) {
7881
+ if (!eq(afterCell, beforeCell)) {
7882
+ return DomParent.sharedOne(isRow, [
7883
+ afterCell,
7884
+ beforeCell
7885
+ ]).fold(function () {
7886
+ return isOverlapping(bridge, beforeCell, afterCell) ? adt$5.success() : failure(beforeCell);
7887
+ }, function (_sharedRow) {
7888
+ return failure(beforeCell);
7889
+ });
7890
+ } else {
7891
+ return eq(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$5.none('in same cell');
7892
+ }
7893
+ });
7894
+ }).getOr(adt$5.none('default'));
7895
+ };
7896
+ var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {
7897
+ return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);
7898
+ };
7899
+ var BeforeAfter = __assign({}, adt$5, {
7900
+ verify: verify,
7901
+ cata: cata$2
7902
+ });
7903
+
7904
+ var inAncestor = Immutable('ancestor', 'descendants', 'element', 'index');
7905
+ var inParent = Immutable('parent', 'children', 'element', 'index');
7906
+ var indexInParent = function (element) {
7907
+ return parent(element).bind(function (parent) {
7908
+ var children$1 = children(parent);
7909
+ return indexOf(children$1, element).map(function (index) {
7910
+ return inParent(parent, children$1, element, index);
7911
+ });
7912
+ });
7913
+ };
7914
+ var indexOf = function (elements, element) {
7915
+ return findIndex(elements, curry(eq, element));
7916
+ };
7917
+
7918
+ var isBr = function (elem) {
7919
+ return name(elem) === 'br';
7920
+ };
7921
+ var gatherer = function (cand, gather, isRoot) {
7922
+ return gather(cand, isRoot).bind(function (target) {
7923
+ return isText(target) && get$2(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);
7924
+ });
7925
+ };
7926
+ var handleBr = function (isRoot, element, direction) {
7927
+ return direction.traverse(element).orThunk(function () {
7928
+ return gatherer(element, direction.gather, isRoot);
7929
+ }).map(direction.relative);
7930
+ };
7931
+ var findBr = function (element, offset) {
7932
+ return child(element, offset).filter(isBr).orThunk(function () {
7933
+ return child(element, offset - 1).filter(isBr);
7934
+ });
7935
+ };
7936
+ var handleParent = function (isRoot, element, offset, direction) {
7937
+ return findBr(element, offset).bind(function (br) {
7938
+ return direction.traverse(br).fold(function () {
7939
+ return gatherer(br, direction.gather, isRoot).map(direction.relative);
7940
+ }, function (adjacent) {
7941
+ return indexInParent(adjacent).map(function (info) {
7942
+ return Situ.on(info.parent(), info.index());
7943
+ });
7944
+ });
7945
+ });
7946
+ };
7947
+ var tryBr = function (isRoot, element, offset, direction) {
7948
+ var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);
7949
+ return target.map(function (tgt) {
7950
+ return {
7951
+ start: constant(tgt),
7952
+ finish: constant(tgt)
7953
+ };
7954
+ });
7955
+ };
7956
+ var process = function (analysis) {
7957
+ return BeforeAfter.cata(analysis, function (message) {
7958
+ return Option.none();
7959
+ }, function () {
7960
+ return Option.none();
7961
+ }, function (cell) {
7962
+ return Option.some(point(cell, 0));
7963
+ }, function (cell) {
7964
+ return Option.some(point(cell, getEnd(cell)));
7965
+ });
7966
+ };
7967
+ var BrTags = {
7968
+ tryBr: tryBr,
7969
+ process: process
7970
+ };
7971
+
7972
+ var nu$3 = MixedBag([
7973
+ 'left',
7974
+ 'top',
7975
+ 'right',
7976
+ 'bottom'
7977
+ ], []);
7978
+ var moveDown = function (caret, amount) {
7979
+ return nu$3({
7980
+ left: caret.left(),
7981
+ top: caret.top() + amount,
7982
+ right: caret.right(),
7983
+ bottom: caret.bottom() + amount
7984
+ });
7985
+ };
7986
+ var moveUp = function (caret, amount) {
7987
+ return nu$3({
7988
+ left: caret.left(),
7989
+ top: caret.top() - amount,
7990
+ right: caret.right(),
7991
+ bottom: caret.bottom() - amount
7992
+ });
7993
+ };
7994
+ var moveBottomTo = function (caret, bottom) {
7995
+ var height = caret.bottom() - caret.top();
7996
+ return nu$3({
7997
+ left: caret.left(),
7998
+ top: bottom - height,
7999
+ right: caret.right(),
8000
+ bottom: bottom
8001
+ });
8002
+ };
8003
+ var moveTopTo = function (caret, top) {
8004
+ var height = caret.bottom() - caret.top();
8005
+ return nu$3({
8006
+ left: caret.left(),
8007
+ top: top,
8008
+ right: caret.right(),
8009
+ bottom: top + height
8010
+ });
8011
+ };
8012
+ var translate = function (caret, xDelta, yDelta) {
8013
+ return nu$3({
8014
+ left: caret.left() + xDelta,
8015
+ top: caret.top() + yDelta,
8016
+ right: caret.right() + xDelta,
8017
+ bottom: caret.bottom() + yDelta
8018
+ });
8019
+ };
8020
+ var getTop$1 = function (caret) {
8021
+ return caret.top();
8022
+ };
8023
+ var getBottom = function (caret) {
8024
+ return caret.bottom();
8025
+ };
8026
+ var toString = function (caret) {
8027
+ return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';
8028
+ };
8029
+ var Carets = {
8030
+ nu: nu$3,
8031
+ moveUp: moveUp,
8032
+ moveDown: moveDown,
8033
+ moveBottomTo: moveBottomTo,
8034
+ moveTopTo: moveTopTo,
8035
+ getTop: getTop$1,
8036
+ getBottom: getBottom,
8037
+ translate: translate,
8038
+ toString: toString
8039
+ };
8040
+
8041
+ var getPartialBox = function (bridge, element, offset) {
8042
+ if (offset >= 0 && offset < getEnd(element)) {
8043
+ return bridge.getRangedRect(element, offset, element, offset + 1);
8044
+ } else if (offset > 0) {
8045
+ return bridge.getRangedRect(element, offset - 1, element, offset);
8046
+ }
8047
+ return Option.none();
8048
+ };
8049
+ var toCaret = function (rect) {
8050
+ return Carets.nu({
8051
+ left: rect.left,
8052
+ top: rect.top,
8053
+ right: rect.right,
8054
+ bottom: rect.bottom
8055
+ });
8056
+ };
8057
+ var getElemBox = function (bridge, element) {
8058
+ return Option.some(bridge.getRect(element));
8059
  };
8060
+ var getBoxAt = function (bridge, element, offset) {
8061
+ if (isElement(element)) {
8062
+ return getElemBox(bridge, element).map(toCaret);
8063
+ } else if (isText(element)) {
8064
+ return getPartialBox(bridge, element, offset).map(toCaret);
8065
+ } else {
8066
+ return Option.none();
8067
+ }
8068
  };
8069
+ var getEntireBox = function (bridge, element) {
8070
+ if (isElement(element)) {
8071
+ return getElemBox(bridge, element).map(toCaret);
8072
+ } else if (isText(element)) {
8073
+ return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);
8074
+ } else {
8075
+ return Option.none();
8076
+ }
8077
  };
8078
+ var Rectangles = {
8079
+ getBoxAt: getBoxAt,
8080
+ getEntireBox: getEntireBox
8081
  };
8082
 
8083
  var JUMP_SIZE = 5;
8084
  var NUM_RETRIES = 100;
8085
+ var adt$6 = Adt.generate([
8086
+ { none: [] },
8087
+ { retry: ['caret'] }
8088
  ]);
8089
  var isOutside = function (caret, box) {
8090
  return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();
8098
  };
8099
  var adjustDown = function (bridge, element, guessBox, original, caret) {
8100
  var lowerCaret = Carets.moveDown(caret, JUMP_SIZE);
8101
+ if (Math.abs(guessBox.bottom() - original.bottom()) < 1) {
8102
+ return adt$6.retry(lowerCaret);
8103
+ } else if (guessBox.top() > caret.bottom()) {
8104
+ return adt$6.retry(lowerCaret);
8105
+ } else if (guessBox.top() === caret.bottom()) {
8106
+ return adt$6.retry(Carets.moveDown(caret, 1));
8107
+ } else {
8108
+ return inOutsideBlock(bridge, element, caret) ? adt$6.retry(Carets.translate(lowerCaret, JUMP_SIZE, 0)) : adt$6.none();
8109
+ }
8110
  };
8111
  var adjustUp = function (bridge, element, guessBox, original, caret) {
8112
  var higherCaret = Carets.moveUp(caret, JUMP_SIZE);
8113
+ if (Math.abs(guessBox.top() - original.top()) < 1) {
8114
+ return adt$6.retry(higherCaret);
8115
+ } else if (guessBox.bottom() < caret.top()) {
8116
+ return adt$6.retry(higherCaret);
8117
+ } else if (guessBox.bottom() === caret.top()) {
8118
+ return adt$6.retry(Carets.moveUp(caret, 1));
8119
+ } else {
8120
+ return inOutsideBlock(bridge, element, caret) ? adt$6.retry(Carets.translate(higherCaret, JUMP_SIZE, 0)) : adt$6.none();
8121
+ }
8122
  };
8123
  var upMovement = {
8124
  point: Carets.getTop,
8141
  return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);
8142
  };
8143
  var adjustTil = function (bridge, movement, original, caret, numRetries) {
8144
+ if (numRetries === 0) {
8145
  return Option.some(caret);
8146
+ }
8147
+ if (isAtTable(bridge, caret.left(), movement.point(caret))) {
8148
  return adjustForTable(bridge, movement, original, caret, numRetries - 1);
8149
+ }
8150
  return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {
8151
+ return guess.start().fold(Option.none, function (element) {
8152
+ return Rectangles.getEntireBox(bridge, element).bind(function (guessBox) {
8153
  return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {
8154
  return adjustTil(bridge, movement, original, newCaret, numRetries - 1);
8155
  });
8166
  return bridge.situsFromPoint(caret.left(), caret.top() - JUMP_SIZE);
8167
  };
8168
  var checkScroll = function (movement, adjusted, bridge) {
8169
+ if (movement.point(adjusted) > bridge.getInnerHeight()) {
8170
  return Option.some(movement.point(adjusted) - bridge.getInnerHeight());
8171
+ } else if (movement.point(adjusted) < 0) {
8172
  return Option.some(-movement.point(adjusted));
8173
+ } else {
8174
  return Option.none();
8175
+ }
8176
  };
8177
  var retry = function (movement, bridge, caret) {
8178
  var moved = movement.move(caret, JUMP_SIZE);
8192
  getJumpSize: constant(JUMP_SIZE)
8193
  };
8194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8195
  var MAX_RETRIES = 20;
8196
  var platform$1 = PlatformDetection$1.detect();
8197
  var findSpot = function (bridge, isRoot, direction) {
8206
  });
8207
  };
8208
  var scan = function (bridge, isRoot, element, offset, direction, numRetries) {
8209
+ if (numRetries === 0) {
8210
  return Option.none();
8211
+ }
8212
  return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {
8213
  var range = bridge.fromSitus(situs);
8214
  var analysis = BeforeAfter.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);
8217
  }, function () {
8218
  return Option.some(situs);
8219
  }, function (cell) {
8220
+ if (eq(element, cell) && offset === 0) {
8221
  return tryAgain(bridge, element, offset, Carets.moveUp, direction);
8222
+ } else {
8223
  return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);
8224
+ }
8225
  }, function (cell) {
8226
+ if (eq(element, cell) && offset === getEnd(cell)) {
8227
  return tryAgain(bridge, element, offset, Carets.moveDown, direction);
8228
+ } else {
8229
  return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);
8230
+ }
8231
  });
8232
  });
8233
  };
8237
  });
8238
  };
8239
  var tryAt = function (bridge, direction, box) {
8240
+ if (platform$1.browser.isChrome() || platform$1.browser.isSafari() || platform$1.browser.isFirefox() || platform$1.browser.isEdge()) {
8241
  return direction.otherRetry(bridge, box);
8242
+ } else if (platform$1.browser.isIE()) {
8243
  return direction.ieRetry(bridge, box);
8244
+ } else {
8245
  return Option.none();
8246
+ }
8247
  };
8248
  var tryCursor = function (bridge, isRoot, element, offset, direction) {
8249
  return Rectangles.getBoxAt(bridge, element, offset).bind(function (box) {
8257
  };
8258
  var TableKeys = { handle: handle$2 };
8259
 
 
 
 
 
8260
  var detection = PlatformDetection$1.detect();
8261
  var inSameTable = function (elem, table) {
8262
  return ancestor$2(elem, function (e) {
8268
  var simulate = function (bridge, isRoot, direction, initial, anchor) {
8269
  return closest$1(initial, 'td,th', isRoot).bind(function (start) {
8270
  return closest$1(start, 'table', isRoot).bind(function (table) {
8271
+ if (!inSameTable(anchor, table)) {
8272
  return Option.none();
8273
+ }
8274
  return TableKeys.handle(bridge, isRoot, direction).bind(function (range) {
8275
  return closest$1(range.finish(), 'td,th', isRoot).map(function (finish) {
8276
  return {
8290
  return precheck(initial, isRoot).orThunk(function () {
8291
  return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {
8292
  var range = info.range();
8293
+ return Response.create(Option.some(Util.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);
8294
  });
8295
  });
8296
  }
8304
  return last$1(element).isSome();
8305
  }, isRoot).map(function (last) {
8306
  var lastOffset = getEnd(last);
8307
+ return Response.create(Option.some(Util.makeSitus(last, lastOffset, last, lastOffset)), true);
8308
  });
8309
  } else {
8310
  return Option.none();
8320
  return seekRight$1(table, function (element) {
8321
  return first(element).isSome();
8322
  }, isRoot).map(function (first) {
8323
+ return Response.create(Option.some(Util.makeSitus(first, 0, first, 0)), true);
8324
  });
8325
  } else {
8326
  return Option.none();
8366
  });
8367
  });
8368
  };
8369
+ var mouseup = function (_event) {
8370
  cursor.each(clearState);
8371
  };
8372
  return {
8376
  };
8377
  }
8378
 
8379
+ var down = {
8380
+ traverse: nextSibling,
8381
+ gather: after$5,
8382
+ relative: Situ.before,
8383
+ otherRetry: Retries.tryDown,
8384
+ ieRetry: Retries.ieTryDown,
8385
+ failure: BeforeAfter.failedDown
8386
+ };
8387
+ var up = {
8388
+ traverse: prevSibling,
8389
+ gather: before$4,
8390
+ relative: Situ.before,
8391
+ otherRetry: Retries.tryUp,
8392
+ ieRetry: Retries.ieTryUp,
8393
+ failure: BeforeAfter.failedUp
8394
+ };
8395
  var KeyDirection = {
8396
+ down: down,
8397
+ up: up
8398
+ };
8399
+
8400
+ var isKey = function (key) {
8401
+ return function (keycode) {
8402
+ return keycode === key;
8403
+ };
8404
+ };
8405
+ var isUp = isKey(38);
8406
+ var isDown = isKey(40);
8407
+ var isNavigation = function (keycode) {
8408
+ return keycode >= 37 && keycode <= 40;
8409
+ };
8410
+ var SelectionKeys = {
8411
+ ltr: {
8412
+ isBackward: isKey(37),
8413
+ isForward: isKey(39)
8414
  },
8415
+ rtl: {
8416
+ isBackward: isKey(39),
8417
+ isForward: isKey(37)
8418
+ },
8419
+ isUp: isUp,
8420
+ isDown: isDown,
8421
+ isNavigation: isNavigation
8422
+ };
8423
+
8424
+ var toRaw = function (sr) {
8425
+ return {
8426
+ left: sr.left(),
8427
+ top: sr.top(),
8428
+ right: sr.right(),
8429
+ bottom: sr.bottom(),
8430
+ width: sr.width(),
8431
+ height: sr.height()
8432
+ };
8433
+ };
8434
+ var Rect = { toRaw: toRaw };
8435
+
8436
+ var isSafari = PlatformDetection$1.detect().browser.isSafari();
8437
+ var get$a = function (_DOC) {
8438
+ var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;
8439
+ var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
8440
+ var y = doc.body.scrollTop || doc.documentElement.scrollTop;
8441
+ return Position(x, y);
8442
+ };
8443
+ var by = function (x, y, _DOC) {
8444
+ var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document;
8445
+ var win = doc.defaultView;
8446
+ win.scrollBy(x, y);
8447
+ };
8448
+
8449
+ var WindowBridge = function (win) {
8450
+ var elementFromPoint = function (x, y) {
8451
+ return Element.fromPoint(Element.fromDom(win.document), x, y);
8452
+ };
8453
+ var getRect = function (element) {
8454
+ return element.dom().getBoundingClientRect();
8455
+ };
8456
+ var getRangedRect = function (start, soffset, finish, foffset) {
8457
+ var sel = Selection.exact(start, soffset, finish, foffset);
8458
+ return getFirstRect$1(win, sel).map(Rect.toRaw);
8459
+ };
8460
+ var getSelection = function () {
8461
+ return get$9(win).map(function (exactAdt) {
8462
+ return Util.convertToRange(win, exactAdt);
8463
+ });
8464
+ };
8465
+ var fromSitus = function (situs) {
8466
+ var relative = Selection.relative(situs.start(), situs.finish());
8467
+ return Util.convertToRange(win, relative);
8468
+ };
8469
+ var situsFromPoint = function (x, y) {
8470
+ return getAtPoint(win, x, y).map(function (exact) {
8471
+ return Situs.create(exact.start(), exact.soffset(), exact.finish(), exact.foffset());
8472
+ });
8473
+ };
8474
+ var clearSelection = function () {
8475
+ clear(win);
8476
+ };
8477
+ var selectContents = function (element) {
8478
+ setToElement(win, element);
8479
+ };
8480
+ var setSelection = function (sel) {
8481
+ setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());
8482
+ };
8483
+ var setRelativeSelection = function (start, finish) {
8484
+ setRelative(win, start, finish);
8485
+ };
8486
+ var getInnerHeight = function () {
8487
+ return win.innerHeight;
8488
+ };
8489
+ var getScrollY = function () {
8490
+ var pos = get$a(Element.fromDom(win.document));
8491
+ return pos.top();
8492
+ };
8493
+ var scrollBy = function (x, y) {
8494
+ by(x, y, Element.fromDom(win.document));
8495
+ };
8496
+ return {
8497
+ elementFromPoint: elementFromPoint,
8498
+ getRect: getRect,
8499
+ getRangedRect: getRangedRect,
8500
+ getSelection: getSelection,
8501
+ fromSitus: fromSitus,
8502
+ situsFromPoint: situsFromPoint,
8503
+ clearSelection: clearSelection,
8504
+ setSelection: setSelection,
8505
+ setRelativeSelection: setRelativeSelection,
8506
+ selectContents: selectContents,
8507
+ getInnerHeight: getInnerHeight,
8508
+ getScrollY: getScrollY,
8509
+ scrollBy: scrollBy
8510
+ };
8511
  };
8512
 
8513
  var rc = Immutable('rows', 'cols');
8527
  return Option.none();
8528
  };
8529
  var keydown = function (event, start, soffset, finish, foffset, direction) {
8530
+ var realEvent = event.raw();
8531
+ var keycode = realEvent.which;
8532
+ var shiftKey = realEvent.shiftKey === true;
8533
  var handler = CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {
8534
  if (SelectionKeys.isDown(keycode) && shiftKey) {
8535
  return curry(VerticalMovement.select, bridge, container, isRoot, KeyDirection.down, finish, start, annotations.selectRange);
8553
  var relative = SelectionKeys.isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;
8554
  bridge.setRelativeSelection(Situ.on(edges.first(), 0), relative(edges.table()));
8555
  annotations.clear(container);
8556
+ return Response.create(Option.none(), true);
8557
  });
8558
  }, function (_) {
8559
+ return Option.some(Response.create(Option.none(), true));
8560
  });
8561
  };
8562
  };
8563
+ if (SelectionKeys.isDown(keycode) && shiftKey) {
8564
  return update([rc(+1, 0)]);
8565
+ } else if (SelectionKeys.isUp(keycode) && shiftKey) {
8566
  return update([rc(-1, 0)]);
8567
+ } else if (direction.isBackward(keycode) && shiftKey) {
8568
  return update([
8569
  rc(0, -1),
8570
  rc(-1, 0)
8571
  ]);
8572
+ } else if (direction.isForward(keycode) && shiftKey) {
8573
  return update([
8574
  rc(0, +1),
8575
  rc(+1, 0)
8576
  ]);
8577
+ } else if (SelectionKeys.isNavigation(keycode) && shiftKey === false) {
8578
  return clearToNavigate;
8579
+ } else {
8580
  return Option.none;
8581
+ }
8582
  });
8583
  return handler();
8584
  };
8585
  var keyup = function (event, start, soffset, finish, foffset) {
8586
  return CellSelection.retrieve(container, annotations.selectedSelector()).fold(function () {
8587
+ var realEvent = event.raw();
8588
+ var keycode = realEvent.which;
8589
+ var shiftKey = realEvent.shiftKey === true;
8590
+ if (shiftKey === false) {
8591
  return Option.none();
8592
+ }
8593
+ if (SelectionKeys.isNavigation(keycode)) {
8594
  return KeySelection.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);
8595
+ } else {
8596
  return Option.none();
8597
+ }
8598
  }, Option.none);
8599
  };
8600
  return {
8723
  event.kill();
8724
  }
8725
  response.selection().each(function (ns) {
8726
+ var relative = Selection.relative(ns.start(), ns.finish());
8727
+ var rng = asLtrRange(win, relative);
8728
  editor.selection.setRng(rng);
8729
  });
8730
  };
mce/table/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(m){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),y=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},x=function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,e))}},C=function(e){return function(){return e}},o=function(e){return e};function b(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=o.concat(e);return r.apply(null,n)}}var t,n,r,i,u,g=function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,e)}},c=function(e){return e()},a=C(!1),l=C(!0),f=a,s=l,d=function(){return h},h=(i={fold:function(e,t){return e()},is:f,isSome:f,isNone:s,getOr:r=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:r,orThunk:n,map:d,ap:d,each:function(){},bind:d,flatten:d,exists:f,forall:s,filter:d,equals:t=function(e){return e.isNone()},equals_:t,toArray:function(){return[]},toString:C("none()")},Object.freeze&&Object.freeze(i),i),p=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:s,isNone:f,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return p(e(n))},ap:function(e){return e.fold(d,function(e){return p(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:h},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(f,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},S={some:p,none:d,from:function(e){return null===e||e===undefined?h:p(e)}},v=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},w=v("string"),R=v("array"),T=v("boolean"),D=v("function"),O=v("number"),N=(u=Array.prototype.indexOf)===undefined?function(e,t){return j(e,t)}:function(e,t){return u.call(e,t)},E=function(e,t){return-1<N(e,t)},A=function(e,t){return L(e,t).isSome()},k=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},P=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},I=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},B=function(e,t){if(0===e.length)return[];for(var n=t(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var a=e[i],c=t(a);c!==n&&(r.push(o),o=[]),n=c,o.push(a)}return 0!==o.length&&r.push(o),r},W=function(e,t,n){return function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)}(e,function(e){n=t(n,e)}),n},M=function(e,t,n){return P(e,function(e){n=t(n,e)}),n},_=function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return S.some(o)}return S.none()},L=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return S.some(n);return S.none()},j=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},F=Array.prototype.push,z=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);F.apply(t,e[n])}return t},H=function(e,t){var n=k(e,t);return z(n)},U=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},q=Array.prototype.slice,V=function(e){var t=q.call(e,0);return t.reverse(),t},G=function(e,t){var n=q.call(e,0);return n.sort(t),n},Y=(D(Array.from)&&Array.from,Object.keys),X=function(e,t){for(var n=Y(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},K=function(e,r){return J(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},J=function(r,o){var i={};return X(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},$=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return P(t,function(e,t){r[e]=C(n[t])}),r}},Q=function(e){return e.slice(0).sort()},Z=function(e,t){throw new Error("All required keys ("+Q(e).join(", ")+") were not specified. Specified keys were: "+Q(t).join(", ")+".")},ee=function(e){throw new Error("Unsupported keys for object: "+Q(e).join(", "))},te=function(t,e){if(!R(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");P(e,function(e){if(!w(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},ne=function(e){var n=Q(e);_(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})},re=function(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return te("required",o),te("optional",i),ne(u),function(t){var n=Y(t);U(o,function(e){return E(n,e)})||Z(o,n);var e=I(n,function(e){return!E(u,e)});0<e.length&&ee(e);var r={};return P(o,function(e){r[e]=C(t[e])}),P(i,function(e){r[e]=C(Object.prototype.hasOwnProperty.call(t,e)?S.some(t[e]):S.none())}),r}},oe=(m.Node.ATTRIBUTE_NODE,m.Node.CDATA_SECTION_NODE,m.Node.COMMENT_NODE),ie=m.Node.DOCUMENT_NODE,ue=(m.Node.DOCUMENT_TYPE_NODE,m.Node.DOCUMENT_FRAGMENT_NODE,m.Node.ELEMENT_NODE),ae=m.Node.TEXT_NODE,ce=(m.Node.PROCESSING_INSTRUCTION_NODE,m.Node.ENTITY_REFERENCE_NODE,m.Node.ENTITY_NODE,m.Node.NOTATION_NODE,function(e){return e.dom().nodeName.toLowerCase()}),le=function(e){return e.dom().nodeType},fe=function(t){return function(e){return le(e)===t}},se=function(e){return le(e)===oe||"#comment"===ce(e)},de=fe(ue),me=fe(ae),ge=fe(ie),he=function(e,t,n){if(!(w(n)||T(n)||O(n)))throw m.console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},pe=function(e,t,n){he(e.dom(),t,n)},ve=function(e,t){var n=e.dom();X(t,function(e,t){he(n,t,e)})},be=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},we=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},ye=function(e,t){e.dom().removeAttribute(t)},xe=function(e){return M(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},Ce=function(e,t){return-1!==e.indexOf(t)},Se=function(e){return e.style!==undefined},Re=function(n){var r,o=!1;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o||(o=!0,r=n.apply(null,e)),r}},Te=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:C(e)}},De={fromHtml:function(e,t){var n=(t||m.document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw m.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return Te(n.childNodes[0])},fromTag:function(e,t){var n=(t||m.document).createElement(e);return Te(n)},fromText:function(e,t){var n=(t||m.document).createTextNode(e);return Te(n)},fromDom:Te,fromPoint:function(e,t,n){var r=e.dom();return S.from(r.elementFromPoint(t,n)).map(Te)}},Oe=function(e){var t=me(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)},Ne=Re(function(){return Ee(De.fromDom(m.document))}),Ee=function(e){var t=e.dom().body;if(null===t||t===undefined)throw new Error("Body is not available yet");return De.fromDom(t)},Ae=function(e,t,n){if(!w(n))throw m.console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);Se(e)&&e.style.setProperty(t,n)},ke=function(e,t,n){var r=e.dom();Ae(r,t,n)},Pe=function(e,t){var n=e.dom();X(t,function(e,t){Ae(n,t,e)})},Ie=function(e,t){var n=e.dom(),r=m.window.getComputedStyle(n).getPropertyValue(t),o=""!==r||Oe(e)?r:Be(n,t);return null===o?undefined:o},Be=function(e,t){return Se(e)?e.style.getPropertyValue(t):""},We=function(e,t){var n=e.dom(),r=Be(n,t);return S.from(r).filter(function(e){return 0<e.length})},Me=function(e,t){var n,r,o=e.dom();r=t,Se(n=o)&&n.style.removeProperty(r),we(e,"style")&&""===be(e,"style").replace(/^\s+|\s+$/g,"")&&ye(e,"style")},_e="undefined"!=typeof m.window?m.window:Function("return this;")(),Le=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:_e,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},je=function(e,t){var n=Le(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n},Fe=function(){return je("Node")},ze=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},He=function(e,t){return ze(e,t,Fe().DOCUMENT_POSITION_CONTAINED_BY)},Ue=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return Ve(r(1),r(2))},qe=function(){return Ve(0,0)},Ve=function(e,t){return{major:e,minor:t}},Ge={nu:Ve,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?qe():Ue(e,n)},unknown:qe},Ye="Firefox",Xe=function(e,t){return function(){return t===e}},Ke=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Xe("Edge",t),isChrome:Xe("Chrome",t),isIE:Xe("IE",t),isOpera:Xe("Opera",t),isFirefox:Xe(Ye,t),isSafari:Xe("Safari",t)}},Je={unknown:function(){return Ke({current:undefined,version:Ge.unknown()})},nu:Ke,edge:C("Edge"),chrome:C("Chrome"),ie:C("IE"),opera:C("Opera"),firefox:C(Ye),safari:C("Safari")},$e="Windows",Qe="Android",Ze="Solaris",et="FreeBSD",tt=function(e,t){return function(){return t===e}},nt=function(e){var t=e.current;return{current:t,version:e.version,isWindows:tt($e,t),isiOS:tt("iOS",t),isAndroid:tt(Qe,t),isOSX:tt("OSX",t),isLinux:tt("Linux",t),isSolaris:tt(Ze,t),isFreeBSD:tt(et,t)}},rt={unknown:function(){return nt({current:undefined,version:Ge.unknown()})},nu:nt,windows:C($e),ios:C("iOS"),android:C(Qe),linux:C("Linux"),osx:C("OSX"),solaris:C(Ze),freebsd:C(et)},ot=function(e,t){var n=String(t).toLowerCase();return _(e,function(e){return e.search(n)})},it=function(e,n){return ot(e,n).map(function(e){var t=Ge.detect(e.versionRegexes,n);return{current:e.name,version:t}})},ut=function(e,n){return ot(e,n).map(function(e){var t=Ge.detect(e.versionRegexes,n);return{current:e.name,version:t}})},at=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ct=function(t){return function(e){return Ce(e,t)}},lt=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return Ce(e,"edge/")&&Ce(e,"chrome")&&Ce(e,"safari")&&Ce(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,at],search:function(e){return Ce(e,"chrome")&&!Ce(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return Ce(e,"msie")||Ce(e,"trident")}},{name:"Opera",versionRegexes:[at,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:ct("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:ct("firefox")},{name:"Safari",versionRegexes:[at,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(Ce(e,"safari")||Ce(e,"mobile/"))&&Ce(e,"applewebkit")}}],ft=[{name:"Windows",search:ct("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return Ce(e,"iphone")||Ce(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:ct("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:ct("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:ct("linux"),versionRegexes:[]},{name:"Solaris",search:ct("sunos"),versionRegexes:[]},{name:"FreeBSD",search:ct("freebsd"),versionRegexes:[]}],st={browsers:C(lt),oses:C(ft)},dt=function(e){var t,n,r,o,i,u,a,c,l,f,s,d=st.browsers(),m=st.oses(),g=it(d,e).fold(Je.unknown,Je.nu),h=ut(m,e).fold(rt.unknown,rt.nu);return{browser:g,os:h,deviceType:(n=g,r=e,o=(t=h).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,u=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,c=o||u||a&&!0===/mobile/i.test(r),l=t.isiOS()||t.isAndroid(),f=l&&!c,s=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:C(o),isiPhone:C(i),isTablet:C(c),isPhone:C(f),isTouch:C(l),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:C(s)})}},mt={detect:Re(function(){var e=m.navigator.userAgent;return dt(e)})},gt=ue,ht=ie,pt=function(e,t){var n=e.dom();if(n.nodeType!==gt)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},vt=function(e){return e.nodeType!==gt&&e.nodeType!==ht||0===e.childElementCount},bt=function(e,t){return e.dom()===t.dom()},wt=mt.detect().browser.isIE()?function(e,t){return He(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},yt=pt,xt=function(e){return De.fromDom(e.dom().ownerDocument)},Ct=function(e){var t=e.dom();return S.from(t.parentNode).map(De.fromDom)},St=function(e,t){for(var n=D(t)?t:C(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=De.fromDom(i);if(o.push(u),!0===n(u))break;r=i}return o},Rt=function(e){var t=e.dom();return S.from(t.previousSibling).map(De.fromDom)},Tt=function(e){var t=e.dom();return S.from(t.nextSibling).map(De.fromDom)},Dt=function(e){var t=e.dom();return k(t.childNodes,De.fromDom)},Ot=function(e,t){var n=e.dom().childNodes;return S.from(n[t]).map(De.fromDom)},Nt=($("element","offset"),function(t,n){Ct(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})}),Et=function(e,t){Tt(e).fold(function(){Ct(e).each(function(e){kt(e,t)})},function(e){Nt(e,t)})},At=function(t,n){Ot(t,0).fold(function(){kt(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},kt=function(e,t){e.dom().appendChild(t.dom())},Pt=function(e,t){Nt(e,t),kt(t,e)},It=function(r,o){P(o,function(e,t){var n=0===t?r:o[t-1];Et(n,e)})},Bt=function(t,e){P(e,function(e){kt(t,e)})},Wt=function(e){e.dom().textContent="",P(Dt(e),function(e){Mt(e)})},Mt=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},_t=function(e){var t,n=Dt(e);0<n.length&&(t=e,P(n,function(e){Nt(t,e)})),Mt(e)},Lt=$("width","height"),jt=$("rows","columns"),Ft=$("row","column"),zt=$("x","y"),Ht=$("element","rowspan","colspan"),Ut=$("element","rowspan","colspan","isNew"),qt={dimensions:Lt,grid:jt,address:Ft,coords:zt,extended:$("element","rowspan","colspan","row","column"),detail:Ht,detailnew:Ut,rowdata:$("element","cells","section"),elementnew:$("element","isNew"),rowdatanew:$("element","cells","section","isNew"),rowcells:$("cells","section"),rowdetails:$("details","section"),bounds:$("startRow","startCol","finishRow","finishCol")},Vt=function(e,t){var n=[];return P(Dt(e),function(e){t(e)&&(n=n.concat([e])),n=n.concat(Vt(e,t))}),n},Gt=function(e,t,n){return r=function(e){return pt(e,t)},I(St(e,n),r);var r},Yt=function(e,t){return n=function(e){return pt(e,t)},I(Dt(e),n);var n},Xt=function(e,t){return n=t,o=(r=e)===undefined?m.document:r.dom(),vt(o)?[]:k(o.querySelectorAll(n),De.fromDom);var n,r,o};function Kt(e,t,n,r,o){return e(n,r)?S.some(n):D(o)&&o(n)?S.none():t(n,r,o)}var Jt,$t,Qt,Zt,en,tn=function(e,t,n){for(var r=e.dom(),o=D(n)?n:C(!1);r.parentNode;){r=r.parentNode;var i=De.fromDom(r);if(t(i))return S.some(i);if(o(i))break}return S.none()},nn=function(e,t,n){return tn(e,function(e){return pt(e,t)},n)},rn=function(e,t){return n=function(e){return pt(e,t)},_(e.dom().childNodes,x(n,De.fromDom)).map(De.fromDom);var n},on=function(e,t){return n=t,o=(r=e)===undefined?m.document:r.dom(),vt(o)?S.none():S.from(o.querySelector(n)).map(De.fromDom);var n,r,o},un=function(e,t,n){return Kt(pt,nn,e,t,n)},an=function(e,t,n){return H(Dt(e),function(e){return pt(e,t)?n(e)?[e]:[]:an(e,t,n)})},cn={firstLayer:function(e,t){return an(e,t,C(!0))},filterFirstLayer:an},ln=function(e,t,n){var r=n!==undefined?n:C(!1);return r(t)?S.none():E(e,ce(t))?S.some(t):nn(t,e.join(","),function(e){return pt(e,"table")||r(e)})},fn=function(t,e){return Ct(e).map(function(e){return Yt(e,t)})},sn=b(fn,"th,td"),dn=b(fn,"tr"),mn=function(e,t){return parseInt(be(e,t),10)},gn={cell:function(e,t){return ln(["td","th"],e,t)},firstCell:function(e){return on(e,"th,td")},cells:function(e){return cn.firstLayer(e,"th,td")},neighbourCells:sn,table:function(e,t){return un(e,"table",t)},row:function(e,t){return ln(["tr"],e,t)},rows:function(e){return cn.firstLayer(e,"tr")},notCell:function(e,t){return ln(["caption","tr","tbody","tfoot","thead"],e,t)},neighbourRows:dn,attr:mn,grid:function(e,t,n){var r=mn(e,t),o=mn(e,n);return qt.grid(r,o)}},hn=function(e){var t=gn.rows(e);return k(t,function(e){var t=e,n=Ct(t).map(function(e){var t=ce(e);return"tfoot"===t||"thead"===t||"tbody"===t?t:"tbody"}).getOr("tbody"),r=k(gn.cells(e),function(e){var t=we(e,"rowspan")?parseInt(be(e,"rowspan"),10):1,n=we(e,"colspan")?parseInt(be(e,"colspan"),10):1;return qt.detail(e,t,n)});return qt.rowdata(t,r,n)})},pn=function(e,n){return k(e,function(e){var t=k(gn.cells(e),function(e){var t=we(e,"rowspan")?parseInt(be(e,"rowspan"),10):1,n=we(e,"colspan")?parseInt(be(e,"colspan"),10):1;return qt.detail(e,t,n)});return qt.rowdata(e,t,n.section())})},vn=function(e,t){return e+","+t},bn=function(e,t){var n=H(e.all(),function(e){return e.cells()});return I(n,t)},wn={generate:function(e){var f={},t=[],n=e.length,s=0;P(e,function(e,c){var l=[];P(e.cells(),function(e,t){for(var n=0;f[vn(c,n)]!==undefined;)n++;for(var r=qt.extended(e.element(),e.rowspan(),e.colspan(),c,n),o=0;o<e.colspan();o++)for(var i=0;i<e.rowspan();i++){var u=n+o,a=vn(c+i,u);f[a]=r,s=Math.max(s,u+1)}l.push(r)}),t.push(qt.rowdata(e.element(),l,e.section()))});var r=qt.grid(n,s);return{grid:C(r),access:C(f),all:C(t)}},getAt:function(e,t,n){var r=e.access()[vn(t,n)];return r!==undefined?S.some(r):S.none()},findItem:function(e,t,n){var r=bn(e,function(e){return n(t,e.element())});return 0<r.length?S.some(r[0]):S.none()},filterItems:bn,justCells:function(e){var t=k(e.all(),function(e){return e.cells()});return z(t)}},yn=$("minRow","minCol","maxRow","maxCol"),xn=function(e,t){var n,i,r,u,a,c,l,o,f,s,d=function(e){return pt(e.element(),t)},m=hn(e),g=wn.generate(m),h=(i=d,r=(n=g).grid().columns(),u=n.grid().rows(),a=r,l=c=0,X(n.access(),function(e){if(i(e)){var t=e.row(),n=t+e.rowspan()-1,r=e.column(),o=r+e.colspan()-1;t<u?u=t:c<n&&(c=n),r<a?a=r:l<o&&(l=o)}}),yn(u,a,c,l)),p="th:not("+t+"),td:not("+t+")",v=cn.filterFirstLayer(e,"th,td",function(e){return pt(e,p)});return P(v,Mt),function(e,t,n,r){for(var o,i,u,a=t.grid().columns(),c=t.grid().rows(),l=0;l<c;l++)for(var f=!1,s=0;s<a;s++)l<n.minRow()||l>n.maxRow()||s<n.minCol()||s>n.maxCol()||(wn.getAt(t,l,s).filter(r).isNone()?(o=f,i=e[l].element(),u=De.fromTag("td"),kt(u,De.fromTag("br")),(o?kt:At)(i,u)):f=!0)}(m,g,h,d),o=e,f=h,s=I(cn.firstLayer(o,"tr"),function(e){return 0===e.dom().childElementCount}),P(s,Mt),f.minCol()!==f.maxCol()&&f.minRow()!==f.maxRow()||P(cn.firstLayer(o,"th,td"),function(e){ye(e,"rowspan"),ye(e,"colspan")}),ye(o,"width"),ye(o,"height"),Me(o,"width"),Me(o,"height"),e},Cn=(Jt=me,$t="text",Qt=function(e){return Jt(e)?S.from(e.dom().nodeValue):S.none()},Zt=mt.detect().browser,{get:function(e){if(!Jt(e))throw new Error("Can only get "+$t+" value of a "+$t+" node");return en(e).getOr("")},getOption:en=Zt.isIE()&&10===Zt.version.major?function(e){try{return Qt(e)}catch(t){return S.none()}}:Qt,set:function(e,t){if(!Jt(e))throw new Error("Can only set raw "+$t+" value of a "+$t+" node");e.dom().nodeValue=t}}),Sn=function(e){return Cn.get(e)},Rn=function(e){return Cn.getOption(e)},Tn=function(e,t){Cn.set(e,t)},Dn=function(e){return"img"===ce(e)?1:Rn(e).fold(function(){return Dt(e).length},function(e){return e.length})},On=["img","br"],Nn=function(e){return Rn(e).filter(function(e){return 0!==e.trim().length||-1<e.indexOf("\xa0")}).isSome()||E(On,ce(e))},En=function(e){return r=Nn,(o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(De.fromDom(e.childNodes[t])))return S.some(De.fromDom(e.childNodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return S.none()})(e.dom());var r,o},An=function(e){return kn(e,Nn)},kn=function(e,i){var u=function(e){for(var t=Dt(e),n=t.length-1;0<=n;n--){var r=t[n];if(i(r))return S.some(r);var o=u(r);if(o.isSome())return o}return S.none()};return u(e)},Pn=function(e,t){return De.fromDom(e.dom().cloneNode(t))},In=function(e){return Pn(e,!1)},Bn=function(e){return Pn(e,!0)},Wn=function(e,t){var n,r,o,i,u=(n=e,r=t,o=De.fromTag(r),i=xe(n),ve(o,i),o),a=Dt(Bn(e));return Bt(u,a),u},Mn=function(){var e=De.fromTag("td");return kt(e,De.fromTag("br")),e},_n=function(e,t,n){var r=Wn(e,t);return X(n,function(e,t){null===e?ye(r,t):pe(r,t,e)}),r},Ln=function(e){return e},jn=function(e){return function(){return De.fromTag("tr",e.dom())}},Fn=function(d,e,m){return{row:jn(e),cell:function(e){var r,o,i,t,n,u,a,c=xt(e.element()),l=De.fromTag(ce(e.element()),c.dom()),f=m.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),s=0<f.length?(r=e.element(),o=l,i=f,En(r).map(function(e){var t=i.join(","),n=Gt(e,t,function(e){return bt(e,r)});return W(n,function(e,t){var n=In(t);return ye(n,"contenteditable"),kt(e,n),n},o)}).getOr(o)):l;return kt(s,De.fromTag("br")),t=e.element(),n=l,u=t.dom(),a=n.dom(),Se(u)&&Se(a)&&(a.style.cssText=u.style.cssText),Me(l,"height"),1!==e.colspan()&&Me(e.element(),"width"),d(e.element(),l),l},replace:_n,gap:Mn}},zn=function(e){return{row:jn(e),cell:Mn,replace:Ln,gap:Mn}},Hn=["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"];function Un(){return{up:C({selector:nn,closest:un,predicate:tn,all:St}),down:C({selector:Xt,predicate:Vt}),styles:C({get:Ie,getRaw:We,set:ke,remove:Me}),attrs:C({get:be,set:pe,remove:ye,copyTo:function(e,t){var n=xe(e);ve(t,n)}}),insert:C({before:Nt,after:Et,afterAll:It,append:kt,appendAll:Bt,prepend:At,wrap:Pt}),remove:C({unwrap:_t,remove:Mt}),create:C({nu:De.fromTag,clone:function(e){return De.fromDom(e.dom().cloneNode(!1))},text:De.fromText}),query:C({comparePosition:function(e,t){return e.dom().compareDocumentPosition(t.dom())},prevSibling:Rt,nextSibling:Tt}),property:C({children:Dt,name:ce,parent:Ct,document:function(e){return e.dom().ownerDocument},isText:me,isComment:se,isElement:de,getText:Sn,setText:Tn,isBoundary:function(e){return!!de(e)&&("body"===ce(e)||E(Hn,ce(e)))},isEmptyTag:function(e){return!!de(e)&&E(["br","img","hr","input"],ce(e))}}),eq:bt,is:yt}}var qn=$("left","right"),Vn=function(e,t,n){var r=e.property().children(t);return L(r,b(e.eq,n)).map(function(e){return{before:C(r.slice(0,e)),after:C(r.slice(e+1))}})},Gn=function(n,r,o){return Vn(n,r,o).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.before().concat([o])),n.insert().appendAll(r,e.after()),n.insert().before(r,t),qn(t,r)})},Yn=function(n,r,e){return Vn(n,r,e).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.after()),n.insert().after(r,t),qn(r,t)})},Xn=function(i,e,u,a){var r=$("first","second","splits"),c=function(e,t,o){var n=r(e,S.none(),o);return u(e)?r(e,t,o):i.property().parent(e).bind(function(r){return a(i,r,e).map(function(e){var t=[{first:e.left,second:e.right}],n=u(r)?r:e.left();return c(n,S.some(e.right()),o.concat(t))}).getOr(n)})};return c(e,S.none(),[])},Kn=function(r,o,e,t){var n=o(r,e);return W(t,function(e,t){var n=o(r,t);return Jn(r,e,n)},n)},Jn=function(t,e,n){return e.bind(function(e){return n.filter(b(t.eq,e))})},$n=function(e,t,n){return 0<n.length?Kn(e,t,(r=n)[0],r.slice(1)):S.none();var r},Qn=function(e,t){return b(e.eq,t)},Zn=function(t,e,n,r){var o=r!==undefined?r:C(!1),i=[e].concat(t.up().all(e)),u=[n].concat(t.up().all(n)),a=function(t){return L(t,o).fold(function(){return t},function(e){return t.slice(0,e+1)})},c=a(i),l=a(u),f=_(c,function(e){return A(l,Qn(t,e))});return{firstpath:C(c),secondpath:C(l),shared:C(f)}},er=function(t,e,n){var r=Zn(t,e,n);return r.shared().bind(function(e){return function(o,i,e,t){var u=o.property().children(i);if(o.eq(i,e[0]))return S.some([e[0]]);if(o.eq(i,t[0]))return S.some([t[0]]);var n=function(e){var t=V(e),n=L(t,Qn(o,i)).getOr(-1),r=n<t.length-1?t[n+1]:t[n];return L(u,Qn(o,r))},r=n(e),a=n(t);return r.bind(function(r){return a.map(function(e){var t=Math.min(r,e),n=Math.max(r,e);return u.slice(t,n+1)})})}(t,e,r.firstpath(),r.secondpath())})},tr=Zn,nr=function(e,t,n){return $n(e,t,n)},rr=function(e,t,n){return er(e,t,n)},or=function(e,t,n,r){return tr(e,t,n,r)},ir=function(e,t,n){return Gn(e,t,n)},ur=function(e,t,n){return Yn(e,t,n)},ar=function(e,t,n,r){return Xn(e,t,n,r)},cr=Un(),lr={sharedOne:function(n,e){return nr(cr,function(e,t){return n(t)},e)},subset:function(e,t){return rr(cr,e,t)},ancestors:function(e,t,n){return or(cr,e,t,n)},breakToLeft:function(e,t){return ir(cr,e,t)},breakToRight:function(e,t){return ur(cr,e,t)},breakPath:function(e,t,r){return ar(cr,e,t,function(e,t,n){return r(t,n)})}},fr=function(e,t){return t.column()>=e.startCol()&&t.column()+t.colspan()-1<=e.finishCol()&&t.row()>=e.startRow()&&t.row()+t.rowspan()-1<=e.finishRow()},sr=function(e,t){var n=t.column(),r=t.column()+t.colspan()-1,o=t.row(),i=t.row()+t.rowspan()-1;return n<=e.finishCol()&&r>=e.startCol()&&o<=e.finishRow()&&i>=e.startRow()},dr=function(e,t){for(var n=!0,r=b(fr,t),o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)n=n&&wn.getAt(e,o,i).exists(r);return n?S.some(t):S.none()},mr=function(e,t,n){var r=wn.findItem(e,t,bt),o=wn.findItem(e,n,bt);return r.bind(function(r){return o.map(function(e){return t=r,n=e,qt.bounds(Math.min(t.row(),n.row()),Math.min(t.column(),n.column()),Math.max(t.row()+t.rowspan()-1,n.row()+n.rowspan()-1),Math.max(t.column()+t.colspan()-1,n.column()+n.colspan()-1));var t,n})})},gr=mr,hr=function(t,e,n){return mr(t,e,n).bind(function(e){return dr(t,e)})},pr=function(r,e,o,i){return wn.findItem(r,e,bt).bind(function(e){var t=0<o?e.row()+e.rowspan()-1:e.row(),n=0<i?e.column()+e.colspan()-1:e.column();return wn.getAt(r,t+o,n+i).map(function(e){return e.element()})})},vr=function(n,e,t){return gr(n,e,t).map(function(e){var t=wn.filterItems(n,b(sr,e));return k(t,function(e){return e.element()})})},br=function(e,t){return wn.findItem(e,t,function(e,t){return wt(t,e)}).bind(function(e){return e.element()})},wr=function(e){var t=hn(e);return wn.generate(t)},yr=function(n,r,o){return gn.table(n).bind(function(e){var t=wr(e);return pr(t,n,r,o)})},xr=function(e,t,n){var r=wr(e);return vr(r,t,n)},Cr=function(e,t,n,r,o){var i=wr(e),u=bt(e,n)?t:br(i,t),a=bt(e,o)?r:br(i,r);return vr(i,u,a)},Sr=function(e,t,n){var r=wr(e);return hr(r,t,n)},Rr=function(e,t){return nn(e,"table")},Tr=re(["boxes","start","finish"],[]),Dr=function(a,c,r){var l=function(t){return function(e){return r(e)||bt(e,t)}};return bt(a,c)?S.some(Tr({boxes:S.some([a]),start:a,finish:c})):Rr(a).bind(function(u){return Rr(c).bind(function(i){if(bt(u,i))return S.some(Tr({boxes:xr(u,a,c),start:a,finish:c}));if(wt(u,i)){var e=0<(t=Gt(c,"td,th",l(u))).length?t[t.length-1]:c;return S.some(Tr({boxes:Cr(u,a,u,c,i),start:a,finish:e}))}if(wt(i,u)){var t,n=0<(t=Gt(a,"td,th",l(i))).length?t[t.length-1]:a;return S.some(Tr({boxes:Cr(i,a,u,c,i),start:a,finish:n}))}return lr.ancestors(a,c).shared().bind(function(e){return un(e,"table",r).bind(function(e){var t=Gt(c,"td,th",l(e)),n=0<t.length?t[t.length-1]:c,r=Gt(a,"td,th",l(e)),o=0<r.length?r[r.length-1]:a;return S.some(Tr({boxes:Cr(e,a,u,c,i),start:o,finish:n}))})})})})},Or=Dr,Nr=function(e,t){var n=Xt(e,t);return 0<n.length?S.some(n):S.none()},Er=function(e,t,n,r,o){return(i=e,u=o,_(i,function(e){return pt(e,u)})).bind(function(e){return yr(e,t,n).bind(function(e){return n=r,nn(t=e,"table").bind(function(e){return on(e,n).bind(function(e){return Dr(e,t).bind(function(t){return t.boxes().map(function(e){return{boxes:C(e),start:C(t.start()),finish:C(t.finish())}})})})});var t,n})});var i,u},Ar=function(e,t,r){return on(e,t).bind(function(n){return on(e,r).bind(function(t){return lr.sharedOne(Rr,[n,t]).map(function(e){return{first:C(n),last:C(t),table:C(e)}})})})},kr=function(e,t){return Nr(e,t)},Pr=function(o,e,t){return Ar(o,e,t).bind(function(n){var e=function(e){return bt(o,e)},t=nn(n.first(),"thead,tfoot,tbody,table",e),r=nn(n.last(),"thead,tfoot,tbody,table",e);return t.bind(function(t){return r.bind(function(e){return bt(t,e)?Sr(n.table(),n.first(),n.last()):S.none()})})})},Ir="data-mce-selected",Br="data-mce-first-selected",Wr="data-mce-last-selected",Mr={selected:C(Ir),selectedSelector:C("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:C("[data-mce-selected]"),firstSelected:C(Br),firstSelectedSelector:C("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:C(Wr),lastSelectedSelector:C("td[data-mce-last-selected],th[data-mce-last-selected]")},_r=function(u){if(!R(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var a=[],n={};return P(u,function(e,r){var t=Y(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!R(i))throw new Error("case arguments must be an array");a.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=Y(e);if(a.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+a.join(",")+"\nActual: "+t.join(","));if(!U(a,function(e){return E(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+a.join(", "));return e[o].apply(null,n)},log:function(e){m.console.log(e,{constructors:a,constructor:o,params:n})}}}}),n},Lr=_r([{none:[]},{multiple:["elements"]},{single:["selection"]}]),jr={cata:function(e,t,n,r){return e.fold(t,n,r)},none:Lr.none,multiple:Lr.multiple,single:Lr.single},Fr=function(e,t){return jr.cata(t.get(),C([]),o,C([e]))},zr=function(n,e){return jr.cata(e.get(),S.none,function(t,e){return 0===t.length?S.none():Pr(n,Mr.firstSelectedSelector(),Mr.lastSelectedSelector()).bind(function(e){return 1<t.length?S.some({bounds:C(e),cells:C(t)}):S.none()})},S.none)},Hr=function(e,t){var n=Fr(e,t);return 0<n.length&&U(n,function(e){return we(e,"rowspan")&&1<parseInt(be(e,"rowspan"),10)||we(e,"colspan")&&1<parseInt(be(e,"colspan"),10)})?S.some(n):S.none()},Ur=Fr,qr=function(e){return{element:C(e),mergable:S.none,unmergable:S.none,selection:C([e])}},Vr=$("element","clipboard","generators"),Gr={noMenu:qr,forMenu:function(e,t,n){return{element:C(n),mergable:C(zr(t,e)),unmergable:C(Hr(n,e)),selection:C(Ur(n,e))}},notCell:function(e){return qr(e)},paste:Vr,pasteRows:function(e,t,n,r,o){return{element:C(n),mergable:S.none,unmergable:S.none,selection:C(Ur(n,e)),clipboard:C(r),generators:C(o)}}},Yr=function(f,e,s,d){f.on("BeforeGetContent",function(n){!0===n.selection&&jr.cata(e.get(),y,function(e){var t;n.preventDefault(),(t=e,gn.table(t[0]).map(Bn).map(function(e){return[xn(e,Mr.attributeSelector())]})).each(function(e){var t;n.content="text"===n.format?k(e,function(e){return e.dom().innerText}).join(""):(t=f,k(e,function(e){return t.selection.serializer.serialize(e.dom(),{})}).join(""))})},y)}),f.on("BeforeSetContent",function(l){!0===l.selection&&!0===l.paste&&S.from(f.dom.getParent(f.selection.getStart(),"th,td")).each(function(e){var c=De.fromDom(e);gn.table(c).each(function(t){var e,n,r,o=I((e=l.content,(r=(n||m.document).createElement("div")).innerHTML=e,Dt(De.fromDom(r))),function(e){return"meta"!==ce(e)});if(1===o.length&&"table"===ce(o[0])){l.preventDefault();var i=De.fromDom(f.getDoc()),u=zn(i),a=Gr.paste(c,o[0],u);s.pasteCells(t,a).each(function(e){f.selection.setRng(e),f.focus(),d.clear(t)})}})})})};function Xr(r,o){var e=function(e){var t=o(e);if(t<=0||null===t){var n=Ie(e,r);return parseFloat(n)||0}return t},i=function(o,e){return M(e,function(e,t){var n=Ie(o,t),r=n===undefined?0:parseInt(n,10);return isNaN(r)?e:e+r},0)};return{set:function(e,t){if(!O(t)&&!t.match(/^[0-9]+$/))throw new Error(r+".set accepts only positive integer values. Value was "+t);var n=e.dom();Se(n)&&(n.style[r]=t+"px")},get:e,getOuter:e,aggregate:i,max:function(e,t,n){var r=i(e,n);return r<t?t-r:0}}}var Kr=Xr("height",function(e){var t=e.dom();return Oe(e)?t.getBoundingClientRect().height:t.offsetHeight}),Jr=function(e){return Kr.get(e)},$r=function(e){return Kr.getOuter(e)},Qr=Xr("width",function(e){return e.dom().offsetWidth}),Zr=function(e){return Qr.get(e)},eo=function(e){return Qr.getOuter(e)},to=mt.detect(),no=function(e,t,n){return r=Ie(e,t),o=n,i=parseFloat(r),isNaN(i)?o:i;var r,o,i},ro=function(e){return to.browser.isIE()||to.browser.isEdge()?(n=no(t=e,"padding-top",0),r=no(t,"padding-bottom",0),o=no(t,"border-top-width",0),i=no(t,"border-bottom-width",0),u=t.dom().getBoundingClientRect().height,"border-box"===Ie(t,"box-sizing")?u:u-n-r-(o+i)):no(e,"height",Jr(e));var t,n,r,o,i,u},oo=/(\d+(\.\d+)?)(\w|%)*/,io=/(\d+(\.\d+)?)%/,uo=/(\d+(\.\d+)?)px|em/,ao=function(e,t){ke(e,"height",t+"px")},co=function(e,t,n,r){var o,i,u,a,c,l,f,s,d,m=parseInt(e,10);return s=l="%",d=(f=e).length-l.length,""!==s&&(f.length<s.length||f.substr(d,d+s.length)!==s)||"table"===ce(t)?m:(o=t,i=m,u=n,a=r,c=gn.table(o).map(function(e){var t=u(e);return Math.floor(i/100*t)}).getOr(i),a(o,c),c)},lo=function(e){var t,n=We(t=e,"height").getOrThunk(function(){return ro(t)+"px"});return n?co(n,e,Jr,ao):Jr(e)},fo=function(e,t){return we(e,t)?parseInt(be(e,t),10):1},so=function(e){return We(e,"width").fold(function(){return S.from(be(e,"width"))},function(e){return S.some(e)})},mo=function(e,t){return e/t.pixelWidth()*100},go={percentageBasedSizeRegex:C(io),pixelBasedSizeRegex:C(uo),setPixelWidth:function(e,t){ke(e,"width",t+"px")},setPercentageWidth:function(e,t){ke(e,"width",t+"%")},setHeight:ao,getPixelWidth:function(t,n){return so(t).fold(function(){return Zr(t)},function(e){return function(e,t,n){if(uo.test(t)){var r=uo.exec(t);return parseInt(r[1],10)}if(io.test(t)){var o=io.exec(t),i=parseFloat(o[1]);return i/100*n.pixelWidth()}return Zr(e)}(t,e,n)})},getPercentageWidth:function(t,n){return so(t).fold(function(){var e=Zr(t);return mo(e,n)},function(e){return function(e,t,n){if(io.test(t)){var r=io.exec(t);return parseFloat(r[1])}var o=Zr(e);return mo(o,n)}(t,e,n)})},getGenericWidth:function(e){return so(e).bind(function(e){if(oo.test(e)){var t=oo.exec(e);return S.some({width:C(t[1]),unit:C(t[3])})}return S.none()})},setGenericWidth:function(e,t,n){ke(e,"width",t+n)},getHeight:function(e){return n="rowspan",lo(t=e)/fo(t,n);var t,n},getRawWidth:so},ho=function(n,r){go.getGenericWidth(n).each(function(e){var t=e.width()/2;go.setGenericWidth(n,t,e.unit()),go.setGenericWidth(r,t,e.unit())})},po=function(n,r){return{left:C(n),top:C(r),translate:function(e,t){return po(n+e,r+t)}}},vo=po,bo=function(e,t){return e!==undefined?e:t!==undefined?t:0},wo=function(e){var t,n,r=e.dom().ownerDocument,o=r.body,i=(t=De.fromDom(r),(n=t.dom())===n.window&&t instanceof m.Window?t:ge(t)?n.defaultView||n.parentWindow:null),u=r.documentElement,a=bo(i.pageYOffset,u.scrollTop),c=bo(i.pageXOffset,u.scrollLeft),l=bo(u.clientTop,o.clientTop),f=bo(u.clientLeft,o.clientLeft);return yo(e).translate(c-f,a-l)},yo=function(e){var t,n,r,o=e.dom(),i=o.ownerDocument,u=i.body,a=De.fromDom(i.documentElement);return u===o?vo(u.offsetLeft,u.offsetTop):(t=e,n=a||De.fromDom(m.document.documentElement),tn(t,b(bt,n)).isSome()?(r=o.getBoundingClientRect(),vo(r.left,r.top)):vo(0,0))},xo=$("row","y"),Co=$("col","x"),So=function(e){return wo(e).left()+eo(e)},Ro=function(e){return wo(e).left()},To=function(e,t){return Co(e,Ro(t))},Do=function(e,t){return Co(e,So(t))},Oo=function(e){return wo(e).top()},No=function(n,t,r){if(0===r.length)return[];var e=k(r.slice(1),function(e,t){return e.map(function(e){return n(t,e)})}),o=r[r.length-1].map(function(e){return t(r.length-1,e)});return e.concat([o])},Eo={delta:o,positions:b(No,function(e,t){return xo(e,Oo(t))},function(e,t){return xo(e,Oo(t)+$r(t))}),edge:Oo},Ao={delta:o,edge:Ro,positions:b(No,To,Do)},ko={height:Eo,rtl:{delta:function(e,t){return-e},edge:So,positions:b(No,Do,To)},ltr:Ao},Po={ltr:ko.ltr,rtl:ko.rtl};function Io(t){var n=function(e){return t(e).isRtl()?Po.rtl:Po.ltr};return{delta:function(e,t){return n(t).delta(e,t)},edge:function(e){return n(e).edge(e)},positions:function(e,t){return n(t).positions(e)}}}var Bo,Wo=function(e){var t=hn(e);return wn.generate(t).grid()},Mo=Object.prototype.hasOwnProperty,_o=(Bo=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Mo.call(o,i)&&(n[i]=Bo(n[i],o[i]))}return n}),Lo=function(e){for(var t=[],n=function(e){t.push(e)},r=0;r<e.length;r++)e[r].each(n);return t},jo=function(e,t){for(var n=0;n<e.length;n++){var r=t(e[n],n);if(r.isSome())return r}return S.none()},Fo=function(e,t,n,r){n===r?ye(e,t):pe(e,t,n)},zo=function(o,e){var i=[],u=[],t=function(e,t){0<e.length?function(e,t){var n=rn(o,t).getOrThunk(function(){var e=De.fromTag(t,xt(o).dom());return kt(o,e),e});Wt(n);var r=k(e,function(e){e.isNew()&&i.push(e.element());var t=e.element();return Wt(t),P(e.cells(),function(e){e.isNew()&&u.push(e.element()),Fo(e.element(),"colspan",e.colspan(),1),Fo(e.element(),"rowspan",e.rowspan(),1),kt(t,e.element())}),t});Bt(n,r)}(e,t):rn(o,t).each(Mt)},n=[],r=[],a=[];return P(e,function(e){switch(e.section()){case"thead":n.push(e);break;case"tbody":r.push(e);break;case"tfoot":a.push(e)}}),t(n,"thead"),t(r,"tbody"),t(a,"tfoot"),{newRows:C(i),newCells:C(u)}},Ho=function(e){return k(e,function(e){var n=In(e.element());return P(e.cells(),function(e){var t=Bn(e.element());Fo(t,"colspan",e.colspan(),1),Fo(t,"rowspan",e.rowspan(),1),kt(n,t)}),n})},Uo=function(e,t){var n=be(e,t);return n===undefined||""===n?[]:n.split(" ")},qo=function(e){return e.dom().classList!==undefined},Vo=function(e,t){return o=t,i=Uo(n=e,r="class").concat([o]),pe(n,r,i.join(" ")),!0;var n,r,o,i},Go=function(e,t){return o=t,0<(i=I(Uo(n=e,r="class"),function(e){return e!==o})).length?pe(n,r,i.join(" ")):ye(n,r),!1;var n,r,o,i},Yo=function(e,t){qo(e)?e.dom().classList.add(t):Vo(e,t)},Xo=function(e){0===(qo(e)?e.dom().classList:Uo(e,"class")).length&&ye(e,"class")},Ko=function(e,t){return qo(e)&&e.dom().classList.contains(t)},Jo=function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},$o=function(e,t){for(var n=[],r=e;r<t;r++)n.push(r);return n},Qo=function(t,n){if(n<0||n>=t.length-1)return S.none();var e=t[n].fold(function(){var e=V(t.slice(0,n));return jo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:0})}),r=t[n+1].fold(function(){var e=t.slice(n+1);return jo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:1})});return e.bind(function(n){return r.map(function(e){var t=e.delta+n.delta;return Math.abs(e.value-n.value)/t})})},Zo=function(e,t,n){var r=e();return _(r,t).orThunk(function(){return S.from(r[0]).orThunk(n)}).map(function(e){return e.element()})},ei=function(n){var e=n.grid(),t=$o(0,e.columns()),r=$o(0,e.rows());return k(t,function(t){return Zo(function(){return H(r,function(e){return wn.getAt(n,e,t).filter(function(e){return e.column()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.colspan()},function(){return wn.getAt(n,0,t)})})},ti=function(n){var e=n.grid(),t=$o(0,e.rows()),r=$o(0,e.columns());return k(t,function(t){return Zo(function(){return H(r,function(e){return wn.getAt(n,t,e).filter(function(e){return e.row()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.rowspan()},function(){return wn.getAt(n,t,0)})})},ni=function(e){var t=e.replace(/\./g,"-");return{resolve:function(e){return t+"-"+e}}},ri={resolve:ni("ephox-snooker").resolve},oi=function(e,t,n,r,o){var i=De.fromTag("div");return Pe(i,{position:"absolute",left:t-r/2+"px",top:n+"px",height:o+"px",width:r+"px"}),ve(i,{"data-column":e,role:"presentation"}),i},ii=function(e,t,n,r,o){var i=De.fromTag("div");return Pe(i,{position:"absolute",left:t+"px",top:n-o/2+"px",height:o+"px",width:r+"px"}),ve(i,{"data-row":e,role:"presentation"}),i},ui=ri.resolve("resizer-bar"),ai=ri.resolve("resizer-rows"),ci=ri.resolve("resizer-cols"),li=function(e){var t=Xt(e.parent(),"."+ui);P(t,Mt)},fi=function(n,e,r){var o=n.origin();P(e,function(e,t){e.each(function(e){var t=r(o,e);Yo(t,ui),kt(n.parent(),t)})})},si=function(e,t,n,r,o,i){var u,a,c,l,f=wo(t),s=0<n.length?o.positions(n,t):[];u=e,a=s,c=f,l=eo(t),fi(u,a,function(e,t){var n=ii(t.row(),c.left()-e.left(),t.y()-e.top(),l,7);return Yo(n,ai),n});var d,m,g,h,p=0<r.length?i.positions(r,t):[];d=e,m=p,g=f,h=$r(t),fi(d,m,function(e,t){var n=oi(t.col(),t.x()-e.left(),g.top()-e.top(),7,h);return Yo(n,ci),n})},di=function(e,t){var n=Xt(e.parent(),"."+ui);P(n,t)},mi={refresh:function(e,t,n,r){li(e);var o=hn(t),i=wn.generate(o),u=ti(i),a=ei(i);si(e,t,u,a,n,r)},hide:function(e){di(e,function(e){ke(e,"display","none")})},show:function(e){di(e,function(e){ke(e,"display","block")})},destroy:li,isRowBar:function(e){return Ko(e,ai)},isColBar:function(e){return Ko(e,ci)}},gi=function(e,t){return qt.rowcells(t,e.section())},hi=function(e,t){return e.cells()[t]},pi={addCell:function(e,t,n){var r=e.cells(),o=r.slice(0,t),i=r.slice(t),u=o.concat([n]).concat(i);return gi(e,u)},setCells:gi,mutateCell:function(e,t,n){e.cells()[t]=n},getCell:hi,getCellElement:function(e,t){return hi(e,t).element()},mapCells:function(e,t){var n=e.cells(),r=k(n,t);return qt.rowcells(r,e.section())},cellLength:function(e){return e.cells().length}},vi=function(e,t){if(0===e.length)return 0;var n=e[0];return L(e,function(e){return!t(n.element(),e.element())}).fold(function(){return e.length},function(e){return e})},bi=function(e,t,n,r){var o,i,u,a,c=(o=e,i=t,o[i]).cells().slice(n),l=vi(c,r),f=(u=e,a=n,k(u,function(e){return pi.getCell(e,a)})).slice(t),s=vi(f,r);return{colspan:C(l),rowspan:C(s)}},wi=function(o,i){var u=k(o,function(e,t){return k(e.cells(),function(e,t){return!1})});return k(o,function(e,r){var t=H(e.cells(),function(e,t){if(!1===u[r][t]){var n=bi(o,r,t,i);return function(e,t,n,r){for(var o=e;o<e+n;o++)for(var i=t;i<t+r;i++)u[o][i]=!0}(r,t,n.rowspan(),n.colspan()),[qt.detailnew(e.element(),n.rowspan(),n.colspan(),e.isNew())]}return[]});return qt.rowdetails(t,e.section())})},yi=function(e,t,n){for(var r=[],o=0;o<e.grid().rows();o++){for(var i=[],u=0;u<e.grid().columns();u++){var a=wn.getAt(e,o,u).map(function(e){return qt.elementnew(e.element(),n)}).getOrThunk(function(){return qt.elementnew(t.gap(),!0)});i.push(a)}var c=qt.rowcells(i,e.all()[o].section());r.push(c)}return r},xi=function(e,r){return k(e,function(e){var t,n=(t=e.details(),jo(t,function(e){return Ct(e.element()).map(function(e){var t=Ct(e).isNone();return qt.elementnew(e,t)})}).getOrThunk(function(){return qt.elementnew(r.row(),!0)}));return qt.rowdatanew(n.element(),e.details(),e.section(),n.isNew())})},Ci=function(e,t){var n=wi(e,bt);return xi(n,t)},Si=function(e,t){var n=z(k(e.all(),function(e){return e.cells()}));return _(n,function(e){return bt(t,e.element())})},Ri=function(a,c,l,f,s){return function(n,r,e,o,i){var t=hn(r),u=wn.generate(t);return c(u,e).map(function(e){var t=yi(u,o,!1),n=a(t,e,bt,s(o)),r=Ci(n.grid(),o);return{grid:C(r),cursor:n.cursor}}).fold(function(){return S.none()},function(e){var t=zo(r,e.grid());return l(r,e.grid(),i),f(r),mi.refresh(n,r,ko.height,i),S.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})})}},Ti=Ci,Di=function(t,e){return gn.cell(e.element()).bind(function(e){return Si(t,e)})},Oi=function(t,e){var n=k(e.selection(),function(e){return gn.cell(e).bind(function(e){return Si(t,e)})}),r=Lo(n);return 0<r.length?S.some(r):S.none()},Ni=function(t,n){return gn.cell(n.element()).bind(function(e){return Si(t,e).map(function(e){return _o(e,{generators:n.generators,clipboard:n.clipboard})})})},Ei=function(t,e){var n=k(e.selection(),function(e){return gn.cell(e).bind(function(e){return Si(t,e)})}),r=Lo(n);return 0<r.length?S.some(_o({cells:r},{generators:e.generators,clipboard:e.clipboard})):S.none()},Ai=function(e,t){return t.mergable()},ki=function(e,t){return t.unmergable()},Pi=function(n){return{is:function(e){return n===e},isValue:l,isError:a,getOr:C(n),getOrThunk:C(n),getOrDie:C(n),or:function(e){return Pi(n)},orThunk:function(e){return Pi(n)},fold:function(e,t){return t(n)},map:function(e){return Pi(e(n))},mapError:function(e){return Pi(n)},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return S.some(n)}}},Ii=function(n){return{is:a,isValue:a,isError:l,getOr:o,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return Ii(n)},mapError:function(e){return Ii(e(n))},each:y,bind:function(e){return Ii(n)},exists:a,forall:l,toOption:S.none}},Bi={value:Pi,error:Ii},Wi=function(e,t){return k(e,function(){return qt.elementnew(t.cell(),!0)})},Mi=function(t,e,n){return t.concat(Jo(e,function(e){return pi.setCells(t[t.length-1],Wi(t[t.length-1].cells(),n))}))},_i=function(e,t,n){return k(e,function(e){return pi.setCells(e,e.cells().concat(Wi($o(0,t),n)))})},Li=function(e,t,n){if(e.row()>=t.length||e.column()>pi.cellLength(t[0]))return Bi.error("invalid start address out of table bounds, row: "+e.row()+", column: "+e.column());var r=t.slice(e.row()),o=r[0].cells().slice(e.column()),i=pi.cellLength(n[0]),u=n.length;return Bi.value({rowDelta:C(r.length-u),colDelta:C(o.length-i)})},ji=function(e,t){var n=pi.cellLength(e[0]),r=pi.cellLength(t[0]);return{rowDelta:C(0),colDelta:C(n-r)}},Fi=function(e,t,n){var r=t.colDelta()<0?_i:o;return(t.rowDelta()<0?Mi:o)(r(e,Math.abs(t.colDelta()),n),Math.abs(t.rowDelta()),n)},zi=function(e,t,n,r){if(0===e.length)return e;for(var o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)pi.mutateCell(e[o],i,qt.elementnew(r(),!1));return e},Hi=function(e,t,n,r){for(var o=!0,i=0;i<e.length;i++)for(var u=0;u<pi.cellLength(e[0]);u++){var a=n(pi.getCellElement(e[i],u),t);!0===a&&!1===o?pi.mutateCell(e[i],u,qt.elementnew(r(),!0)):!0===a&&(o=!1)}return e},Ui=function(i,n,u,a){if(0<n&&n<i.length){var e=i[n-1].cells(),t=(r=u,M(e,function(e,t){return A(e,function(e){return r(e.element(),t.element())})?e:e.concat([t])},[]));P(t,function(r){for(var o=S.none(),e=function(n){for(var e=function(t){var e=i[n].cells()[t];u(e.element(),r.element())&&(o.isNone()&&(o=S.some(a())),o.each(function(e){pi.mutateCell(i[n],t,qt.elementnew(e,!0))}))},t=0;t<pi.cellLength(i[0]);t++)e(t)},t=n;t<i.length;t++)e(t)})}var r;return i},qi=function(n,r,o,i,u){return Li(n,r,o).map(function(e){var t=Fi(r,e,i);return function(e,t,n,r,o){for(var i,u,a,c,l,f=e.row(),s=e.column(),d=f+n.length,m=s+pi.cellLength(n[0]),g=f;g<d;g++)for(var h=s;h<m;h++){i=t,u=g,a=h,c=void 0,c=b(o,pi.getCell(i[u],a).element()),l=i[u],1<i.length&&1<pi.cellLength(l)&&(0<a&&c(pi.getCellElement(l,a-1))||a<l.length-1&&c(pi.getCellElement(l,a+1))||0<u&&c(pi.getCellElement(i[u-1],a))||u<i.length-1&&c(pi.getCellElement(i[u+1],a)))&&Hi(t,pi.getCellElement(t[g],h),o,r.cell);var p=pi.getCellElement(n[g-f],h-s),v=r.replace(p);pi.mutateCell(t[g],h,qt.elementnew(v,!0))}return t}(n,t,o,i,u)})},Vi=function(e,t,n,r,o){Ui(t,e,o,r.cell);var i=ji(n,t),u=Fi(n,i,r),a=ji(t,u),c=Fi(t,a,r);return c.slice(0,e).concat(u).concat(c.slice(e,c.length))},Gi=function(n,r,e,o,i){var t=n.slice(0,r),u=n.slice(r),a=pi.mapCells(n[e],function(e,t){return 0<r&&r<n.length&&o(pi.getCellElement(n[r-1],t),pi.getCellElement(n[r],t))?pi.getCell(n[r],t):qt.elementnew(i(e.element(),o),!0)});return t.concat([a]).concat(u)},Yi=function(e,n,r,o,i){return k(e,function(e){var t=0<n&&n<pi.cellLength(e)&&o(pi.getCellElement(e,n-1),pi.getCellElement(e,n))?pi.getCell(e,n):qt.elementnew(i(pi.getCellElement(e,r),o),!0);return pi.addCell(e,n,t)})},Xi=function(e,r,o,i,u){var a=o+1;return k(e,function(e,t){var n=t===r?qt.elementnew(u(pi.getCellElement(e,o),i),!0):pi.getCell(e,o);return pi.addCell(e,a,n)})},Ki=function(e,t,n,r,o){var i=t+1,u=e.slice(0,i),a=e.slice(i),c=pi.mapCells(e[t],function(e,t){return t===n?qt.elementnew(o(e.element(),r),!0):e});return u.concat([c]).concat(a)},Ji=function(e,t,n){return e.slice(0,t).concat(e.slice(n+1))},$i=function(e,n,r){var t=k(e,function(e){var t=e.cells().slice(0,n).concat(e.cells().slice(r+1));return qt.rowcells(t,e.section())});return I(t,function(e){return 0<e.cells().length})},Qi=function(e){return e.dom().textContent},Zi=function(e,n,r,o){return k(e,function(e){return pi.mapCells(e,function(e){return t=e,A(n,function(e){return r(t.element(),e.element())})?qt.elementnew(o(e.element(),r),!0):e;var t})})},eu=function(e,t,n,r){return pi.getCellElement(e[t],n)!==undefined&&0<t&&r(pi.getCellElement(e[t-1],n),pi.getCellElement(e[t],n))},tu=function(e,t,n){return 0<t&&n(pi.getCellElement(e,t-1),pi.getCellElement(e,t))},nu=function(n,r,o,e){var t=H(n,function(e,t){return eu(n,t,r,o)||tu(e,r,o)?[]:[pi.getCell(e,r)]});return Zi(n,t,o,e)},ru=function(n,r,o,e){var i=n[r],t=H(i.cells(),function(e,t){return eu(n,r,t,o)||tu(i,t,o)?[]:[e]});return Zi(n,t,o,e)},ou=function(e,r,o,i){var t=B(e,function(e){return ce(pi.getCell(e,r).element())});return H(t,function(e){return"th"===ce(pi.getCell(e[0],r).element())?e:(t=k(e,function(e){var t=pi.getCell(e,r);return{row:e,text:Qi(t.element())}}),n=G(t,function(e,t){var n=o(e.text,t.text);return i?n:-1*n}),k(n,function(e){return e.row}));var t,n})},iu=function(e,t,o,i){var n=e[t].cells(),r=k(n,function(e){return Qi(e.element())}),u=k(e,function(e){return{zippedCells:k(e.cells(),function(e,t){return{cell:e,reference:n[t],referenceText:r[t]}}),section:e.section()}});return k(u,function(e){var t=B(e.zippedCells,function(e){return ce(e.reference.element())}),n=H(t,function(e){return"th"===ce(e[0].reference.element())?e:G(e,function(e,t){var n=o(e.referenceText,t.referenceText);return i?n:-1*n})}),r=k(n,function(e){return e.cell});return qt.rowcells(r,e.section)})},uu=function(e){return{fold:e}},au=function(){return uu(function(e,t,n,r,o){return e()})},cu=function(i){return uu(function(e,t,n,r,o){return t(i)})},lu=function(i,u){return uu(function(e,t,n,r,o){return n(i,u)})},fu=function(i,u,a){return uu(function(e,t,n,r,o){return r(i,u,a)})},su=function(i,u){return uu(function(e,t,n,r,o){return o(i,u)})},du=function(e,t,i,u){var n,r,a=e.slice(0),o=(r=t,0===(n=e).length?au():1===n.length?cu(0):0===r?lu(0,1):r===n.length-1?su(r-1,r):0<r&&r<n.length-1?fu(r-1,r,r+1):au()),c=function(e){return k(e,C(0))},l=C(c(a)),f=function(e,t){if(0<=i){var n=Math.max(u.minCellWidth(),a[t]-i);return c(a.slice(0,e)).concat([i,n-a[t]]).concat(c(a.slice(t+1)))}var r=Math.max(u.minCellWidth(),a[e]+i),o=a[e]-r;return c(a.slice(0,e)).concat([r-a[e],o]).concat(c(a.slice(t+1)))},s=f;return o.fold(l,function(e){return u.singleColumnWidth(a[e],i)},s,function(e,t,n){return f(t,n)},function(e,t){if(0<=i)return c(a.slice(0,t)).concat([i]);var n=Math.max(u.minCellWidth(),a[t]+i);return c(a.slice(0,t)).concat([n-a[t]])})},mu=function(e,t){return we(e,t)&&1<parseInt(be(e,t),10)},gu={hasColspan:function(e){return mu(e,"colspan")},hasRowspan:function(e){return mu(e,"rowspan")},minWidth:C(10),minHeight:C(10),getInt:function(e,t){return parseInt(Ie(e,t),10)}},hu=function(e,t,n){return We(e,t).fold(function(){return n(e)+"px"},function(e){return e})},pu=function(e){return hu(e,"width",go.getPixelWidth)},vu=function(e){return hu(e,"height",go.getHeight)},bu=function(e,t,n,r,o){var i=ei(e),u=k(i,function(e){return e.map(t.edge)});return k(i,function(e,t){return e.filter(g(gu.hasColspan)).fold(function(){var e=Qo(u,t);return r(e)},function(e){return n(e,o)})})},wu=function(e){return e.map(function(e){return e+"px"}).getOr("")},yu=function(e,t,n,r){var o=ti(e),i=k(o,function(e){return e.map(t.edge)});return k(o,function(e,t){return e.filter(g(gu.hasRowspan)).fold(function(){var e=Qo(i,t);return r(e)},function(e){return n(e)})})},xu={getRawWidths:function(e,t){return bu(e,t,pu,wu)},getPixelWidths:function(e,t,n){return bu(e,t,go.getPixelWidth,function(e){return e.getOrThunk(n.minCellWidth)},n)},getPercentageWidths:function(e,t,n){return bu(e,t,go.getPercentageWidth,function(e){return e.fold(function(){return n.minCellWidth()},function(e){return e/n.pixelWidth()*100})},n)},getPixelHeights:function(e,t){return yu(e,t,go.getHeight,function(e){return e.getOrThunk(gu.minHeight)})},getRawHeights:function(e,t){return yu(e,t,vu,wu)}},Cu=function(e,t,n){for(var r=0,o=e;o<t;o++)r+=n[o]!==undefined?n[o]:0;return r},Su=function(e,n){var t=wn.justCells(e);return k(t,function(e){var t=Cu(e.column(),e.column()+e.colspan(),n);return{element:e.element,width:C(t),colspan:e.colspan}})},Ru=function(e,n){var t=wn.justCells(e);return k(t,function(e){var t=Cu(e.row(),e.row()+e.rowspan(),n);return{element:e.element,height:C(t),rowspan:e.rowspan}})},Tu=function(e,n){return k(e.all(),function(e,t){return{element:e.element,height:C(n[t])}})},Du=function(e){var t=parseInt(e,10),n=o;return{width:C(t),pixelWidth:C(t),getWidths:xu.getPixelWidths,getCellDelta:n,singleColumnWidth:function(e,t){return[Math.max(gu.minWidth(),e+t)-e]},minCellWidth:gu.minWidth,setElementWidth:go.setPixelWidth,setTableWidth:function(e,t,n){var r=W(t,function(e,t){return e+t},0);go.setPixelWidth(e,r)}}},Ou=function(e,t){if(go.percentageBasedSizeRegex().test(t)){var n=go.percentageBasedSizeRegex().exec(t);return o=n[1],i=e,u=parseFloat(o),a=Zr(i),{width:C(u),pixelWidth:C(a),getWidths:xu.getPercentageWidths,getCellDelta:function(e){return e/a*100},singleColumnWidth:function(e,t){return[100-e]},minCellWidth:function(){return gu.minWidth()/a*100},setElementWidth:go.setPercentageWidth,setTableWidth:function(e,t,n){var r=u+n;go.setPercentageWidth(e,r)}}}if(go.pixelBasedSizeRegex().test(t)){var r=go.pixelBasedSizeRegex().exec(t);return Du(r[1])}var o,i,u,a,c=Zr(e);return Du(c)},Nu=function(t){return go.getRawWidth(t).fold(function(){var e=Zr(t);return Du(e)},function(e){return Ou(t,e)})},Eu=function(e){return wn.generate(e)},Au=function(e){var t=hn(e);return Eu(t)},ku=function(e,t,n,r){var o=Nu(e),i=o.getCellDelta(t),u=Au(e),a=o.getWidths(u,r,o),c=du(a,n,i,o),l=k(c,function(e,t){return e+a[t]}),f=Su(u,l);P(f,function(e){o.setElementWidth(e.element(),e.width())}),n===u.grid().columns()-1&&o.setTableWidth(e,l,i)},Pu=function(e,n,r,t){var o=Au(e),i=xu.getPixelHeights(o,t),u=k(i,function(e,t){return r===t?Math.max(n+e,gu.minHeight()):e}),a=Ru(o,u),c=Tu(o,u);P(c,function(e){go.setHeight(e.element(),e.height())}),P(a,function(e){go.setHeight(e.element(),e.height())});var l=W(u,function(e,t){return e+t},0);go.setHeight(e,l)},Iu=function(e,t,n){var r=Nu(e),o=Eu(t),i=r.getWidths(o,n,r),u=Su(o,i);P(u,function(e){r.setElementWidth(e.element(),e.width())});var a=W(i,function(e,t){return t+e},0);0<u.length&&r.setTableWidth(e,a)},Bu=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Bu(n())}}},Wu=function(r,o,i){if(0===o.length)throw new Error("You must specify at least one required field.");return te("required",o),ne(o),function(t){var n=Y(t);U(o,function(e){return E(n,e)})||Z(o,n),r(o,n);var e=I(o,function(e){return!i.validate(t[e],e)});return 0<e.length&&function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+Q(e).join(", ")+") were not.")}(e,i.label),t}},Mu=function(t,e){var n=I(e,function(e){return!E(t,e)});0<n.length&&ee(n)},_u=function(e){return Wu(Mu,e,{validate:D,label:"function"})},Lu=function(e){var t=we(e,"colspan")?parseInt(be(e,"colspan"),10):1,n=we(e,"rowspan")?parseInt(be(e,"rowspan"),10):1;return{element:C(e),colspan:C(t),rowspan:C(n)}},ju=_u(["cell","row","replace","gap"]),Fu=function(r,e){ju(r);var n=Bu(S.none()),o=e!==undefined?e:Lu,i=function(e){var t,n=o(e);return t=n,r.cell(t)},u=function(e){var t=i(e);return n.get().isNone()&&n.set(S.some(t)),a=S.some({item:e,replacement:t}),t},a=S.none();return{getOrInit:function(t,n){return a.fold(function(){return u(t)},function(e){return n(t,e.item)?e.replacement:u(t)})},cursor:n.get}},zu=function(o,a){return function(n){var r=Bu(S.none());ju(n);var i=[],u=function(e){var t=n.replace(e,a,{scope:o});return i.push({item:e,sub:t}),r.get().isNone()&&r.set(S.some(t)),t};return{replaceOrInit:function(t,n){return(r=t,o=n,_(i,function(e){return o(e.item,r)})).fold(function(){return u(t)},function(e){return n(t,e.item)?e.sub:u(t)});var r,o},cursor:r.get}}},Hu=function(n){ju(n);var e=Bu(S.none());return{combine:function(t){return e.get().isNone()&&e.set(S.some(t)),function(){var e=n.cell({element:C(t),colspan:C(1),rowspan:C(1)});return Me(e,"width"),Me(t,"width"),e}},cursor:e.get}},Uu=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],qu=function(e,t){var n=e.property().name(t);return E(Uu,n)},Vu=function(e,t){return E(["br","img","hr","input"],e.property().name(t))},Gu=qu,Yu=function(e,t){var n=e.property().name(t);return E(["ol","ul"],n)},Xu=Vu,Ku=Un(),Ju=function(e){return Gu(Ku,e)},$u=function(e){return Yu(Ku,e)},Qu=function(e){return Xu(Ku,e)},Zu=function(e){var t,i=function(e){return"br"===ce(e)},n=function(o){return An(o).bind(function(n){var r=Tt(n).map(function(e){return!!Ju(e)||(Qu(e)?"img"!==ce(e):void 0)}).getOr(!1);return Ct(n).map(function(e){return!0===r||"li"===ce(t=e)||tn(t,$u).isSome()||i(n)||Ju(e)&&!bt(o,e)?[]:[De.fromTag("br")];var t})}).getOr([])},r=0===(t=H(e,function(e){var t=Dt(e);return U(t,function(e){return i(e)||me(e)&&0===Sn(e).trim().length})?[]:t.concat(n(e))})).length?[De.fromTag("br")]:t;Wt(e[0]),Bt(e[0],r)},ea=function(e){0===gn.cells(e).length&&Mt(e)},ta=$("grid","cursor"),na=function(e,t,n){return ra(e,t,n).orThunk(function(){return ra(e,0,0)})},ra=function(e,t,n){return S.from(e[t]).bind(function(e){return S.from(e.cells()[n]).bind(function(e){return S.from(e.element())})})},oa=function(e,t,n){return ta(e,ra(e,t,n))},ia=function(e){return M(e,function(e,t){return A(e,function(e){return e.row()===t.row()})?e:e.concat([t])},[]).sort(function(e,t){return e.row()-t.row()})},ua=function(e){return M(e,function(e,t){return A(e,function(e){return e.column()===t.column()})?e:e.concat([t])},[]).sort(function(e,t){return e.column()-t.column()})},aa=function(e,t,n){var r=pn(e,n),o=wn.generate(r);return yi(o,t,!0)},ca=function(a){return function(e,t,n,r,o,i,u){return Ri(function(e,t,n,r){return a(e,t,i,u)},Di,y,y,Fu)(e,t,n,r,o)}},la=Iu,fa={insertRowBefore:Ri(function(e,t,n,r){var o=t.row(),i=t.row(),u=Gi(e,i,o,n,r.getOrInit);return oa(u,i,t.column())},Di,y,y,Fu),insertRowsBefore:Ri(function(e,t,n,r){var o=t[0].row(),i=t[0].row(),u=ia(t),a=M(u,function(e,t){return Gi(e,i,o,n,r.getOrInit)},e);return oa(a,i,t[0].column())},Oi,y,y,Fu),insertRowAfter:Ri(function(e,t,n,r){var o=t.row(),i=t.row()+t.rowspan(),u=Gi(e,i,o,n,r.getOrInit);return oa(u,i,t.column())},Di,y,y,Fu),insertRowsAfter:Ri(function(e,t,n,r){var o=ia(t),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),a=M(o,function(e,t){return Gi(e,u,i,n,r.getOrInit)},e);return oa(a,u,t[0].column())},Oi,y,y,Fu),insertColumnBefore:Ri(function(e,t,n,r){var o=t.column(),i=t.column(),u=Yi(e,i,o,n,r.getOrInit);return oa(u,t.row(),i)},Di,la,y,Fu),insertColumnsBefore:Ri(function(e,t,n,r){var o=ua(t),i=o[0].column(),u=o[0].column(),a=M(o,function(e,t){return Yi(e,u,i,n,r.getOrInit)},e);return oa(a,t[0].row(),u)},Oi,la,y,Fu),insertColumnAfter:Ri(function(e,t,n,r){var o=t.column(),i=t.column()+t.colspan(),u=Yi(e,i,o,n,r.getOrInit);return oa(u,t.row(),i)},Di,la,y,Fu),insertColumnsAfter:Ri(function(e,t,n,r){var o=t[t.length-1].column(),i=t[t.length-1].column()+t[t.length-1].colspan(),u=ua(t),a=M(u,function(e,t){return Yi(e,i,o,n,r.getOrInit)},e);return oa(a,t[0].row(),i)},Oi,la,y,Fu),splitCellIntoColumns:Ri(function(e,t,n,r){var o=Xi(e,t.row(),t.column(),n,r.getOrInit);return oa(o,t.row(),t.column())},Di,la,y,Fu),splitCellIntoRows:Ri(function(e,t,n,r){var o=Ki(e,t.row(),t.column(),n,r.getOrInit);return oa(o,t.row(),t.column())},Di,y,y,Fu),eraseColumns:Ri(function(e,t,n,r){var o=ua(t),i=$i(e,o[0].column(),o[o.length-1].column()),u=na(i,t[0].row(),t[0].column());return ta(i,u)},Oi,la,ea,Fu),eraseRows:Ri(function(e,t,n,r){var o=ia(t),i=Ji(e,o[0].row(),o[o.length-1].row()),u=na(i,t[0].row(),t[0].column());return ta(i,u)},Oi,y,ea,Fu),makeColumnHeader:Ri(function(e,t,n,r){var o=nu(e,t.column(),n,r.replaceOrInit);return oa(o,t.row(),t.column())},Di,y,y,zu("row","th")),unmakeColumnHeader:Ri(function(e,t,n,r){var o=nu(e,t.column(),n,r.replaceOrInit);return oa(o,t.row(),t.column())},Di,y,y,zu(null,"td")),makeRowHeader:Ri(function(e,t,n,r){var o=ru(e,t.row(),n,r.replaceOrInit);return oa(o,t.row(),t.column())},Di,y,y,zu("col","th")),unmakeRowHeader:Ri(function(e,t,n,r){var o=ru(e,t.row(),n,r.replaceOrInit);return oa(o,t.row(),t.column())},Di,y,y,zu(null,"td")),mergeCells:Ri(function(e,t,n,r){var o=t.cells();Zu(o);var i=zi(e,t.bounds(),n,C(o[0]));return ta(i,S.from(o[0]))},Ai,y,y,Hu),unmergeCells:Ri(function(e,t,n,r){var o=W(t,function(e,t){return Hi(e,t,n,r.combine(t))},e);return ta(o,S.from(t[0]))},ki,la,y,Hu),pasteCells:Ri(function(e,n,t,r){var o,i,u,a,c=(o=n.clipboard(),i=n.generators(),u=hn(o),a=wn.generate(u),yi(a,i,!0)),l=qt.address(n.row(),n.column());return qi(l,e,c,n.generators(),t).fold(function(){return ta(e,S.some(n.element()))},function(e){var t=na(e,n.row(),n.column());return ta(e,t)})},Ni,la,y,Fu),pasteRowsBefore:Ri(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[0].row(),u=aa(t.clipboard(),t.generators(),o),a=Vi(i,e,u,t.generators(),n),c=na(a,t.cells[0].row(),t.cells[0].column());return ta(a,c)},Ei,y,y,Fu),pasteRowsAfter:Ri(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[t.cells.length-1].row()+t.cells[t.cells.length-1].rowspan(),u=aa(t.clipboard(),t.generators(),o),a=Vi(i,e,u,t.generators(),n),c=na(a,t.cells[0].row(),t.cells[0].column());return ta(a,c)},Ei,y,y,Fu),sortRows:ca(function(e,t,n,r){var o=ou(e,t.column(),n,r);return oa(o,t.row(),t.column())}),sortColumns:ca(function(e,t,n,r){var o=iu(e,t.row(),n,r);return oa(o,t.row(),t.column())})},sa=function(e){return De.fromDom(e.getBody())},da=function(e){return e.getBoundingClientRect().width},ma=function(e){return e.getBoundingClientRect().height},ga=function(t){return function(e){return bt(e,sa(t))}},ha=function(e){return/^[0-9]+$/.test(e)&&(e+="px"),e},pa=function(e){var t=Xt(e,"td[data-mce-style],th[data-mce-style]");ye(e,"data-mce-style"),P(t,function(e){ye(e,"data-mce-style")})},va={isRtl:C(!1)},ba={isRtl:C(!0)},wa={directionAt:function(e){return"rtl"==("rtl"===Ie(e,"direction")?"rtl":"ltr")?ba:va}},ya=["tableprops","tabledelete","|","tableinsertrowbefore","tableinsertrowafter","tabledeleterow","|","tableinsertcolbefore","tableinsertcolafter","tabledeletecol"],xa={"border-collapse":"collapse",width:"100%"},Ca={border:"1"},Sa=function(e){return e.getParam("table_cell_advtab",!0,"boolean")},Ra=function(e){return e.getParam("table_row_advtab",!0,"boolean")},Ta=function(e){return e.getParam("table_advtab",!0,"boolean")},Da=function(e){return e.getParam("table_style_by_css",!1,"boolean")},Oa=function(e){return e.getParam("table_cell_class_list",[],"array")},Na=function(e){return e.getParam("table_row_class_list",[],"array")},Ea=function(e){return e.getParam("table_class_list",[],"array")},Aa=function(e){return!1===e.getParam("table_responsive_width")},ka=function(e,t){return e.fire("newrow",{node:t})},Pa=function(e,t){return e.fire("newcell",{node:t})},Ia=function(e,t,n,r){e.fire("ObjectResizeStart",{target:t,width:n,height:r})},Ba=function(e,t,n,r){e.fire("ObjectResized",{target:t,width:n,height:r})},Wa=function(f,e){var t,n=function(e){return"table"===ce(sa(e))},s=(t=f.getParam("table_clone_elements"),w(t)?S.some(t.split(/[ ,]/)):Array.isArray(t)?S.some(t):S.none()),r=function(u,a,c,l){return function(e,t){pa(e);var n=l(),r=De.fromDom(f.getDoc()),o=Io(wa.directionAt),i=Fn(c,r,s);return a(e)?u(n,e,t,i,o).bind(function(e){return P(e.newRows(),function(e){ka(f,e.dom())}),P(e.newCells(),function(e){Pa(f,e.dom())}),e.cursor().map(function(e){var t=f.dom.createRng();return t.setStart(e.dom(),0),t.setEnd(e.dom(),0),t})}):S.none()}};return{deleteRow:r(fa.eraseRows,function(e){var t=Wo(e);return!1===n(f)||1<t.rows()},y,e),deleteColumn:r(fa.eraseColumns,function(e){var t=Wo(e);return!1===n(f)||1<t.columns()},y,e),insertRowsBefore:r(fa.insertRowsBefore,l,y,e),insertRowsAfter:r(fa.insertRowsAfter,l,y,e),insertColumnsBefore:r(fa.insertColumnsBefore,l,ho,e),insertColumnsAfter:r(fa.insertColumnsAfter,l,ho,e),mergeCells:r(fa.mergeCells,l,y,e),unmergeCells:r(fa.unmergeCells,l,y,e),pasteRowsBefore:r(fa.pasteRowsBefore,l,y,e),pasteRowsAfter:r(fa.pasteRowsAfter,l,y,e),pasteCells:r(fa.pasteCells,l,y,e)}},Ma=function(e,t,r){var n=hn(e),o=wn.generate(n);return Oi(o,t).map(function(e){var t=yi(o,r,!1).slice(e[0].row(),e[e.length-1].row()+e[e.length-1].rowspan()),n=Ti(t,r);return Ho(n)})},_a=tinymce.util.Tools.resolve("tinymce.util.Tools"),La=function(e,t,n){n&&e.formatter.apply("align"+n,{},t)},ja=function(e,t,n){n&&e.formatter.apply("valign"+n,{},t)},Fa=function(t,n){_a.each("left center right".split(" "),function(e){t.formatter.remove("align"+e,{},n)})},za=function(t,n){_a.each("top middle bottom".split(" "),function(e){t.formatter.remove("valign"+e,{},n)})},Ha=function(o,e,i){var t;return t=function(e,t){for(var n=0;n<t.length;n++){var r=o.getStyle(t[n],i);if(void 0===e&&(e=r),e!==r)return""}return e}(t,o.select("td,th",e))},Ua=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);i["border-style"]=o.borderStyle,i["border-color"]=o.borderColor,i["background-color"]=o.backgroundColor,i.width=o.width?ha(o.width):"",i.height=o.height?ha(o.height):"",r.find("#style").value(n.serializeStyle(n.parseStyle(n.serializeStyle(i))))},qa=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);r.find("#borderStyle").value(i["border-style"]||""),r.find("#borderColor").value(i["border-color"]||""),r.find("#backgroundColor").value(i["background-color"]||""),r.find("#width").value(i.width||""),r.find("#height").value(i.height||"")},Va={createStyleForm:function(n){var e=function(){var e=n.getParam("color_picker_callback");if(e)return function(t){return e.call(n,function(e){t.control.value(e).fire("change")},t.control.value())}};return{title:"Advanced",type:"form",defaults:{onchange:b(Ua,n)},items:[{label:"Style",name:"style",type:"textbox",onchange:b(qa,n)},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border style",type:"listbox",name:"borderStyle",width:90,onselect:b(Ua,n),values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}},buildListItems:function(e,r,t){var o=function(e,n){return n=n||[],_a.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=o(e.menu):(t.value=e.value,r&&r(t)),n.push(t)}),n};return o(e,t||[])},updateStyleField:Ua,extractAdvancedStyles:function(e,t){var n=e.parseStyle(e.getAttrib(t,"style")),r={};return n["border-style"]&&(r.borderStyle=n["border-style"]),n["border-color"]&&(r.borderColor=n["border-color"]),n["background-color"]&&(r.backgroundColor=n["background-color"]),r.style=e.serializeStyle(n),r},updateAdvancedFields:qa,syncAdvancedStyleFields:function(e,t){t.control.rootControl.find("#style")[0].getEl().isEqualNode(m.document.activeElement)?qa(e,t):Ua(e,t)}},Ga=function(r,o,e){var i,u=r.dom;function a(e,t,n){(1===o.length||n)&&u.setAttrib(e,t,n)}function c(e,t,n){(1===o.length||n)&&u.setStyle(e,t,n)}Sa(r)&&Va.syncAdvancedStyleFields(r,e),i=e.control.rootControl.toJSON(),r.undoManager.transact(function(){_a.each(o,function(e){var t,n;a(e,"scope",i.scope),1===o.length?a(e,"style",i.style):(t=e,n=i.style,delete t.dataset.mceStyle,t.style.cssText+=";"+n),a(e,"class",i["class"]),c(e,"width",ha(i.width)),c(e,"height",ha(i.height)),i.type&&e.nodeName.toLowerCase()!==i.type&&(e=u.rename(e,i.type)),1===o.length&&(Fa(r,e),za(r,e)),i.align&&La(r,e,i.align),i.valign&&ja(r,e,i.valign)}),r.focus()})},Ya=function(t){var e,n,r,o=[];if(o=t.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=t.dom.getParent(t.selection.getStart(),"td,th"),!o.length&&e&&o.push(e),e=e||o[0]){var i,u,a,c;1<o.length?n={width:"",height:"",scope:"","class":"",align:"",valign:"",style:"",type:e.nodeName.toLowerCase()}:(u=e,a=(i=t).dom,c={width:a.getStyle(u,"width")||a.getAttrib(u,"width"),height:a.getStyle(u,"height")||a.getAttrib(u,"height"),scope:a.getAttrib(u,"scope"),"class":a.getAttrib(u,"class"),type:u.nodeName.toLowerCase(),style:"",align:"",valign:""},_a.each("left center right".split(" "),function(e){i.formatter.matchNode(u,"align"+e)&&(c.align=e)}),_a.each("top middle bottom".split(" "),function(e){i.formatter.matchNode(u,"valign"+e)&&(c.valign=e)}),Sa(i)&&_a.extend(c,Va.extractAdvancedStyles(a,u)),n=c),0<Oa(t).length&&(r={name:"class",type:"listbox",label:"Class",values:Va.buildListItems(Oa(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"td",classes:[e.value]})})})});var l={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width",onchange:b(Va.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Va.updateStyleField,t)},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},r]};Sa(t)?t.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:l},Va.createStyleForm(t)],onsubmit:b(Ga,t,o)}):t.windowManager.open({title:"Cell properties",data:n,body:l,onsubmit:b(Ga,t,o)})}};function Xa(f,s,d,e){var m=f.dom;function g(e,t,n){(1===s.length||n)&&m.setAttrib(e,t,n)}Ra(f)&&Va.syncAdvancedStyleFields(f,e);var h=e.control.rootControl.toJSON();f.undoManager.transact(function(){_a.each(s,function(e){var t,n,r,o,i,u,a,c,l;g(e,"scope",h.scope),g(e,"style",h.style),g(e,"class",h["class"]),t=e,n="height",r=ha(h.height),(1===s.length||r)&&m.setStyle(t,n,r),h.type!==e.parentNode.nodeName.toLowerCase()&&(o=f.dom,i=e,u=h.type,a=o.getParent(i,"table"),c=i.parentNode,(l=o.select(u,a)[0])||(l=o.create(u),a.firstChild?"CAPTION"===a.firstChild.nodeName?o.insertAfter(l,a.firstChild):a.insertBefore(l,a.firstChild):a.appendChild(l)),l.appendChild(i),c.hasChildNodes()||o.remove(c)),h.align!==d.align&&(Fa(f,e),La(f,e,h.align))}),f.focus()})}var Ka=function(t){var e,n,r,o,i,u,a,c,l,f,s=t.dom,d=[];e=s.getParent(t.selection.getStart(),"table"),n=s.getParent(t.selection.getStart(),"td,th"),_a.each(e.rows,function(t){_a.each(t.cells,function(e){if(s.getAttrib(e,"data-mce-selected")||e===n)return d.push(t),!1})}),(r=d[0])&&(1<d.length?i={height:"",scope:"",style:"","class":"",align:"",type:r.parentNode.nodeName.toLowerCase()}:(c=r,l=(a=t).dom,f={height:l.getStyle(c,"height")||l.getAttrib(c,"height"),scope:l.getAttrib(c,"scope"),"class":l.getAttrib(c,"class"),align:"",style:"",type:c.parentNode.nodeName.toLowerCase()},_a.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),Ra(a)&&_a.extend(f,Va.extractAdvancedStyles(l,c)),i=f),0<Na(t).length&&(o={name:"class",type:"listbox",label:"Class",values:Va.buildListItems(Na(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"tr",classes:[e.value]})})})}),u={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},Ra(t)?t.windowManager.open({title:"Row properties",data:i,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Va.createStyleForm(t)],onsubmit:b(Xa,t,d,i)}):t.windowManager.open({title:"Row properties",data:i,body:u,onsubmit:b(Xa,t,d,i)}))},Ja=tinymce.util.Tools.resolve("tinymce.Env"),$a={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},percentages:!0},Qa=function(e,t,n,r,o){void 0===o&&(o=$a);var i=De.fromTag("table");Pe(i,o.styles),ve(i,o.attributes);var u=De.fromTag("tbody");kt(i,u);for(var a=[],c=0;c<e;c++){for(var l=De.fromTag("tr"),f=0;f<t;f++){var s=c<n||f<r?De.fromTag("th"):De.fromTag("td");f<r&&pe(s,"scope","row"),c<n&&pe(s,"scope","col"),kt(s,De.fromTag("br")),o.percentages&&ke(s,"width",100/t+"%"),kt(l,s)}a.push(l)}return Bt(u,a),i},Za=function(e,t){e.selection.select(t.dom(),!0),e.selection.collapse(!0)},ec=function(r,e,t){var n,o,i=r.getParam("table_default_styles",xa,"object"),u={styles:i,attributes:(o=r,o.getParam("table_default_attributes",Ca,"object")),percentages:(n=i.width,w(n)&&-1!==n.indexOf("%")&&!Aa(r))},a=Qa(t,e,0,0,u);pe(a,"data-mce-id","__mce");var c,l,f,s=(c=a,l=De.fromTag("div"),f=De.fromDom(c.dom().cloneNode(!0)),kt(l,f),l.dom().innerHTML);return r.insertContent(s),on(sa(r),'table[data-mce-id="__mce"]').map(function(e){var t,n;return Aa(r)&&ke(e,"width",Ie(e,"width")),ye(e,"data-mce-id"),t=r,P(Xt(e,"tr"),function(e){ka(t,e.dom()),P(Xt(e,"th,td"),function(e){Pa(t,e.dom())})}),n=r,on(e,"td,th").each(b(Za,n)),e.dom()}).getOr(null)};function tc(e,t,n,r){if("TD"===t.tagName||"TH"===t.tagName)e.setStyle(t,n,r);else if(t.children)for(var o=0;o<t.children.length;o++)tc(e,t.children[o],n,r)}var nc=function(e,t,n){var r,o,i=e.dom;Ta(e)&&Va.syncAdvancedStyleFields(e,n),!1===(o=n.control.rootControl.toJSON())["class"]&&delete o["class"],e.undoManager.transact(function(){t||(t=ec(e,o.cols||1,o.rows||1)),function(e,t,n){var r,o=e.dom,i={},u={};if(i["class"]=n["class"],u.height=ha(n.height),o.getAttrib(t,"width")&&!Da(e)?i.width=(r=n.width)?r.replace(/px$/,""):"":u.width=ha(n.width),Da(e)?(u["border-width"]=ha(n.border),u["border-spacing"]=ha(n.cellspacing),_a.extend(i,{"data-mce-border-color":n.borderColor,"data-mce-cell-padding":n.cellpadding,"data-mce-border":n.border})):_a.extend(i,{border:n.border,cellpadding:n.cellpadding,cellspacing:n.cellspacing}),Da(e)&&t.children)for(var a=0;a<t.children.length;a++)tc(o,t.children[a],{"border-width":ha(n.border),"border-color":n.borderColor,padding:ha(n.cellpadding)});n.style?_a.extend(u,o.parseStyle(n.style)):u=_a.extend({},o.parseStyle(o.getAttrib(t,"style")),u),i.style=o.serializeStyle(u),o.setAttribs(t,i)}(e,t,o),(r=i.select("caption",t)[0])&&!o.caption&&i.remove(r),!r&&o.caption&&((r=i.create("caption")).innerHTML=Ja.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(r,t.firstChild)),Fa(e,t),o.align&&La(e,t,o.align),e.focus(),e.addVisual()})},rc=function(t,e){var n,r,o,i,u,a,c,l,f,s,d=t.dom,m={};!0===e?(n=d.getParent(t.selection.getStart(),"table"))&&(c=n,l=(a=t).dom,f={width:l.getStyle(c,"width")||l.getAttrib(c,"width"),height:l.getStyle(c,"height")||l.getAttrib(c,"height"),cellspacing:l.getStyle(c,"border-spacing")||l.getAttrib(c,"cellspacing"),cellpadding:l.getAttrib(c,"data-mce-cell-padding")||l.getAttrib(c,"cellpadding")||Ha(a.dom,c,"padding"),border:l.getAttrib(c,"data-mce-border")||l.getAttrib(c,"border")||Ha(a.dom,c,"border"),borderColor:l.getAttrib(c,"data-mce-border-color"),caption:!!l.select("caption",c)[0],"class":l.getAttrib(c,"class")},_a.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),Ta(a)&&_a.extend(f,Va.extractAdvancedStyles(l,c)),m=f):(r={label:"Cols",name:"cols"},o={label:"Rows",name:"rows"}),0<Ea(t).length&&(m["class"]&&(m["class"]=m["class"].replace(/\s*mce\-item\-table\s*/g,"")),i={name:"class",type:"listbox",label:"Class",values:Va.buildListItems(Ea(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"table",classes:[e.value]})})})}),u={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:(s=t,s.getParam("table_appearance_options",!0,"boolean")?[r,o,{label:"Width",name:"width",onchange:b(Va.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Va.updateStyleField,t)},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[r,o,{label:"Width",name:"width",onchange:b(Va.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Va.updateStyleField,t)}])},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},i]},Ta(t)?t.windowManager.open({title:"Table properties",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Va.createStyleForm(t)],onsubmit:b(nc,t,n)}):t.windowManager.open({title:"Table properties",data:m,body:u,onsubmit:b(nc,t,n)})},oc=_a.each,ic=function(a,t,c,l,n){var r=ga(a),e=function(e){return function(){return S.from(a.dom.getParent(a.selection.getStart(),e)).map(De.fromDom)}},o=e("caption"),f=e("th,td"),s=function(e){return gn.table(e,r)},d=function(e){return{width:da(e.dom()),height:da(e.dom())}},i=function(n){f().each(function(t){s(t).each(function(i){var e=Gr.forMenu(l,i,t),u=d(i);n(i,e).each(function(e){var t,n,r,o;t=a,n=u,o=d(r=i),n.width===o.width&&n.height===o.height||(Ia(t,r.dom(),n.width,n.height),Ba(t,r.dom(),o.width,o.height)),a.selection.setRng(e),a.focus(),c.clear(i),pa(i)})})})},u=function(e){return f().bind(function(o){return s(o).bind(function(e){var t=De.fromDom(a.getDoc()),n=Gr.forMenu(l,e,o),r=Fn(y,t,S.none());return Ma(e,n,r)})})},m=function(u){n.get().each(function(e){var i=k(e,function(e){return Bn(e)});f().each(function(o){s(o).each(function(t){var e=De.fromDom(a.getDoc()),n=zn(e),r=Gr.pasteRows(l,t,o,i,n);u(t,r).each(function(e){a.selection.setRng(e),a.focus(),c.clear(t)})})})})};oc({mceTableSplitCells:function(){i(t.unmergeCells)},mceTableMergeCells:function(){i(t.mergeCells)},mceTableInsertRowBefore:function(){i(t.insertRowsBefore)},mceTableInsertRowAfter:function(){i(t.insertRowsAfter)},mceTableInsertColBefore:function(){i(t.insertColumnsBefore)},mceTableInsertColAfter:function(){i(t.insertColumnsAfter)},mceTableDeleteCol:function(){i(t.deleteColumn)},mceTableDeleteRow:function(){i(t.deleteRow)},mceTableCutRow:function(e){n.set(u()),i(t.deleteRow)},mceTableCopyRow:function(e){n.set(u())},mceTablePasteRowBefore:function(e){m(t.pasteRowsBefore)},mceTablePasteRowAfter:function(e){m(t.pasteRowsAfter)},mceTableDelete:function(){f().orThunk(o).each(function(e){gn.table(e,r).filter(g(r)).each(function(e){var t=De.fromText("");Et(e,t),Mt(e);var n=a.dom.createRng();n.setStart(t.dom(),0),n.setEnd(t.dom(),0),a.selection.setRng(n)})})}},function(e,t){a.addCommand(t,e)}),oc({mceInsertTable:b(rc,a),mceTableProps:b(rc,a,!0),mceTableRowProps:b(Ka,a),mceTableCellProps:b(Ya,a)},function(n,e){a.addCommand(e,function(e,t){n(t)})})},uc=function(e){var t=S.from(e.dom().documentElement).map(De.fromDom).getOr(e);return{parent:C(t),view:C(e),origin:C(vo(0,0))}},ac=function(e,t){return{parent:C(t),view:C(e),origin:C(vo(0,0))}};function cc(e){var n=$.apply(null,e),r=[];return{bind:function(e){if(e===undefined)throw"Event bind error: undefined handler";r.push(e)},unbind:function(t){r=I(r,function(e){return e!==t})},trigger:function(){var t=n.apply(null,arguments);P(r,function(e){e(t)})}}}var lc={create:function(e){return{registry:K(e,function(e){return{bind:e.bind,unbind:e.unbind}}),trigger:K(e,function(e){return e.trigger})}}},fc={mode:_u(["compare","extract","mutate","sink"]),sink:_u(["element","start","stop","destroy"]),api:_u(["forceDrop","drop","move","delayDrop"])},sc={resolve:ni("ephox-dragster").resolve},dc=function(m,g){return function(e){if(m(e)){var t,n,r,o,i,u,a,c=De.fromDom(e.target),l=function(){e.stopPropagation()},f=function(){e.preventDefault()},s=x(f,l),d=(t=c,n=e.clientX,r=e.clientY,o=l,i=f,u=s,a=e,{target:C(t),x:C(n),y:C(r),stop:o,prevent:i,kill:u,raw:C(a)});g(d)}}},mc=function(e,t,n,r){return o=e,i=t,u=!1,a=dc(n,r),o.dom().addEventListener(i,a,u),{unbind:b(gc,o,i,a,u)};var o,i,u,a},gc=function(e,t,n,r){e.dom().removeEventListener(t,n,r)},hc=C(!0),pc=function(e,t,n){return mc(e,t,hc,n)},vc=fc.mode({compare:function(e,t){return vo(t.left()-e.left(),t.top()-e.top())},extract:function(e){return S.some(vo(e.x(),e.y()))},sink:function(e,t){var n,r,o,i=(n=t,r=_o({layerClass:sc.resolve("blocker")},n),o=De.fromTag("div"),pe(o,"role","presentation"),Pe(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),Yo(o,sc.resolve("blocker")),Yo(o,r.layerClass),{element:function(){return o},destroy:function(){Mt(o)}}),u=pc(i.element(),"mousedown",e.forceDrop),a=pc(i.element(),"mouseup",e.drop),c=pc(i.element(),"mousemove",e.move),l=pc(i.element(),"mouseout",e.delayDrop);return fc.sink({element:i.element,start:function(e){kt(e,i.element())},stop:function(){Mt(i.element())},destroy:function(){i.destroy(),a.unbind(),c.unbind(),l.unbind(),u.unbind()}})},mutate:function(e,t){e.mutate(t.left(),t.top())}});function bc(){var i=S.none(),u=lc.create({move:cc(["info"])});return{onEvent:function(e,o){o.extract(e).each(function(e){var t,n,r;(t=o,n=e,r=i.map(function(e){return t.compare(e,n)}),i=S.some(n),r).each(function(e){u.trigger.move(e)})})},reset:function(){i=S.none()},events:u.registry}}function wc(){var e={onEvent:function(e,t){},reset:y},t=bc(),n=e;return{on:function(){n.reset(),n=t},off:function(){n.reset(),n=e},isOn:function(){return n===t},onEvent:function(e,t){n.onEvent(e,t)},events:t.events}}var yc=function(t,n,e){var r,o,i,u=!1,a=lc.create({start:cc([]),stop:cc([])}),c=wc(),l=function(){d.stop(),c.isOn()&&(c.off(),a.trigger.stop())},f=(r=l,o=200,i=null,{cancel:function(){null!==i&&(m.clearTimeout(i),i=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null!==i&&m.clearTimeout(i),i=m.setTimeout(function(){r.apply(null,e),i=null},o)}});c.events.move.bind(function(e){n.mutate(t,e.info())});var s=function(t){return function(){var e=Array.prototype.slice.call(arguments,0);if(u)return t.apply(null,e)}},d=n.sink(fc.api({forceDrop:l,drop:s(l),move:s(function(e,t){f.cancel(),c.onEvent(e,n)}),delayDrop:s(f.throttle)}),e);return{element:d.element,go:function(e){d.start(e),c.on(),a.trigger.start()},on:function(){u=!0},off:function(){u=!1},destroy:function(){d.destroy()},events:a.registry}},xc={transform:function(e,t){var n=t!==undefined?t:{},r=n.mode!==undefined?n.mode:vc;return yc(e,r,t)}},Cc=function(e,t,n){return un(e,t,n).isSome()};function Sc(){var n,r=lc.create({drag:cc(["xDelta","yDelta","target"])}),o=S.none(),e={mutate:function(e,t){n.trigger.drag(e,t)},events:(n=lc.create({drag:cc(["xDelta","yDelta"])})).registry};return e.events.drag.bind(function(t){o.each(function(e){r.trigger.drag(t.xDelta(),t.yDelta(),e)})}),{assign:function(e){o=S.some(e)},get:function(){return o},mutate:e.mutate,events:r.registry}}var Rc=ri.resolve("resizer-bar-dragging");function Tc(e,n){var r=ko.height,t=function(o,t,i){var n=Sc(),r=xc.transform(n,{}),u=S.none(),e=function(e,t){return S.from(be(e,t))};n.events.drag.bind(function(n){e(n.target(),"data-row").each(function(e){var t=gu.getInt(n.target(),"top");ke(n.target(),"top",t+n.yDelta()+"px")}),e(n.target(),"data-column").each(function(e){var t=gu.getInt(n.target(),"left");ke(n.target(),"left",t+n.xDelta()+"px")})});var a=function(e,t){return gu.getInt(e,t)-parseInt(be(e,"data-initial-"+t),10)};r.events.stop.bind(function(){n.get().each(function(r){u.each(function(n){e(r,"data-row").each(function(e){var t=a(r,"top");ye(r,"data-initial-top"),d.trigger.adjustHeight(n,t,parseInt(e,10))}),e(r,"data-column").each(function(e){var t=a(r,"left");ye(r,"data-initial-left"),d.trigger.adjustWidth(n,t,parseInt(e,10))}),mi.refresh(o,n,i,t)})})});var c=function(e,t){d.trigger.startAdjust(),n.assign(e),pe(e,"data-initial-"+t,parseInt(Ie(e,t),10)),Yo(e,Rc),ke(e,"opacity","0.2"),r.go(o.parent())},l=pc(o.parent(),"mousedown",function(e){mi.isRowBar(e.target())&&c(e.target(),"top"),mi.isColBar(e.target())&&c(e.target(),"left")}),f=function(e){return bt(e,o.view())},s=pc(o.view(),"mouseover",function(e){"table"===ce(e.target())||Cc(e.target(),"table",f)?(u="table"===ce(e.target())?S.some(e.target()):nn(e.target(),"table",f)).each(function(e){mi.refresh(o,e,i,t)}):Oe(e.target())&&mi.destroy(o)}),d=lc.create({adjustHeight:cc(["table","delta","row"]),adjustWidth:cc(["table","delta","column"]),startAdjust:cc([])});return{destroy:function(){l.unbind(),s.unbind(),r.destroy(),mi.destroy(o)},refresh:function(e){mi.refresh(o,e,i,t)},on:r.on,off:r.off,hideBars:b(mi.hide,o),showBars:b(mi.show,o),events:d.registry}}(e,n,r),o=lc.create({beforeResize:cc(["table"]),afterResize:cc(["table"]),startDrag:cc([])});return t.events.adjustHeight.bind(function(e){o.trigger.beforeResize(e.table());var t=r.delta(e.delta());Pu(e.table(),t,e.row(),r),o.trigger.afterResize(e.table())}),t.events.startAdjust.bind(function(e){o.trigger.startDrag()}),t.events.adjustWidth.bind(function(e){o.trigger.beforeResize(e.table());var t=n.delta(e.delta(),e.table());ku(e.table(),t,e.column(),n),o.trigger.afterResize(e.table())}),{on:t.on,off:t.off,hideBars:t.hideBars,showBars:t.showBars,destroy:t.destroy,events:o.registry}}var Dc=function(e,t){return e.inline?ac(sa(e),(n=De.fromTag("div"),Pe(n,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),kt(Ne(),n),n)):uc(De.fromDom(e.getDoc()));var n},Oc=function(e,t){e.inline&&Mt(t.parent())},Nc=function(u){var a,c,o=S.none(),i=S.none(),l=S.none(),f=/(\d+(\.\d+)?)%/,s=function(e){return"TABLE"===e.nodeName};return u.on("init",function(){var e,t=Io(wa.directionAt),n=Dc(u);if(l=S.some(n),("table"===(e=u.getParam("object_resizing",!0))||e)&&u.getParam("table_resize_bars",!0,"boolean")){var r=Tc(n,t);r.on(),r.events.startDrag.bind(function(e){o=S.some(u.selection.getRng())}),r.events.beforeResize.bind(function(e){var t=e.table().dom();Ia(u,t,da(t),ma(t))}),r.events.afterResize.bind(function(e){var t=e.table(),n=t.dom();pa(t),o.each(function(e){u.selection.setRng(e),u.focus()}),Ba(u,n,da(n),ma(n)),u.undoManager.add()}),i=S.some(r)}}),u.on("ObjectResizeStart",function(e){var t,n=e.target;s(n)&&(a=e.width,t=n,c=u.dom.getStyle(t,"width")||u.dom.getAttrib(t,"width"))}),u.on("ObjectResized",function(e){var t=e.target;if(s(t)){var n=t;if(f.test(c)){var r=parseFloat(f.exec(c)[1]),o=e.width*r/a;u.dom.setStyle(n,"width",o+"%")}else{var i=[];_a.each(n.rows,function(e){_a.each(e.cells,function(e){var t=u.dom.getStyle(e,"width",!0);i.push({cell:e,width:t})})}),_a.each(i,function(e){u.dom.setStyle(e.cell,"width",e.width),u.dom.setAttrib(e.cell,"width",null)})}}}),{lazyResize:function(){return i},lazyWire:function(){return l.getOr(uc(De.fromDom(u.getBody())))},destroy:function(){i.each(function(e){e.destroy()}),l.each(function(e){Oc(u,e)})}}},Ec=function(e){return{fold:e}},Ac=function(o){return Ec(function(e,t,n,r){return e(o)})},kc=function(o){return Ec(function(e,t,n,r){return t(o)})},Pc=function(o,i){return Ec(function(e,t,n,r){return n(o,i)})},Ic=function(o){return Ec(function(e,t,n,r){return r(o)})},Bc=function(n,e){return gn.table(n,e).bind(function(e){var t=gn.cells(e);return L(t,function(e){return bt(n,e)}).map(function(e){return{index:C(e),all:C(t)}})})},Wc=function(t,e){return Bc(t,e).fold(function(){return Ac(t)},function(e){return e.index()+1<e.all().length?Pc(t,e.all()[e.index()+1]):Ic(t)})},Mc=function(t,e){return Bc(t,e).fold(function(){return Ac()},function(e){return 0<=e.index()-1?Pc(t,e.all()[e.index()-1]):kc(t)})},_c=_r([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Lc={before:_c.before,on:_c.on,after:_c.after,cata:function(e,t,n,r){return e.fold(t,n,r)},getStart:function(e){return e.fold(o,o,o)}},jc=_r([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Fc=$("start","soffset","finish","foffset"),zc=function(e){var t,n=e.match({domRange:function(e){return De.fromDom(e.startContainer)},relative:function(e,t){return Lc.getStart(e)},exact:function(e,t,n,r){return e}});return t=n.dom().ownerDocument.defaultView,De.fromDom(t)},Hc=jc.relative,Uc=jc.exact,qc=function(e,t,n,r){var o,i,u,a,c,l=(i=t,u=n,a=r,(c=xt(o=e).dom().createRange()).setStart(o.dom(),i),c.setEnd(u.dom(),a),c),f=bt(e,n)&&t===r;return l.collapsed&&!f},Vc=function(e,t){e.selectNodeContents(t.dom())},Gc=function(e,t,n){var r,o,i=e.document.createRange();return r=i,t.fold(function(e){r.setStartBefore(e.dom())},function(e,t){r.setStart(e.dom(),t)},function(e){r.setStartAfter(e.dom())}),o=i,n.fold(function(e){o.setEndBefore(e.dom())},function(e,t){o.setEnd(e.dom(),t)},function(e){o.setEndAfter(e.dom())}),i},Yc=function(e,t,n,r,o){var i=e.document.createRange();return i.setStart(t.dom(),n),i.setEnd(r.dom(),o),i},Xc=function(e){return{left:C(e.left),top:C(e.top),right:C(e.right),bottom:C(e.bottom),width:C(e.width),height:C(e.height)}},Kc=_r([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Jc=function(e,t,n){return t(De.fromDom(n.startContainer),n.startOffset,De.fromDom(n.endContainer),n.endOffset)},$c=function(e,t){var o,n,r,i=(o=e,t.match({domRange:function(e){return{ltr:C(e),rtl:S.none}},relative:function(e,t){return{ltr:Re(function(){return Gc(o,e,t)}),rtl:Re(function(){return S.some(Gc(o,t,e))})}},exact:function(e,t,n,r){return{ltr:Re(function(){return Yc(o,e,t,n,r)}),rtl:Re(function(){return S.some(Yc(o,n,r,e,t))})}}}));return(r=(n=i).ltr()).collapsed?n.rtl().filter(function(e){return!1===e.collapsed}).map(function(e){return Kc.rtl(De.fromDom(e.endContainer),e.endOffset,De.fromDom(e.startContainer),e.startOffset)}).getOrThunk(function(){return Jc(0,Kc.ltr,r)}):Jc(0,Kc.ltr,r)},Qc=function(i,e){return $c(i,e).match({ltr:function(e,t,n,r){var o=i.document.createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},rtl:function(e,t,n,r){var o=i.document.createRange();return o.setStart(n.dom(),r),o.setEnd(e.dom(),t),o}})},Zc=function(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom},el=function(n,r,e,t,o){var i=function(e){var t=n.dom().createRange();return t.setStart(r.dom(),e),t.collapse(!0),t},u=Sn(r).length,a=function(e,t,n,r,o){if(0===o)return 0;if(t===r)return o-1;for(var i=r,u=1;u<o;u++){var a=e(u),c=Math.abs(t-a.left);if(n<=a.bottom){if(n<a.top||i<c)return u-1;i=c}}return 0}(function(e){return i(e).getBoundingClientRect()},e,t,o.right,u);return i(a)},tl=function(t,n,r,o){var e=t.dom().createRange();e.selectNode(n.dom());var i=e.getClientRects();return jo(i,function(e){return Zc(e,r,o)?S.some(e):S.none()}).map(function(e){return el(t,n,r,o,e)})},nl=function(t,e,n,r){var o=t.dom().createRange(),i=Dt(e);return jo(i,function(e){return o.selectNode(e.dom()),Zc(o.getBoundingClientRect(),n,r)?rl(t,e,n,r):S.none()})},rl=function(e,t,n,r){return(me(t)?tl:nl)(e,t,n,r)},ol=function(e,t){return t-e.left<e.right-t},il=function(e,t,n){var r=e.dom().createRange();return r.selectNode(t.dom()),r.collapse(n),r},ul=function(t,e,n){var r=t.dom().createRange();r.selectNode(e.dom());var o=r.getBoundingClientRect(),i=ol(o,n);return(!0===i?En:An)(e).map(function(e){return il(t,e,i)})},al=function(e,t,n){var r=t.dom().getBoundingClientRect(),o=ol(r,n);return S.some(il(e,t,o))},cl=function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect();return function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return rl(e,t,u,a)}(e,t,Math.max(i.left,Math.min(i.right,n)),Math.max(i.top,Math.min(i.bottom,r)))},ll=document.caretPositionFromPoint?function(n,e,t){return S.from(n.dom().caretPositionFromPoint(e,t)).bind(function(e){if(null===e.offsetNode)return S.none();var t=n.dom().createRange();return t.setStart(e.offsetNode,e.offset),t.collapse(),S.some(t)})}:document.caretRangeFromPoint?function(e,t,n){return S.from(e.dom().caretRangeFromPoint(t,n))}:function(o,i,t){return De.fromPoint(o,i,t).bind(function(r){var e=function(){return e=o,n=i,(0===Dt(t=r).length?al:ul)(e,t,n);var e,t,n};return 0===Dt(r).length?e():cl(o,r,i,t).orThunk(e)})},fl=function(e,t){var n=ce(e);return"input"===n?Lc.after(e):E(["br","img"],n)?0===t?Lc.before(e):Lc.after(e):Lc.on(e,t)},sl=function(e,t){var n=e.fold(Lc.before,fl,Lc.after),r=t.fold(Lc.before,fl,Lc.after);return Hc(n,r)},dl=function(e,t,n,r){var o=fl(e,t),i=fl(n,r);return Hc(o,i)},ml=function(e,t){S.from(e.getSelection()).each(function(e){e.removeAllRanges(),e.addRange(t)})},gl=function(e,t,n,r,o){var i=Yc(e,t,n,r,o);ml(e,i)},hl=function(s,e){return $c(s,e).match({ltr:function(e,t,n,r){gl(s,e,t,n,r)},rtl:function(e,t,n,r){var o,i,u,a,c,l=s.getSelection();if(l.setBaseAndExtent)l.setBaseAndExtent(e.dom(),t,n.dom(),r);else if(l.extend)try{i=e,u=t,a=n,c=r,(o=l).collapse(i.dom(),u),o.extend(a.dom(),c)}catch(f){gl(s,n,r,e,t)}else gl(s,n,r,e,t)}})},pl=function(e){var o=zc(e).dom(),t=function(e,t,n,r){return Yc(o,e,t,n,r)},n=e.match({domRange:function(e){var t=De.fromDom(e.startContainer),n=De.fromDom(e.endContainer);return dl(t,e.startOffset,n,e.endOffset)},relative:sl,exact:dl});return $c(o,n).match({ltr:t,rtl:t})},vl=function(e){var t=De.fromDom(e.anchorNode),n=De.fromDom(e.focusNode);return qc(t,e.anchorOffset,n,e.focusOffset)?S.some(Fc(t,e.anchorOffset,n,e.focusOffset)):function(e){if(0<e.rangeCount){var t=e.getRangeAt(0),n=e.getRangeAt(e.rangeCount-1);return S.some(Fc(De.fromDom(t.startContainer),t.startOffset,De.fromDom(n.endContainer),n.endOffset))}return S.none()}(e)},bl=function(e,t){var n,r,o=(n=t,r=e.document.createRange(),Vc(r,n),r);ml(e,o)},wl=function(e){return(t=e,S.from(t.getSelection()).filter(function(e){return 0<e.rangeCount}).bind(vl)).map(function(e){return Uc(e.start(),e.soffset(),e.finish(),e.foffset())});var t},yl=function(e,t){var n,r,o,i=Qc(e,t);return r=(n=i).getClientRects(),0<(o=0<r.length?r[0]:n.getBoundingClientRect()).width||0<o.height?S.some(o).map(Xc):S.none()},xl=function(e,t,n){return r=e,o=t,i=n,u=De.fromDom(r.document),ll(u,o,i).map(function(e){return Fc(De.fromDom(e.startContainer),e.startOffset,De.fromDom(e.endContainer),e.endOffset)});var r,o,i,u},Cl=tinymce.util.Tools.resolve("tinymce.util.VK"),Sl=function(e,t,n,r){return Ol(e,t,Wc(n),r)},Rl=function(e,t,n,r){return Ol(e,t,Mc(n),r)},Tl=function(e,t){var n=Uc(t,0,t,0);return pl(n)},Dl=function(e,t){var n,r=Xt(t,"tr");return(n=r,0===n.length?S.none():S.some(n[n.length-1])).bind(function(e){return on(e,"td,th").map(function(e){return Tl(0,e)})})},Ol=function(r,e,t,o,n){return t.fold(S.none,S.none,function(e,t){return En(t).map(function(e){return Tl(0,e)})},function(n){return gn.table(n,e).bind(function(e){var t=Gr.noMenu(n);return r.undoManager.transact(function(){o.insertRowsAfter(e,t)}),Dl(0,e)})})},Nl=["table","li","dl"],El=function(t,n,r,o){if(t.keyCode===Cl.TAB){var i=sa(n),u=function(e){var t=ce(e);return bt(e,i)||E(Nl,t)},e=n.selection.getRng();if(e.collapsed){var a=De.fromDom(e.startContainer);gn.cell(a,u).each(function(e){t.preventDefault(),(t.shiftKey?Rl:Sl)(n,u,e,r,o).each(function(e){n.selection.setRng(e)})})}}},Al={response:$("selection","kill")},kl=function(t){return function(e){return e===t}},Pl=kl(38),Il=kl(40),Bl={ltr:{isBackward:kl(37),isForward:kl(39)},rtl:{isBackward:kl(39),isForward:kl(37)},isUp:Pl,isDown:Il,isNavigation:function(e){return 37<=e&&e<=40}},Wl=function(e,t){var n=Qc(e,t);return{start:C(De.fromDom(n.startContainer)),soffset:C(n.startOffset),finish:C(De.fromDom(n.endContainer)),foffset:C(n.endOffset)}},Ml=function(e,t,n,r){return{start:C(Lc.on(e,t)),finish:C(Lc.on(n,r))}};function _l(a){return{elementFromPoint:function(e,t){return De.fromPoint(De.fromDom(a.document),e,t)},getRect:function(e){return e.dom().getBoundingClientRect()},getRangedRect:function(e,t,n,r){var o=Uc(e,t,n,r);return yl(a,o).map(function(e){return K(e,c)})},getSelection:function(){return wl(a).map(function(e){return Wl(a,e)})},fromSitus:function(e){var t=Hc(e.start(),e.finish());return Wl(a,t)},situsFromPoint:function(e,t){return xl(a,e,t).map(function(e){return{start:C(Lc.on(e.start(),e.soffset())),finish:C(Lc.on(e.finish(),e.foffset()))}})},clearSelection:function(){a.getSelection().removeAllRanges()},setSelection:function(e){var t,n,r,o,i,u;t=a,n=e.start(),r=e.soffset(),o=e.finish(),i=e.foffset(),u=dl(n,r,o,i),hl(t,u)},setRelativeSelection:function(e,t){var n,r;n=a,r=sl(e,t),hl(n,r)},selectContents:function(e){bl(a,e)},getInnerHeight:function(){return a.innerHeight},getScrollY:function(){var e,t,n,r;return(e=De.fromDom(a.document),t=e!==undefined?e.dom():m.document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop,vo(n,r)).top()},scrollBy:function(e,t){var n,r,o;n=e,r=t,((o=De.fromDom(a.document))!==undefined?o.dom():m.document).defaultView.scrollBy(n,r)}}}mt.detect().browser.isSafari();var Ll=function(n,e,r,t,o){return bt(r,t)?S.none():Or(r,t,e).bind(function(e){var t=e.boxes().getOr([]);return 0<t.length?(o(n,t,e.start(),e.finish()),S.some(Al.response(S.some(Ml(r,0,r,Dn(r))),!0))):S.none()})},jl={sync:function(n,r,e,t,o,i,u){return bt(e,o)&&t===i?S.none():un(e,"td,th",r).bind(function(t){return un(o,"td,th",r).bind(function(e){return Ll(n,r,t,e,u)})})},detect:Ll,update:function(e,t,n,r,o){return Er(r,e,t,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(e){return o.clear(n),o.selectRange(n,e.boxes(),e.start(),e.finish()),e.boxes()})}},Fl=re(["left","top","right","bottom"],[]),zl={nu:Fl,moveUp:function(e,t){return Fl({left:e.left(),top:e.top()-t,right:e.right(),bottom:e.bottom()-t})},moveDown:function(e,t){return Fl({left:e.left(),top:e.top()+t,right:e.right(),bottom:e.bottom()+t})},moveBottomTo:function(e,t){var n=e.bottom()-e.top();return Fl({left:e.left(),top:t-n,right:e.right(),bottom:t})},moveTopTo:function(e,t){var n=e.bottom()-e.top();return Fl({left:e.left(),top:t,right:e.right(),bottom:t+n})},getTop:function(e){return e.top()},getBottom:function(e){return e.bottom()},translate:function(e,t,n){return Fl({left:e.left()+t,top:e.top()+n,right:e.right()+t,bottom:e.bottom()+n})},toString:function(e){return"("+e.left()+", "+e.top()+") -> ("+e.right()+", "+e.bottom()+")"}},Hl=function(e){return zl.nu({left:e.left,top:e.top,right:e.right,bottom:e.bottom})},Ul=function(e,t){return S.some(e.getRect(t))},ql=function(e,t,n){return de(t)?Ul(e,t).map(Hl):me(t)?(r=e,o=t,i=n,0<=i&&i<Dn(o)?r.getRangedRect(o,i,o,i+1):0<i?r.getRangedRect(o,i-1,o,i):S.none()).map(Hl):S.none();var r,o,i},Vl=function(e,t){return de(t)?Ul(e,t).map(Hl):me(t)?e.getRangedRect(t,0,t,Dn(t)).map(Hl):S.none()},Gl=$("item","mode"),Yl=function(e,t,n,r){return void 0===r&&(r=Xl),e.property().parent(t).map(function(e){return Gl(e,r)})},Xl=function(e,t,n,r){return void 0===r&&(r=Kl),n.sibling(e,t).map(function(e){return Gl(e,r)})},Kl=function(e,t,n,r){void 0===r&&(r=Kl);var o=e.property().children(t);return n.first(o).map(function(e){return Gl(e,r)})},Jl=[{current:Yl,next:Xl,fallback:S.none()},{current:Xl,next:Kl,fallback:S.some(Yl)},{current:Kl,next:Kl,fallback:S.some(Xl)}],$l=function(t,n,r,o,e){return void 0===e&&(e=Jl),_(e,function(e){return e.current===r}).bind(function(e){return e.current(t,n,o,e.next).orThunk(function(){return e.fallback.bind(function(e){return $l(t,n,e,o)})})})},Ql=function(){return{sibling:function(e,t){return e.query().prevSibling(t)},first:function(e){return 0<e.length?S.some(e[e.length-1]):S.none()}}},Zl=function(){return{sibling:function(e,t){return e.query().nextSibling(t)},first:function(e){return 0<e.length?S.some(e[0]):S.none()}}},ef=function(t,e,n,r,o,i){return $l(t,e,r,o).bind(function(e){return i(e.item())?S.none():n(e.item())?S.some(e.item()):ef(t,e.item(),n,e.mode(),o,i)})},tf=function(t){return function(e){return 0===t.property().children(e).length}},nf=function(e,t,n,r){return ef(e,t,n,Xl,Ql(),r)},rf=function(e,t,n,r){return ef(e,t,n,Xl,Zl(),r)},of=Un(),uf=function(e,t){return r=t,nf(n=of,e,tf(n),r);var n,r},af=function(e,t){return r=t,rf(n=of,e,tf(n),r);var n,r},cf=_r([{none:[]},{retry:["caret"]}]),lf=function(t,e,r){return(n=e,o=Ju,Kt(function(e){return o(e)},tn,n,o,i)).fold(C(!1),function(e){return Vl(t,e).exists(function(e){return n=e,(t=r).left()<n.left()||Math.abs(n.right()-t.left())<1||t.left()>n.right();var t,n})});var n,o,i},ff={point:zl.getTop,adjuster:function(e,t,n,r,o){var i=zl.moveUp(o,5);return Math.abs(n.top()-r.top())<1?cf.retry(i):n.bottom()<o.top()?cf.retry(i):n.bottom()===o.top()?cf.retry(zl.moveUp(o,1)):lf(e,t,o)?cf.retry(zl.translate(i,5,0)):cf.none()},move:zl.moveUp,gather:uf},sf={point:zl.getBottom,adjuster:function(e,t,n,r,o){var i=zl.moveDown(o,5);return Math.abs(n.bottom()-r.bottom())<1?cf.retry(i):n.top()>o.bottom()?cf.retry(i):n.top()===o.bottom()?cf.retry(zl.moveDown(o,1)):lf(e,t,o)?cf.retry(zl.translate(i,5,0)):cf.none()},move:zl.moveDown,gather:af},df=function(n,r,o,i,u){return 0===u?S.some(i):(c=n,l=i.left(),f=r.point(i),c.elementFromPoint(l,f).filter(function(e){return"table"===ce(e)}).isSome()?(t=i,a=u-1,df(n,e=r,o,e.move(t,5),a)):n.situsFromPoint(i.left(),r.point(i)).bind(function(e){return e.start().fold(S.none,function(t,e){return Vl(n,t,e).bind(function(e){return r.adjuster(n,t,e,o,i).fold(S.none,function(e){return df(n,r,o,e,u-1)})}).orThunk(function(){return S.some(i)})},S.none)}));var e,t,a,c,l,f},mf=function(t,n,e){var r,o,i,u=t.move(e,5),a=df(n,t,e,u,100).getOr(u);return(r=t,o=a,i=n,r.point(o)>i.getInnerHeight()?S.some(r.point(o)-i.getInnerHeight()):r.point(o)<0?S.some(-r.point(o)):S.none()).fold(function(){return n.situsFromPoint(a.left(),t.point(a))},function(e){return n.scrollBy(0,e),n.situsFromPoint(a.left(),t.point(a)-e)})},gf={tryUp:b(mf,ff),tryDown:b(mf,sf),ieTryUp:function(e,t){return e.situsFromPoint(t.left(),t.top()-5)},ieTryDown:function(e,t){return e.situsFromPoint(t.left(),t.bottom()+5)},getJumpSize:C(5)},hf=_r([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}]),pf=function(e){return un(e,"tr")},vf={verify:function(a,e,t,n,r,c,o){return un(n,"td,th",o).bind(function(u){return un(e,"td,th",o).map(function(i){return bt(u,i)?bt(n,u)&&Dn(u)===r?c(i):hf.none("in same cell"):lr.sharedOne(pf,[u,i]).fold(function(){return t=i,n=u,r=(e=a).getRect(t),(o=e.getRect(n)).right>r.left&&o.left<r.right?hf.success():c(i);var e,t,n,r,o},function(e){return c(i)})})}).getOr(hf.none("default"))},cata:function(e,t,n,r,o){return e.fold(t,n,r,o)},adt:hf},bf=$("element","offset"),wf=($("element","deltaOffset"),$("element","start","finish"),$("begin","end"),$("element","text"),$("ancestor","descendants","element","index"),$("parent","children","element","index")),yf=function(e,t){return L(e,b(bt,t))},xf=function(e){return"br"===ce(e)},Cf=function(e,t,n){return t(e,n).bind(function(e){return me(e)&&0===Sn(e).trim().length?Cf(e,t,n):S.some(e)})},Sf=function(t,e,n,r){return(o=e,i=n,Ot(o,i).filter(xf).orThunk(function(){return Ot(o,i-1).filter(xf)})).bind(function(e){return r.traverse(e).fold(function(){return Cf(e,r.gather,t).map(r.relative)},function(e){return(r=e,Ct(r).bind(function(t){var n=Dt(t);return yf(n,r).map(function(e){return wf(t,n,r,e)})})).map(function(e){return Lc.on(e.parent(),e.index())});var r})});var o,i},Rf=function(e,t,n,r){var o,i,u;return(xf(t)?(o=e,i=t,(u=r).traverse(i).orThunk(function(){return Cf(i,u.gather,o)}).map(u.relative)):Sf(e,t,n,r)).map(function(e){return{start:C(e),finish:C(e)}})},Tf=function(e){return vf.cata(e,function(e){return S.none()},function(){return S.none()},function(e){return S.some(bf(e,0))},function(e){return S.some(bf(e,Dn(e)))})},Df=mt.detect(),Of=function(r,o,i,u,a,c){return 0===c?S.none():Af(r,o,i,u,a).bind(function(e){var t=r.fromSitus(e),n=vf.verify(r,i,u,t.finish(),t.foffset(),a.failure,o);return vf.cata(n,function(){return S.none()},function(){return S.some(e)},function(e){return bt(i,e)&&0===u?Nf(r,i,u,zl.moveUp,a):Of(r,o,e,0,a,c-1)},function(e){return bt(i,e)&&u===Dn(e)?Nf(r,i,u,zl.moveDown,a):Of(r,o,e,Dn(e),a,c-1)})})},Nf=function(t,e,n,r,o){return ql(t,e,n).bind(function(e){return Ef(t,o,r(e,gf.getJumpSize()))})},Ef=function(e,t,n){return Df.browser.isChrome()||Df.browser.isSafari()||Df.browser.isFirefox()||Df.browser.isEdge()?t.otherRetry(e,n):Df.browser.isIE()?t.ieRetry(e,n):S.none()},Af=function(t,e,n,r,o){return ql(t,n,r).bind(function(e){return Ef(t,o,e)})},kf=function(t,n,r){return(o=t,i=n,u=r,o.getSelection().bind(function(r){return Rf(i,r.finish(),r.foffset(),u).fold(function(){return S.some(bf(r.finish(),r.foffset()))},function(e){var t=o.fromSitus(e),n=vf.verify(o,r.finish(),r.foffset(),t.finish(),t.foffset(),u.failure,i);return Tf(n)})})).bind(function(e){return Of(t,n,e.element(),e.offset(),r,20).map(t.fromSitus)});var o,i,u},Pf=mt.detect(),If=function(e,t){return tn(e,function(e){return Ct(e).exists(function(e){return bt(e,t)})},n).isSome();var n},Bf=function(t,r,o,e,i){return un(e,"td,th",r).bind(function(n){return un(n,"table",r).bind(function(e){return If(i,e)?kf(t,r,o).bind(function(t){return un(t.finish(),"td,th",r).map(function(e){return{start:C(n),finish:C(e),range:C(t)}})}):S.none()})})},Wf=function(e,t,n,r,o,i){return Pf.browser.isIE()?S.none():i(r,t).orThunk(function(){return Bf(e,t,n,r,o).map(function(e){var t=e.range();return Al.response(S.some(Ml(t.start(),t.soffset(),t.finish(),t.foffset())),!0)})})},Mf=function(e,t,n,r,o,i,u){return Bf(e,n,r,o,i).bind(function(e){return jl.detect(t,n,e.start(),e.finish(),u)})},_f=function(e,u){return un(e,"tr",u).bind(function(i){return un(i,"table",u).bind(function(e){var t,n,r,o=Xt(e,"tr");return bt(i,o[0])?(t=e,n=function(e){return An(e).isSome()},r=u,nf(of,t,n,r)).map(function(e){var t=Dn(e);return Al.response(S.some(Ml(e,t,e,t)),!0)}):S.none()})})},Lf=function(e,u){return un(e,"tr",u).bind(function(i){return un(i,"table",u).bind(function(e){var t,n,r,o=Xt(e,"tr");return bt(i,o[o.length-1])?(t=e,n=function(e){return En(e).isSome()},r=u,rf(of,t,n,r)).map(function(e){return Al.response(S.some(Ml(e,0,e,0)),!0)}):S.none()})})},jf=function(e,t){return un(e,"td,th",t)},Ff={down:{traverse:Tt,gather:af,relative:Lc.before,otherRetry:gf.tryDown,ieRetry:gf.ieTryDown,failure:vf.adt.failedDown},up:{traverse:Rt,gather:uf,relative:Lc.before,otherRetry:gf.tryUp,ieRetry:gf.ieTryUp,failure:vf.adt.failedUp}},zf=$("rows","cols"),Hf={mouse:function(e,t,n,r){var o,i,u,a,c,l,f=_l(e),s=(o=f,i=t,u=n,a=r,c=S.none(),l=function(){c=S.none()},{mousedown:function(e){a.clear(i),c=jf(e.target(),u)},mouseover:function(e){c.each(function(r){a.clear(i),jf(e.target(),u).each(function(n){Or(r,n,u).each(function(e){var t=e.boxes().getOr([]);(1<t.length||1===t.length&&!bt(r,n))&&(a.selectRange(i,t,e.start(),e.finish()),o.selectContents(n))})})})},mouseup:function(){c.each(l)}});return{mousedown:s.mousedown,mouseover:s.mouseover,mouseup:s.mouseup}},keyboard:function(e,c,l,f){var s=_l(e),d=function(){return f.clear(c),S.none()};return{keydown:function(e,t,n,r,o,i){var u=e.raw().which,a=!0===e.raw().shiftKey;return Nr(c,f.selectedSelector()).fold(function(){return Bl.isDown(u)&&a?b(Mf,s,c,l,Ff.down,r,t,f.selectRange):Bl.isUp(u)&&a?b(Mf,s,c,l,Ff.up,r,t,f.selectRange):Bl.isDown(u)?b(Wf,s,l,Ff.down,r,t,Lf):Bl.isUp(u)?b(Wf,s,l,Ff.up,r,t,_f):S.none},function(t){var e=function(e){return function(){return jo(e,function(e){return jl.update(e.rows(),e.cols(),c,t,f)}).fold(function(){return Ar(c,f.firstSelectedSelector(),f.lastSelectedSelector()).map(function(e){var t=Bl.isDown(u)||i.isForward(u)?Lc.after:Lc.before;return s.setRelativeSelection(Lc.on(e.first(),0),t(e.table())),f.clear(c),Al.response(S.none(),!0)})},function(e){return S.some(Al.response(S.none(),!0))})}};return Bl.isDown(u)&&a?e([zf(1,0)]):Bl.isUp(u)&&a?e([zf(-1,0)]):i.isBackward(u)&&a?e([zf(0,-1),zf(-1,0)]):i.isForward(u)&&a?e([zf(0,1),zf(1,0)]):Bl.isNavigation(u)&&!1===a?d:S.none})()},keyup:function(t,n,r,o,i){return Nr(c,f.selectedSelector()).fold(function(){var e=t.raw().which;return 0==(!0===t.raw().shiftKey)?S.none():Bl.isNavigation(e)?jl.sync(c,l,n,r,o,i,f.selectRange):S.none()},S.none)}}}},Uf=function(r,e){P(e,function(e){var t,n;n=e,qo(t=r)?t.dom().classList.remove(n):Go(t,n),Xo(t)})},qf={byClass:function(o){var t,n,i=(t=o.selected(),function(e){Yo(e,t)}),r=(n=[o.selected(),o.lastSelected(),o.firstSelected()],function(e){Uf(e,n)}),u=function(e){var t=Xt(e,o.selectedSelector());P(t,r)};return{clear:u,selectRange:function(e,t,n,r){u(e),P(t,i),Yo(n,o.firstSelected()),Yo(r,o.lastSelected())},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}},byAttr:function(o){var n=function(e){ye(e,o.selected()),ye(e,o.firstSelected()),ye(e,o.lastSelected())},i=function(e){pe(e,o.selected(),"1")},u=function(e){var t=Xt(e,o.selectedSelector());P(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),P(t,i),pe(n,o.firstSelected(),"1"),pe(r,o.lastSelected(),"1")},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}}},Vf=function(e){return!1===Ko(De.fromDom(e.target),"ephox-snooker-resizer-bar")};function Gf(h,p){var v=re(["mousedown","mouseover","mouseup","keyup","keydown"],[]),b=S.none(),w=qf.byAttr(Mr);return h.on("init",function(e){var r=h.getWin(),o=sa(h),t=ga(h),n=Hf.mouse(r,o,t,w),a=Hf.keyboard(r,o,t,w),c=function(e,t){!0===e.raw().shiftKey&&(t.kill()&&e.kill(),t.selection().each(function(e){var t=Hc(e.start(),e.finish()),n=Qc(r,t);h.selection.setRng(n)}))},i=function(e){var t=f(e);if(t.raw().shiftKey&&Bl.isNavigation(t.raw().which)){var n=h.selection.getRng(),r=De.fromDom(n.startContainer),o=De.fromDom(n.endContainer);a.keyup(t,r,n.startOffset,o,n.endOffset).each(function(e){c(t,e)})}},u=function(e){var t=f(e);p().each(function(e){e.hideBars()});var n=h.selection.getRng(),r=De.fromDom(h.selection.getStart()),o=De.fromDom(n.startContainer),i=De.fromDom(n.endContainer),u=wa.directionAt(r).isRtl()?Bl.rtl:Bl.ltr;a.keydown(t,o,n.startOffset,i,n.endOffset,u).each(function(e){c(t,e)}),p().each(function(e){e.showBars()})},l=function(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")},f=function(e){var t=De.fromDom(e.target),n=function(){e.stopPropagation()},r=function(){e.preventDefault()},o=x(r,n);return{target:C(t),x:C(l(e)?e.x:null),y:C(l(e)?e.y:null),stop:n,prevent:r,kill:o,raw:C(e)}},s=function(e){return 0===e.button},d=function(e){s(e)&&Vf(e)&&n.mousedown(f(e))},m=function(e){var t;(t=e).buttons!==undefined&&0==(1&t.buttons)||!Vf(e)||n.mouseover(f(e))},g=function(e){s(e)&&Vf(e)&&n.mouseup(f(e))};h.on("mousedown",d),h.on("mouseover",m),h.on("mouseup",g),h.on("keyup",i),h.on("keydown",u),h.on("nodechange",function(){var e=h.selection,t=De.fromDom(e.getStart()),n=De.fromDom(e.getEnd());lr.sharedOne(gn.table,[t,n]).fold(function(){w.clear(o)},y)}),b=S.some(v({mousedown:d,mouseover:m,mouseup:g,keyup:i,keydown:u}))}),{clear:w.clear,destroy:function(){b.each(function(e){})}}}var Yf=_a.each,Xf=function(t){var n=[];function e(e){return function(){t.execCommand(e)}}Yf("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"===e?n.push({text:"-"}):n.push(t.menuItems[e])}),t.addButton("table",{type:"menubutton",title:"Table",menu:n}),t.addButton("tableprops",{title:"Table properties",onclick:e("mceTableProps"),icon:"table"}),t.addButton("tabledelete",{title:"Delete table",onclick:e("mceTableDelete")}),t.addButton("tablecellprops",{title:"Cell properties",onclick:e("mceTableCellProps")}),t.addButton("tablemergecells",{title:"Merge cells",onclick:e("mceTableMergeCells")}),t.addButton("tablesplitcells",{title:"Split cell",onclick:e("mceTableSplitCells")}),t.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:e("mceTableInsertRowBefore")}),t.addButton("tableinsertrowafter",{title:"Insert row after",onclick:e("mceTableInsertRowAfter")}),t.addButton("tabledeleterow",{title:"Delete row",onclick:e("mceTableDeleteRow")}),t.addButton("tablerowprops",{title:"Row properties",onclick:e("mceTableRowProps")}),t.addButton("tablecutrow",{title:"Cut row",onclick:e("mceTableCutRow")}),t.addButton("tablecopyrow",{title:"Copy row",onclick:e("mceTableCopyRow")}),t.addButton("tablepasterowbefore",{title:"Paste row before",onclick:e("mceTablePasteRowBefore")}),t.addButton("tablepasterowafter",{title:"Paste row after",onclick:e("mceTablePasteRowAfter")}),t.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:e("mceTableInsertColBefore")}),t.addButton("tableinsertcolafter",{title:"Insert column after",onclick:e("mceTableInsertColAfter")}),t.addButton("tabledeletecol",{title:"Delete column",onclick:e("mceTableDeleteCol")})},Kf=function(t){var e,n=""===(e=t.getParam("table_toolbar",ya))||!1===e?[]:w(e)?e.split(/[ ,]/):R(e)?e:[];0<n.length&&t.addContextToolbar(function(e){return t.dom.is(e,"table")&&t.getBody().contains(e)},n.join(" "))},Jf=function(o,n){var r=S.none(),i=[],u=[],a=[],c=[],l=function(e){e.disabled(!0)},f=function(e){e.disabled(!1)},e=function(){var t=this;i.push(t),r.fold(function(){l(t)},function(e){f(t)})},t=function(){var t=this;u.push(t),r.fold(function(){l(t)},function(e){f(t)})};o.on("init",function(){o.on("nodechange",function(e){var t=S.from(o.dom.getParent(o.selection.getStart(),"th,td"));(r=t.bind(function(e){var t=De.fromDom(e);return gn.table(t).map(function(e){return Gr.forMenu(n,e,t)})})).fold(function(){P(i,l),P(u,l),P(a,l),P(c,l)},function(t){P(i,f),P(u,f),P(a,function(e){e.disabled(t.mergable().isNone())}),P(c,function(e){e.disabled(t.unmergable().isNone())})})})});var s=function(e,t,n,r){var o,i,u,a,c,l=r.getEl().getElementsByTagName("table")[0],f=r.isRtl()||"tl-tr"===r.parent().rel;for(l.nextSibling.innerHTML=t+1+" x "+(n+1),f&&(t=9-t),i=0;i<10;i++)for(o=0;o<10;o++)a=l.rows[i].childNodes[o].firstChild,c=(f?t<=o:o<=t)&&i<=n,e.dom.toggleClass(a,"mce-active",c),c&&(u=a);return u.parentNode},d=!1===o.getParam("table_grid",!0,"boolean")?{text:"Table",icon:"table",context:"table",onclick:m("mceInsertTable")}:{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),o.execCommand("mceInsertTable"))},onshow:function(){s(o,0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){e+="<tr>";for(var n=0;n<10;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"===r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"===this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(s(o,t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"===e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){ec(o,t.lastX+1,t.lastY+1)}),o.addVisual())}}]};function m(e){return function(){o.execCommand(e)}}var g={text:"Table properties",context:"table",onPostRender:e,onclick:m("mceTableProps")},h={text:"Delete table",context:"table",onPostRender:e,cmd:"mceTableDelete"},p={text:"Row",context:"table",menu:[{text:"Insert row before",onclick:m("mceTableInsertRowBefore"),onPostRender:t},{text:"Insert row after",onclick:m("mceTableInsertRowAfter"),onPostRender:t},{text:"Delete row",onclick:m("mceTableDeleteRow"),onPostRender:t},{text:"Row properties",onclick:m("mceTableRowProps"),onPostRender:t},{text:"-"},{text:"Cut row",onclick:m("mceTableCutRow"),onPostRender:t},{text:"Copy row",onclick:m("mceTableCopyRow"),onPostRender:t},{text:"Paste row before",onclick:m("mceTablePasteRowBefore"),onPostRender:t},{text:"Paste row after",onclick:m("mceTablePasteRowAfter"),onPostRender:t}]},v={text:"Column",context:"table",menu:[{text:"Insert column before",onclick:m("mceTableInsertColBefore"),onPostRender:t},{text:"Insert column after",onclick:m("mceTableInsertColAfter"),onPostRender:t},{text:"Delete column",onclick:m("mceTableDeleteCol"),onPostRender:t}]},b={separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:m("mceTableCellProps"),onPostRender:t},{text:"Merge cells",onclick:m("mceTableMergeCells"),onPostRender:function(){var t=this;a.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.mergable().isNone())})}},{text:"Split cell",onclick:m("mceTableSplitCells"),onPostRender:function(){var t=this;c.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.unmergable().isNone())})}}]};o.addMenuItem("inserttable",d),o.addMenuItem("tableprops",g),o.addMenuItem("deletetable",h),o.addMenuItem("row",p),o.addMenuItem("column",v),o.addMenuItem("cell",b)},$f=function(n,r){return{insertTable:function(e,t){return ec(n,e,t)},setClipboardRows:function(e){return t=r,n=k(e,De.fromDom),void t.set(S.from(n));var t,n},getClipboardRows:function(){return r.get().fold(function(){},function(e){return k(e,function(e){return e.dom()})})}}};e.add("table",function(t){var n,r=Nc(t),e=Gf(t,r.lazyResize),o=Wa(t,r.lazyWire),i=(n=t,{get:function(){var e=sa(n);return kr(e,Mr.selectedSelector()).fold(function(){return n.selection.getStart()===undefined?jr.none():jr.single(n.selection)},function(e){return jr.multiple(e)})}}),u=Bu(S.none());return ic(t,o,e,i,u),Yr(t,i,o,e),Jf(t,i),Xf(t),Kf(t),t.on("PreInit",function(){t.serializer.addTempAttr(Mr.firstSelected()),t.serializer.addTempAttr(Mr.lastSelected())}),t.getParam("table_tab_navigation",!0,"boolean")&&t.on("keydown",function(e){El(e,t,o,r.lazyWire)}),t.on("remove",function(){r.destroy(),e.destroy()}),$f(t,u)})}(window);
1
+ !function(m){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),y=function(){},x=function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,e))}},C=function(e){return function(){return e}},o=function(e){return e};function b(r){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=o.concat(e);return r.apply(null,n)}}var t,n,r,i,u,g=function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,e)}},f=C(!1),a=C(!0),c=f,l=a,s=function(){return d},d=(i={fold:function(e,t){return e()},is:c,isSome:c,isNone:l,getOr:r=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:r,orThunk:n,map:s,ap:s,each:function(){},bind:s,flatten:s,exists:c,forall:l,filter:s,equals:t=function(e){return e.isNone()},equals_:t,toArray:function(){return[]},toString:C("none()")},Object.freeze&&Object.freeze(i),i),h=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:l,isNone:c,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return h(e(n))},ap:function(e){return e.fold(s,function(e){return h(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:d},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(c,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},S={some:h,none:s,from:function(e){return null===e||e===undefined?d:h(e)}},p=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"===t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===t}},v=p("string"),w=p("array"),R=p("boolean"),T=p("function"),D=p("number"),O=Array.prototype.slice,N=(u=Array.prototype.indexOf)===undefined?function(e,t){return L(e,t)}:function(e,t){return u.call(e,t)},E=function(e,t){return-1<N(e,t)},k=function(e,t){return _(e,t).isSome()},A=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},P=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},I=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},B=function(e,t,n){return function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)}(e,function(e){n=t(n,e)}),n},W=function(e,t,n){return P(e,function(e){n=t(n,e)}),n},M=function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return S.some(o)}return S.none()},_=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return S.some(n);return S.none()},L=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},F=Array.prototype.push,j=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!w(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);F.apply(t,e[n])}return t},z=function(e,t){var n=A(e,t);return j(n)},H=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},U=function(e){var t=O.call(e,0);return t.reverse(),t},q=(T(Array.from)&&Array.from,Object.keys),V=function(e,t){for(var n=q(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},G=function(e,r){return Y(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},Y=function(r,o){var i={};return V(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},X=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return P(t,function(e,t){r[e]=C(n[t])}),r}},K=function(e){return e.slice(0).sort()},J=function(e,t){throw new Error("All required keys ("+K(e).join(", ")+") were not specified. Specified keys were: "+K(t).join(", ")+".")},$=function(e){throw new Error("Unsupported keys for object: "+K(e).join(", "))},Q=function(t,e){if(!w(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");P(e,function(e){if(!v(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},Z=function(e){var n=K(e);M(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})},ee=function(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return Q("required",o),Q("optional",i),Z(u),function(t){var n=q(t);H(o,function(e){return E(n,e)})||J(o,n);var e=I(n,function(e){return!E(u,e)});0<e.length&&$(e);var r={};return P(o,function(e){r[e]=C(t[e])}),P(i,function(e){r[e]=C(Object.prototype.hasOwnProperty.call(t,e)?S.some(t[e]):S.none())}),r}},te=(m.Node.ATTRIBUTE_NODE,m.Node.CDATA_SECTION_NODE,m.Node.COMMENT_NODE),ne=m.Node.DOCUMENT_NODE,re=(m.Node.DOCUMENT_TYPE_NODE,m.Node.DOCUMENT_FRAGMENT_NODE,m.Node.ELEMENT_NODE),oe=m.Node.TEXT_NODE,ie=(m.Node.PROCESSING_INSTRUCTION_NODE,m.Node.ENTITY_REFERENCE_NODE,m.Node.ENTITY_NODE,m.Node.NOTATION_NODE,"undefined"!=typeof m.window?m.window:Function("return this;")()),ue=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:ie,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},ae=function(e,t){var n=ue(e,t);if(n===undefined||null===n)throw new Error(e+" not available on this browser");return n},ce=function(e){return e.dom().nodeName.toLowerCase()},le=function(e){return e.dom().nodeType},fe=function(t){return function(e){return le(e)===t}},se=function(e){return le(e)===te||"#comment"===ce(e)},de=fe(re),me=fe(oe),ge=function(e,t,n){if(!(v(n)||R(n)||D(n)))throw m.console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},he=function(e,t,n){ge(e.dom(),t,n)},pe=function(e,t){var n=e.dom();V(t,function(e,t){ge(n,t,e)})},ve=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},be=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},we=function(e,t){e.dom().removeAttribute(t)},ye=function(e){return W(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},xe=function(e,t){return-1!==e.indexOf(t)},Ce=function(e){return e.style!==undefined&&T(e.style.getPropertyValue)},Se=function(n){var r,o=!1;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o||(o=!0,r=n.apply(null,e)),r}},Re=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:C(e)}},Te={fromHtml:function(e,t){var n=(t||m.document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw m.console.error("HTML does not have a single root node",e),new Error("HTML must have a single root node");return Re(n.childNodes[0])},fromTag:function(e,t){var n=(t||m.document).createElement(e);return Re(n)},fromText:function(e,t){var n=(t||m.document).createTextNode(e);return Re(n)},fromDom:Re,fromPoint:function(e,t,n){var r=e.dom();return S.from(r.elementFromPoint(t,n)).map(Re)}},De=function(e){var t=me(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)},Oe=Se(function(){return Ne(Te.fromDom(m.document))}),Ne=function(e){var t=e.dom().body;if(null===t||t===undefined)throw new Error("Body is not available yet");return Te.fromDom(t)},Ee=function(e,t,n){if(!v(n))throw m.console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);Ce(e)&&e.style.setProperty(t,n)},ke=function(e,t,n){var r=e.dom();Ee(r,t,n)},Ae=function(e,t){var n=e.dom();V(t,function(e,t){Ee(n,t,e)})},Pe=function(e,t){var n=e.dom(),r=m.window.getComputedStyle(n).getPropertyValue(t),o=""!==r||De(e)?r:Ie(n,t);return null===o?undefined:o},Ie=function(e,t){return Ce(e)?e.style.getPropertyValue(t):""},Be=function(e,t){var n=e.dom(),r=Ie(n,t);return S.from(r).filter(function(e){return 0<e.length})},We=function(e,t){var n,r,o=e.dom();r=t,Ce(n=o)&&n.style.removeProperty(r),be(e,"style")&&""===ve(e,"style").replace(/^\s+|\s+$/g,"")&&we(e,"style")},Me=function(){return ae("Node")},_e=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},Le=function(e,t){return _e(e,t,Me().DOCUMENT_POSITION_CONTAINED_BY)},Fe=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return ze(r(1),r(2))},je=function(){return ze(0,0)},ze=function(e,t){return{major:e,minor:t}},He={nu:ze,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?je():Fe(e,n)},unknown:je},Ue="Firefox",qe=function(e,t){return function(){return t===e}},Ve=function(e){var t=e.current;return{current:t,version:e.version,isEdge:qe("Edge",t),isChrome:qe("Chrome",t),isIE:qe("IE",t),isOpera:qe("Opera",t),isFirefox:qe(Ue,t),isSafari:qe("Safari",t)}},Ge={unknown:function(){return Ve({current:undefined,version:He.unknown()})},nu:Ve,edge:C("Edge"),chrome:C("Chrome"),ie:C("IE"),opera:C("Opera"),firefox:C(Ue),safari:C("Safari")},Ye="Windows",Xe="Android",Ke="Solaris",Je="FreeBSD",$e=function(e,t){return function(){return t===e}},Qe=function(e){var t=e.current;return{current:t,version:e.version,isWindows:$e(Ye,t),isiOS:$e("iOS",t),isAndroid:$e(Xe,t),isOSX:$e("OSX",t),isLinux:$e("Linux",t),isSolaris:$e(Ke,t),isFreeBSD:$e(Je,t)}},Ze={unknown:function(){return Qe({current:undefined,version:He.unknown()})},nu:Qe,windows:C(Ye),ios:C("iOS"),android:C(Xe),linux:C("Linux"),osx:C("OSX"),solaris:C(Ke),freebsd:C(Je)},et=function(e,t){var n=String(t).toLowerCase();return M(e,function(e){return e.search(n)})},tt=function(e,n){return et(e,n).map(function(e){var t=He.detect(e.versionRegexes,n);return{current:e.name,version:t}})},nt=function(e,n){return et(e,n).map(function(e){var t=He.detect(e.versionRegexes,n);return{current:e.name,version:t}})},rt=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ot=function(t){return function(e){return xe(e,t)}},it=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return xe(e,"edge/")&&xe(e,"chrome")&&xe(e,"safari")&&xe(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,rt],search:function(e){return xe(e,"chrome")&&!xe(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return xe(e,"msie")||xe(e,"trident")}},{name:"Opera",versionRegexes:[rt,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:ot("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:ot("firefox")},{name:"Safari",versionRegexes:[rt,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(xe(e,"safari")||xe(e,"mobile/"))&&xe(e,"applewebkit")}}],ut=[{name:"Windows",search:ot("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return xe(e,"iphone")||xe(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:ot("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:ot("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:ot("linux"),versionRegexes:[]},{name:"Solaris",search:ot("sunos"),versionRegexes:[]},{name:"FreeBSD",search:ot("freebsd"),versionRegexes:[]}],at={browsers:C(it),oses:C(ut)},ct=function(e){var t,n,r,o,i,u,a,c,l,f,s,d=at.browsers(),m=at.oses(),g=tt(d,e).fold(Ge.unknown,Ge.nu),h=nt(m,e).fold(Ze.unknown,Ze.nu);return{browser:g,os:h,deviceType:(n=g,r=e,o=(t=h).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,u=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,c=o||u||a&&!0===/mobile/i.test(r),l=t.isiOS()||t.isAndroid(),f=l&&!c,s=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:C(o),isiPhone:C(i),isTablet:C(c),isPhone:C(f),isTouch:C(l),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:C(s)})}},lt={detect:Se(function(){var e=m.navigator.userAgent;return ct(e)})},ft=re,st=ne,dt=function(e,t){var n=e.dom();if(n.nodeType!==ft)return!1;var r=n;if(r.matches!==undefined)return r.matches(t);if(r.msMatchesSelector!==undefined)return r.msMatchesSelector(t);if(r.webkitMatchesSelector!==undefined)return r.webkitMatchesSelector(t);if(r.mozMatchesSelector!==undefined)return r.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},mt=function(e){return e.nodeType!==ft&&e.nodeType!==st||0===e.childElementCount},gt=function(e,t){return e.dom()===t.dom()},ht=lt.detect().browser.isIE()?function(e,t){return Le(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},pt=dt,vt=function(e){return Te.fromDom(e.dom().ownerDocument)},bt=function(e){return S.from(e.dom().parentNode).map(Te.fromDom)},wt=function(e,t){for(var n=T(t)?t:f,r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=Te.fromDom(i);if(o.push(u),!0===n(u))break;r=i}return o},yt=function(e){return S.from(e.dom().previousSibling).map(Te.fromDom)},xt=function(e){return S.from(e.dom().nextSibling).map(Te.fromDom)},Ct=function(e){return A(e.dom().childNodes,Te.fromDom)},St=function(e,t){var n=e.dom().childNodes;return S.from(n[t]).map(Te.fromDom)},Rt=(X("element","offset"),function(t,n){bt(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})}),Tt=function(e,t){xt(e).fold(function(){bt(e).each(function(e){Ot(e,t)})},function(e){Rt(e,t)})},Dt=function(t,n){St(t,0).fold(function(){Ot(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},Ot=function(e,t){e.dom().appendChild(t.dom())},Nt=function(e,t){Rt(e,t),Ot(t,e)},Et=function(r,o){P(o,function(e,t){var n=0===t?r:o[t-1];Tt(n,e)})},kt=function(t,e){P(e,function(e){Ot(t,e)})},At=function(e){e.dom().textContent="",P(Ct(e),function(e){Pt(e)})},Pt=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},It=function(e){var t,n=Ct(e);0<n.length&&(t=e,P(n,function(e){Rt(t,e)})),Pt(e)},Bt=(X("width","height"),X("width","height"),X("rows","columns")),Wt=X("row","column"),Mt=(X("x","y"),X("element","rowspan","colspan")),_t=X("element","rowspan","colspan","isNew"),Lt=X("element","rowspan","colspan","row","column"),Ft=X("element","cells","section"),jt=X("element","isNew"),zt=X("element","cells","section","isNew"),Ht=X("cells","section"),Ut=X("details","section"),qt=X("startRow","startCol","finishRow","finishCol"),Vt=function(e,t){var n=[];return P(Ct(e),function(e){t(e)&&(n=n.concat([e])),n=n.concat(Vt(e,t))}),n},Gt=function(e,t,n){return r=function(e){return dt(e,t)},I(wt(e,n),r);var r},Yt=function(e,t){return n=function(e){return dt(e,t)},I(Ct(e),n);var n},Xt=function(e,t){return n=t,o=(r=e)===undefined?m.document:r.dom(),mt(o)?[]:A(o.querySelectorAll(n),Te.fromDom);var n,r,o};function Kt(e,t,n,r,o){return e(n,r)?S.some(n):T(o)&&o(n)?S.none():t(n,r,o)}var Jt,$t,Qt,Zt=function(e,t,n){for(var r=e.dom(),o=T(n)?n:C(!1);r.parentNode;){r=r.parentNode;var i=Te.fromDom(r);if(t(i))return S.some(i);if(o(i))break}return S.none()},en=function(e,t,n){return Zt(e,function(e){return dt(e,t)},n)},tn=function(e,t){return n=function(e){return dt(e,t)},M(e.dom().childNodes,function(e){return n(Te.fromDom(e))}).map(Te.fromDom);var n},nn=function(e,t){return n=t,o=(r=e)===undefined?m.document:r.dom(),mt(o)?S.none():S.from(o.querySelector(n)).map(Te.fromDom);var n,r,o},rn=function(e,t,n){return Kt(dt,en,e,t,n)},on=function(e,t,n){return z(Ct(e),function(e){return dt(e,t)?n(e)?[e]:[]:on(e,t,n)})},un={firstLayer:function(e,t){return on(e,t,C(!0))},filterFirstLayer:on},an=function(e,t,n){return void 0===n&&(n=f),n(t)?S.none():E(e,ce(t))?S.some(t):en(t,e.join(","),function(e){return dt(e,"table")||n(e)})},cn=function(t,e){return bt(e).map(function(e){return Yt(e,t)})},ln=b(cn,"th,td"),fn=b(cn,"tr"),sn=function(e,t){return parseInt(ve(e,t),10)},dn={cell:function(e,t){return an(["td","th"],e,t)},firstCell:function(e){return nn(e,"th,td")},cells:function(e){return un.firstLayer(e,"th,td")},neighbourCells:ln,table:function(e,t){return rn(e,"table",t)},row:function(e,t){return an(["tr"],e,t)},rows:function(e){return un.firstLayer(e,"tr")},notCell:function(e,t){return an(["caption","tr","tbody","tfoot","thead"],e,t)},neighbourRows:fn,attr:sn,grid:function(e,t,n){var r=sn(e,t),o=sn(e,n);return Bt(r,o)}},mn=function(e){var t=dn.rows(e);return A(t,function(e){var t=e,n=bt(t).map(function(e){var t=ce(e);return"tfoot"===t||"thead"===t||"tbody"===t?t:"tbody"}).getOr("tbody"),r=A(dn.cells(e),function(e){var t=be(e,"rowspan")?parseInt(ve(e,"rowspan"),10):1,n=be(e,"colspan")?parseInt(ve(e,"colspan"),10):1;return Mt(e,t,n)});return Ft(t,r,n)})},gn=function(e,n){return A(e,function(e){var t=A(dn.cells(e),function(e){var t=be(e,"rowspan")?parseInt(ve(e,"rowspan"),10):1,n=be(e,"colspan")?parseInt(ve(e,"colspan"),10):1;return Mt(e,t,n)});return Ft(e,t,n.section())})},hn=function(e,t){return e+","+t},pn=function(e,t){var n=z(e.all(),function(e){return e.cells()});return I(n,t)},vn={generate:function(e){var l={},t=[],n=e.length,f=0;P(e,function(e,a){var c=[];P(e.cells(),function(e){for(var t=0;l[hn(a,t)]!==undefined;)t++;for(var n=Lt(e.element(),e.rowspan(),e.colspan(),a,t),r=0;r<e.colspan();r++)for(var o=0;o<e.rowspan();o++){var i=t+r,u=hn(a+o,i);l[u]=n,f=Math.max(f,i+1)}c.push(n)}),t.push(Ft(e.element(),c,e.section()))});var r=Bt(n,f);return{grid:C(r),access:C(l),all:C(t)}},getAt:function(e,t,n){var r=e.access()[hn(t,n)];return r!==undefined?S.some(r):S.none()},findItem:function(e,t,n){var r=pn(e,function(e){return n(t,e.element())});return 0<r.length?S.some(r[0]):S.none()},filterItems:pn,justCells:function(e){var t=A(e.all(),function(e){return e.cells()});return j(t)}},bn=X("minRow","minCol","maxRow","maxCol"),wn=function(e,t){var n,i,r,u,a,c,l,o,f,s,d=function(e){return dt(e.element(),t)},m=mn(e),g=vn.generate(m),h=(i=d,r=(n=g).grid().columns(),u=n.grid().rows(),a=r,l=c=0,V(n.access(),function(e){if(i(e)){var t=e.row(),n=t+e.rowspan()-1,r=e.column(),o=r+e.colspan()-1;t<u?u=t:c<n&&(c=n),r<a?a=r:l<o&&(l=o)}}),bn(u,a,c,l)),p="th:not("+t+"),td:not("+t+")",v=un.filterFirstLayer(e,"th,td",function(e){return dt(e,p)});return P(v,Pt),function(e,t,n,r){for(var o,i,u,a=t.grid().columns(),c=t.grid().rows(),l=0;l<c;l++)for(var f=!1,s=0;s<a;s++)l<n.minRow()||l>n.maxRow()||s<n.minCol()||s>n.maxCol()||(vn.getAt(t,l,s).filter(r).isNone()?(o=f,i=e[l].element(),u=Te.fromTag("td"),Ot(u,Te.fromTag("br")),(o?Ot:Dt)(i,u)):f=!0)}(m,g,h,d),o=e,f=h,s=I(un.firstLayer(o,"tr"),function(e){return 0===e.dom().childElementCount}),P(s,Pt),f.minCol()!==f.maxCol()&&f.minRow()!==f.maxRow()||P(un.firstLayer(o,"th,td"),function(e){we(e,"rowspan"),we(e,"colspan")}),we(o,"width"),we(o,"height"),We(o,"width"),We(o,"height"),e},yn=(Jt=me,$t="text",{get:function(e){if(!Jt(e))throw new Error("Can only get "+$t+" value of a "+$t+" node");return Qt(e).getOr("")},getOption:Qt=function(e){return Jt(e)?S.from(e.dom().nodeValue):S.none()},set:function(e,t){if(!Jt(e))throw new Error("Can only set raw "+$t+" value of a "+$t+" node");e.dom().nodeValue=t}}),xn=function(e){return yn.get(e)},Cn=function(e){return yn.getOption(e)},Sn=function(e,t){yn.set(e,t)},Rn=function(e){return"img"===ce(e)?1:Cn(e).fold(function(){return Ct(e).length},function(e){return e.length})},Tn=["img","br"],Dn=function(e){return Cn(e).filter(function(e){return 0!==e.trim().length||-1<e.indexOf("\xa0")}).isSome()||E(Tn,ce(e))},On=function(e){return o=Dn,(i=function(e){for(var t=0;t<e.childNodes.length;t++){var n=Te.fromDom(e.childNodes[t]);if(o(n))return S.some(n);var r=i(e.childNodes[t]);if(r.isSome())return r}return S.none()})(e.dom());var o,i},Nn=function(e){return En(e,Dn)},En=function(e,i){var u=function(e){for(var t=Ct(e),n=t.length-1;0<=n;n--){var r=t[n];if(i(r))return S.some(r);var o=u(r);if(o.isSome())return o}return S.none()};return u(e)},kn=function(e,t){return Te.fromDom(e.dom().cloneNode(t))},An=function(e){return kn(e,!1)},Pn=function(e){return kn(e,!0)},In=function(e,t){var n,r,o,i,u=(n=e,r=t,o=Te.fromTag(r),i=ye(n),pe(o,i),o),a=Ct(Pn(e));return kt(u,a),u},Bn=function(){var e=Te.fromTag("td");return Ot(e,Te.fromTag("br")),e},Wn=function(e,t,n){var r=In(e,t);return V(n,function(e,t){null===e?we(r,t):he(r,t,e)}),r},Mn=function(e){return e},_n=function(e){return function(){return Te.fromTag("tr",e.dom())}},Ln=function(d,e,m){return{row:_n(e),cell:function(e){var r,o,i,t,n,u,a,c=vt(e.element()),l=Te.fromTag(ce(e.element()),c.dom()),f=m.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),s=0<f.length?(r=e.element(),o=l,i=f,On(r).map(function(e){var t=i.join(","),n=Gt(e,t,function(e){return gt(e,r)});return B(n,function(e,t){var n=An(t);return we(n,"contenteditable"),Ot(e,n),n},o)}).getOr(o)):l;return Ot(s,Te.fromTag("br")),t=e.element(),n=l,u=t.dom(),a=n.dom(),Ce(u)&&Ce(a)&&(a.style.cssText=u.style.cssText),We(l,"height"),1!==e.colspan()&&We(e.element(),"width"),d(e.element(),l),l},replace:Wn,gap:Bn}},Fn=function(e){return{row:_n(e),cell:Bn,replace:Mn,gap:Bn}},jn=function(e,t){return t.column()>=e.startCol()&&t.column()+t.colspan()-1<=e.finishCol()&&t.row()>=e.startRow()&&t.row()+t.rowspan()-1<=e.finishRow()},zn=function(e,t){var n=t.column(),r=t.column()+t.colspan()-1,o=t.row(),i=t.row()+t.rowspan()-1;return n<=e.finishCol()&&r>=e.startCol()&&o<=e.finishRow()&&i>=e.startRow()},Hn=function(e,t){for(var n=!0,r=b(jn,t),o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)n=n&&vn.getAt(e,o,i).exists(r);return n?S.some(t):S.none()},Un=function(e,t,n){var r=vn.findItem(e,t,gt),o=vn.findItem(e,n,gt);return r.bind(function(r){return o.map(function(e){return t=r,n=e,qt(Math.min(t.row(),n.row()),Math.min(t.column(),n.column()),Math.max(t.row()+t.rowspan()-1,n.row()+n.rowspan()-1),Math.max(t.column()+t.colspan()-1,n.column()+n.colspan()-1));var t,n})})},qn=Un,Vn=function(t,e,n){return Un(t,e,n).bind(function(e){return Hn(t,e)})},Gn=function(r,e,o,i){return vn.findItem(r,e,gt).bind(function(e){var t=0<o?e.row()+e.rowspan()-1:e.row(),n=0<i?e.column()+e.colspan()-1:e.column();return vn.getAt(r,t+o,n+i).map(function(e){return e.element()})})},Yn=function(n,e,t){return qn(n,e,t).map(function(e){var t=vn.filterItems(n,b(zn,e));return A(t,function(e){return e.element()})})},Xn=function(e,t){return vn.findItem(e,t,function(e,t){return ht(t,e)}).map(function(e){return e.element()})},Kn=function(e){var t=mn(e);return vn.generate(t)},Jn=function(n,r,o){return dn.table(n).bind(function(e){var t=Kn(e);return Gn(t,n,r,o)})},$n=function(e,t,n){var r=Kn(e);return Yn(r,t,n)},Qn=function(e,t,n,r,o){var i=Kn(e),u=gt(e,n)?S.some(t):Xn(i,t),a=gt(e,o)?S.some(r):Xn(i,r);return u.bind(function(t){return a.bind(function(e){return Yn(i,t,e)})})},Zn=function(e,t,n){var r=Kn(e);return Vn(r,t,n)},er=["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"];function tr(){return{up:C({selector:en,closest:rn,predicate:Zt,all:wt}),down:C({selector:Xt,predicate:Vt}),styles:C({get:Pe,getRaw:Be,set:ke,remove:We}),attrs:C({get:ve,set:he,remove:we,copyTo:function(e,t){var n=ye(e);pe(t,n)}}),insert:C({before:Rt,after:Tt,afterAll:Et,append:Ot,appendAll:kt,prepend:Dt,wrap:Nt}),remove:C({unwrap:It,remove:Pt}),create:C({nu:Te.fromTag,clone:function(e){return Te.fromDom(e.dom().cloneNode(!1))},text:Te.fromText}),query:C({comparePosition:function(e,t){return e.dom().compareDocumentPosition(t.dom())},prevSibling:yt,nextSibling:xt}),property:C({children:Ct,name:ce,parent:bt,document:function(e){return e.dom().ownerDocument},isText:me,isComment:se,isElement:de,getText:xn,setText:Sn,isBoundary:function(e){return!!de(e)&&("body"===ce(e)||E(er,ce(e)))},isEmptyTag:function(e){return!!de(e)&&E(["br","img","hr","input"],ce(e))}}),eq:gt,is:pt}}var nr=X("left","right"),rr=X("first","second","splits"),or=function(e,t,n){var r=e.property().children(t);return _(r,b(e.eq,n)).map(function(e){return{before:C(r.slice(0,e)),after:C(r.slice(e+1))}})},ir=function(r,o,e,t){var n=o(r,e);return B(t,function(e,t){var n=o(r,t);return ur(r,e,n)},n)},ur=function(t,e,n){return e.bind(function(e){return n.filter(b(t.eq,e))})},ar=function(e,t){return b(e.eq,t)},cr=function(t,e,n,r){void 0===r&&(r=f);var o=[e].concat(t.up().all(e)),i=[n].concat(t.up().all(n)),u=function(t){return _(t,r).fold(function(){return t},function(e){return t.slice(0,e+1)})},a=u(o),c=u(i),l=M(a,function(e){return k(c,ar(t,e))});return{firstpath:C(a),secondpath:C(c),shared:C(l)}},lr={sharedOne:function(e,t,n){return 0<n.length?ir(e,t,(r=n)[0],r.slice(1)):S.none();var r},subset:function(t,e,n){var r=cr(t,e,n);return r.shared().bind(function(e){return function(o,i,e,t){var u=o.property().children(i);if(o.eq(i,e[0]))return S.some([e[0]]);if(o.eq(i,t[0]))return S.some([t[0]]);var n=function(e){var t=U(e),n=_(t,ar(o,i)).getOr(-1),r=n<t.length-1?t[n+1]:t[n];return _(u,ar(o,r))},r=n(e),a=n(t);return r.bind(function(r){return a.map(function(e){var t=Math.min(r,e),n=Math.max(r,e);return u.slice(t,n+1)})})}(t,e,r.firstpath(),r.secondpath())})},ancestors:cr,breakToLeft:function(n,r,o){return or(n,r,o).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.before().concat([o])),n.insert().appendAll(r,e.after()),n.insert().before(r,t),nr(t,r)})},breakToRight:function(n,r,e){return or(n,r,e).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.after()),n.insert().after(r,t),nr(r,t)})},breakPath:function(i,e,u,a){var c=function(e,t,o){var n=rr(e,S.none(),o);return u(e)?rr(e,t,o):i.property().parent(e).bind(function(r){return a(i,r,e).map(function(e){var t=[{first:e.left,second:e.right}],n=u(r)?r:e.left();return c(n,S.some(e.right()),o.concat(t))})}).getOr(n)};return c(e,S.none(),[])}},fr=tr(),sr={sharedOne:function(n,e){return lr.sharedOne(fr,function(e,t){return n(t)},e)},subset:function(e,t){return lr.subset(fr,e,t)},ancestors:function(e,t,n){return lr.ancestors(fr,e,t,n)},breakToLeft:function(e,t){return lr.breakToLeft(fr,e,t)},breakToRight:function(e,t){return lr.breakToRight(fr,e,t)},breakPath:function(e,t,r){return lr.breakPath(fr,e,t,function(e,t,n){return r(t,n)})}},dr={create:ee(["boxes","start","finish"],[])},mr=function(e){return en(e,"table")},gr=function(a,c,r){var l=function(t){return function(e){return r!==undefined&&r(e)||gt(e,t)}};return gt(a,c)?S.some(dr.create({boxes:S.some([a]),start:a,finish:c})):mr(a).bind(function(u){return mr(c).bind(function(i){if(gt(u,i))return S.some(dr.create({boxes:$n(u,a,c),start:a,finish:c}));if(ht(u,i)){var e=0<(t=Gt(c,"td,th",l(u))).length?t[t.length-1]:c;return S.some(dr.create({boxes:Qn(u,a,u,c,i),start:a,finish:e}))}if(ht(i,u)){var t,n=0<(t=Gt(a,"td,th",l(i))).length?t[t.length-1]:a;return S.some(dr.create({boxes:Qn(i,a,u,c,i),start:a,finish:n}))}return sr.ancestors(a,c).shared().bind(function(e){return rn(e,"table",r).bind(function(e){var t=Gt(c,"td,th",l(e)),n=0<t.length?t[t.length-1]:c,r=Gt(a,"td,th",l(e)),o=0<r.length?r[r.length-1]:a;return S.some(dr.create({boxes:Qn(e,a,u,c,i),start:o,finish:n}))})})})})},hr=gr,pr=function(e,t){var n=Xt(e,t);return 0<n.length?S.some(n):S.none()},vr=function(e,t,n,r,o){return(i=e,u=o,M(i,function(e){return dt(e,u)})).bind(function(e){return Jn(e,t,n).bind(function(e){return n=r,en(t=e,"table").bind(function(e){return nn(e,n).bind(function(e){return gr(e,t).bind(function(t){return t.boxes().map(function(e){return{boxes:C(e),start:C(t.start()),finish:C(t.finish())}})})})});var t,n})});var i,u},br=function(e,t,r){return nn(e,t).bind(function(n){return nn(e,r).bind(function(t){return sr.sharedOne(mr,[n,t]).map(function(e){return{first:C(n),last:C(t),table:C(e)}})})})},wr=function(e,t){return pr(e,t)},yr=function(o,e,t){return br(o,e,t).bind(function(n){var e=function(e){return gt(o,e)},t=en(n.first(),"thead,tfoot,tbody,table",e),r=en(n.last(),"thead,tfoot,tbody,table",e);return t.bind(function(t){return r.bind(function(e){return gt(t,e)?Zn(n.table(),n.first(),n.last()):S.none()})})})},xr="data-mce-selected",Cr="data-mce-first-selected",Sr="data-mce-last-selected",Rr={selected:C(xr),selectedSelector:C("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:C("[data-mce-selected]"),firstSelected:C(Cr),firstSelectedSelector:C("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:C(Sr),lastSelectedSelector:C("td[data-mce-last-selected],th[data-mce-last-selected]")},Tr=function(u){if(!w(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var a=[],n={};return P(u,function(e,r){var t=q(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!w(i))throw new Error("case arguments must be an array");a.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=q(e);if(a.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+a.join(",")+"\nActual: "+t.join(","));if(!H(a,function(e){return E(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+a.join(", "));return e[o].apply(null,n)},log:function(e){m.console.log(e,{constructors:a,constructor:o,params:n})}}}}),n},Dr=Tr([{none:[]},{multiple:["elements"]},{single:["selection"]}]),Or={cata:function(e,t,n,r){return e.fold(t,n,r)},none:Dr.none,multiple:Dr.multiple,single:Dr.single},Nr=function(e,t){return Or.cata(t.get(),C([]),o,C([e]))},Er=function(n,e){return Or.cata(e.get(),S.none,function(t,e){return 0===t.length?S.none():yr(n,Rr.firstSelectedSelector(),Rr.lastSelectedSelector()).bind(function(e){return 1<t.length?S.some({bounds:C(e),cells:C(t)}):S.none()})},S.none)},kr=function(e,t){var n=Nr(e,t);return 0<n.length&&H(n,function(e){return be(e,"rowspan")&&1<parseInt(ve(e,"rowspan"),10)||be(e,"colspan")&&1<parseInt(ve(e,"colspan"),10)})?S.some(n):S.none()},Ar=Nr,Pr=function(e){return{element:C(e),mergable:S.none,unmergable:S.none,selection:C([e])}},Ir=X("element","clipboard","generators"),Br={noMenu:Pr,forMenu:function(e,t,n){return{element:C(n),mergable:C(Er(t,e)),unmergable:C(kr(n,e)),selection:C(Ar(n,e))}},notCell:function(e){return Pr(e)},paste:Ir,pasteRows:function(e,t,n,r,o){return{element:C(n),mergable:S.none,unmergable:S.none,selection:C(Ar(n,e)),clipboard:C(r),generators:C(o)}}},Wr=function(f,e,s,d){f.on("BeforeGetContent",function(n){!0===n.selection&&Or.cata(e.get(),y,function(e){var t;n.preventDefault(),(t=e,dn.table(t[0]).map(Pn).map(function(e){return[wn(e,Rr.attributeSelector())]})).each(function(e){var t;n.content="text"===n.format?A(e,function(e){return e.dom().innerText}).join(""):(t=f,A(e,function(e){return t.selection.serializer.serialize(e.dom(),{})}).join(""))})},y)}),f.on("BeforeSetContent",function(l){!0===l.selection&&!0===l.paste&&S.from(f.dom.getParent(f.selection.getStart(),"th,td")).each(function(e){var c=Te.fromDom(e);dn.table(c).each(function(t){var e,n,r,o=I((e=l.content,(r=(n||m.document).createElement("div")).innerHTML=e,Ct(Te.fromDom(r))),function(e){return"meta"!==ce(e)});if(1===o.length&&"table"===ce(o[0])){l.preventDefault();var i=Te.fromDom(f.getDoc()),u=Fn(i),a=Br.paste(c,o[0],u);s.pasteCells(t,a).each(function(e){f.selection.setRng(e),f.focus(),d.clear(t)})}})})})};function Mr(r,o){var e=function(e){var t=o(e);if(t<=0||null===t){var n=Pe(e,r);return parseFloat(n)||0}return t},i=function(o,e){return W(e,function(e,t){var n=Pe(o,t),r=n===undefined?0:parseInt(n,10);return isNaN(r)?e:e+r},0)};return{set:function(e,t){if(!D(t)&&!t.match(/^[0-9]+$/))throw new Error(r+".set accepts only positive integer values. Value was "+t);var n=e.dom();Ce(n)&&(n.style[r]=t+"px")},get:e,getOuter:e,aggregate:i,max:function(e,t,n){var r=i(e,n);return r<t?t-r:0}}}var _r=Mr("height",function(e){var t=e.dom();return De(e)?t.getBoundingClientRect().height:t.offsetHeight}),Lr=function(e){return _r.get(e)},Fr=function(e){return _r.getOuter(e)},jr=Mr("width",function(e){return e.dom().offsetWidth}),zr=function(e){return jr.get(e)},Hr=function(e){return jr.getOuter(e)},Ur=lt.detect(),qr=function(e,t,n){return r=Pe(e,t),o=n,i=parseFloat(r),isNaN(i)?o:i;var r,o,i},Vr=function(e){return Ur.browser.isIE()||Ur.browser.isEdge()?(n=qr(t=e,"padding-top",0),r=qr(t,"padding-bottom",0),o=qr(t,"border-top-width",0),i=qr(t,"border-bottom-width",0),u=t.dom().getBoundingClientRect().height,"border-box"===Pe(t,"box-sizing")?u:u-n-r-(o+i)):qr(e,"height",Lr(e));var t,n,r,o,i,u},Gr=/(\d+(\.\d+)?)(\w|%)*/,Yr=/(\d+(\.\d+)?)%/,Xr=/(\d+(\.\d+)?)px|em/,Kr=function(e,t){ke(e,"height",t+"px")},Jr=function(e,t,n,r){var o,i,u,a,c,l,f,s,d,m=parseInt(e,10);return s=l="%",d=(f=e).length-l.length,""!==s&&(f.length<s.length||f.substr(d,d+s.length)!==s)||"table"===ce(t)?m:(o=t,i=m,u=n,a=r,c=dn.table(o).map(function(e){var t=u(e);return Math.floor(i/100*t)}).getOr(i),a(o,c),c)},$r=function(e){var t,n=Be(t=e,"height").getOrThunk(function(){return Vr(t)+"px"});return n?Jr(n,e,Lr,Kr):Lr(e)},Qr=function(e,t){return be(e,t)?parseInt(ve(e,t),10):1},Zr=function(e){return Be(e,"width").fold(function(){return S.from(ve(e,"width"))},function(e){return S.some(e)})},eo=function(e,t){return e/t.pixelWidth()*100},to={percentageBasedSizeRegex:C(Yr),pixelBasedSizeRegex:C(Xr),setPixelWidth:function(e,t){ke(e,"width",t+"px")},setPercentageWidth:function(e,t){ke(e,"width",t+"%")},setHeight:Kr,getPixelWidth:function(t,n){return Zr(t).fold(function(){return zr(t)},function(e){return function(e,t,n){var r=Xr.exec(t);if(null!==r)return parseInt(r[1],10);var o=Yr.exec(t);if(null!==o){var i=parseFloat(o[1]);return i/100*n.pixelWidth()}return zr(e)}(t,e,n)})},getPercentageWidth:function(t,n){return Zr(t).fold(function(){var e=zr(t);return eo(e,n)},function(e){return function(e,t,n){var r=Yr.exec(t);if(null!==r)return parseFloat(r[1]);var o=zr(e);return eo(o,n)}(t,e,n)})},getGenericWidth:function(e){return Zr(e).bind(function(e){var t=Gr.exec(e);return null!==t?S.some({width:C(parseFloat(t[1])),unit:C(t[3])}):S.none()})},setGenericWidth:function(e,t,n){ke(e,"width",t+n)},getHeight:function(e){return n="rowspan",$r(t=e)/Qr(t,n);var t,n},getRawWidth:Zr},no=function(n,r){to.getGenericWidth(n).each(function(e){var t=e.width()/2;to.setGenericWidth(n,t,e.unit()),to.setGenericWidth(r,t,e.unit())})},ro=function(n,r){return{left:C(n),top:C(r),translate:function(e,t){return ro(n+e,r+t)}}},oo=ro,io=function(e,t){return e!==undefined?e:t!==undefined?t:0},uo=function(e){var t=e.dom().ownerDocument,n=t.body,r=t.defaultView,o=t.documentElement,i=io(r.pageYOffset,o.scrollTop),u=io(r.pageXOffset,o.scrollLeft),a=io(o.clientTop,n.clientTop),c=io(o.clientLeft,n.clientLeft);return ao(e).translate(u-c,i-a)},ao=function(e){var t,n=e.dom(),r=n.ownerDocument.body;return r===n?oo(r.offsetLeft,r.offsetTop):De(e)?(t=n.getBoundingClientRect(),oo(t.left,t.top)):oo(0,0)},co=X("row","y"),lo=X("col","x"),fo=function(e){return uo(e).left()+Hr(e)},so=function(e){return uo(e).left()},mo=function(e,t){return lo(e,so(t))},go=function(e,t){return lo(e,fo(t))},ho=function(e){return uo(e).top()},po=function(e,t){return co(e,ho(t))},vo=function(e,t){return co(e,ho(t)+Fr(t))},bo=function(n,t,r){if(0===r.length)return[];var e=A(r.slice(1),function(e,t){return e.map(function(e){return n(t,e)})}),o=r[r.length-1].map(function(e){return t(r.length-1,e)});return e.concat([o])},wo={height:{delta:o,positions:function(e){return bo(po,vo,e)},edge:ho},rtl:{delta:function(e){return-e},edge:fo,positions:function(e){return bo(go,mo,e)}},ltr:{delta:o,edge:so,positions:function(e){return bo(mo,go,e)}}},yo={ltr:wo.ltr,rtl:wo.rtl};function xo(t){var n=function(e){return t(e).isRtl()?yo.rtl:yo.ltr};return{delta:function(e,t){return n(t).delta(e,t)},edge:function(e){return n(e).edge(e)},positions:function(e,t){return n(t).positions(e,t)}}}var Co=function(e){var t=mn(e);return vn.generate(t).grid()},So=function(){return(So=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},Ro=function(e){for(var t=[],n=function(e){t.push(e)},r=0;r<e.length;r++)e[r].each(n);return t},To=function(e,t){for(var n=0;n<e.length;n++){var r=t(e[n],n);if(r.isSome())return r}return S.none()},Do=function(e,t,n,r){n===r?we(e,t):he(e,t,n)},Oo=function(o,e){var i=[],u=[],t=function(e,t){0<e.length?function(e,t){var n=tn(o,t).getOrThunk(function(){var e=Te.fromTag(t,vt(o).dom());return Ot(o,e),e});At(n);var r=A(e,function(e){e.isNew()&&i.push(e.element());var t=e.element();return At(t),P(e.cells(),function(e){e.isNew()&&u.push(e.element()),Do(e.element(),"colspan",e.colspan(),1),Do(e.element(),"rowspan",e.rowspan(),1),Ot(t,e.element())}),t});kt(n,r)}(e,t):tn(o,t).each(Pt)},n=[],r=[],a=[];return P(e,function(e){switch(e.section()){case"thead":n.push(e);break;case"tbody":r.push(e);break;case"tfoot":a.push(e)}}),t(n,"thead"),t(r,"tbody"),t(a,"tfoot"),{newRows:C(i),newCells:C(u)}},No=function(e){return A(e,function(e){var n=An(e.element());return P(e.cells(),function(e){var t=Pn(e.element());Do(t,"colspan",e.colspan(),1),Do(t,"rowspan",e.rowspan(),1),Ot(n,t)}),n})},Eo=function(e,t){var n=ve(e,t);return n===undefined||""===n?[]:n.split(" ")},ko=function(e){return e.dom().classList!==undefined},Ao=function(e,t){return o=t,i=Eo(n=e,r="class").concat([o]),he(n,r,i.join(" ")),!0;var n,r,o,i},Po=function(e,t){return o=t,0<(i=I(Eo(n=e,r="class"),function(e){return e!==o})).length?he(n,r,i.join(" ")):we(n,r),!1;var n,r,o,i},Io=function(e,t){ko(e)?e.dom().classList.add(t):Ao(e,t)},Bo=function(e){0===(ko(e)?e.dom().classList:Eo(e,"class")).length&&we(e,"class")},Wo=function(e,t){return ko(e)&&e.dom().classList.contains(t)},Mo=function(e,t){for(var n=[],r=e;r<t;r++)n.push(r);return n},_o=function(t,n){if(n<0||n>=t.length-1)return S.none();var e=t[n].fold(function(){var e=U(t.slice(0,n));return To(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:0})}),r=t[n+1].fold(function(){var e=t.slice(n+1);return To(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:1})});return e.bind(function(n){return r.map(function(e){var t=e.delta+n.delta;return Math.abs(e.value-n.value)/t})})},Lo=function(e,t,n){var r=e();return M(r,t).orThunk(function(){return S.from(r[0]).orThunk(n)}).map(function(e){return e.element()})},Fo=function(n){var e=n.grid(),t=Mo(0,e.columns()),r=Mo(0,e.rows());return A(t,function(t){return Lo(function(){return z(r,function(e){return vn.getAt(n,e,t).filter(function(e){return e.column()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.colspan()},function(){return vn.getAt(n,0,t)})})},jo=function(n){var e=n.grid(),t=Mo(0,e.rows()),r=Mo(0,e.columns());return A(t,function(t){return Lo(function(){return z(r,function(e){return vn.getAt(n,t,e).filter(function(e){return e.row()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.rowspan()},function(){return vn.getAt(n,t,0)})})},zo=function(e){var t=e.replace(/\./g,"-");return{resolve:function(e){return t+"-"+e}}},Ho={resolve:zo("ephox-snooker").resolve},Uo=function(e,t,n,r,o){var i=Te.fromTag("div");return Ae(i,{position:"absolute",left:t-r/2+"px",top:n+"px",height:o+"px",width:r+"px"}),pe(i,{"data-column":e,role:"presentation"}),i},qo=function(e,t,n,r,o){var i=Te.fromTag("div");return Ae(i,{position:"absolute",left:t+"px",top:n-o/2+"px",height:o+"px",width:r+"px"}),pe(i,{"data-row":e,role:"presentation"}),i},Vo=Ho.resolve("resizer-bar"),Go=Ho.resolve("resizer-rows"),Yo=Ho.resolve("resizer-cols"),Xo=function(e){var t=Xt(e.parent(),"."+Vo);P(t,Pt)},Ko=function(n,e,r){var o=n.origin();P(e,function(e,t){e.each(function(e){var t=r(o,e);Io(t,Vo),Ot(n.parent(),t)})})},Jo=function(e,t,n,r,o,i){var u,a,c,l,f=uo(t),s=0<n.length?o.positions(n,t):[];u=e,a=s,c=f,l=Hr(t),Ko(u,a,function(e,t){var n=qo(t.row(),c.left()-e.left(),t.y()-e.top(),l,7);return Io(n,Go),n});var d,m,g,h,p=0<r.length?i.positions(r,t):[];d=e,m=p,g=f,h=Fr(t),Ko(d,m,function(e,t){var n=Uo(t.col(),t.x()-e.left(),g.top()-e.top(),7,h);return Io(n,Yo),n})},$o=function(e,t){var n=Xt(e.parent(),"."+Vo);P(n,t)},Qo=function(e,t,n,r){Xo(e);var o=mn(t),i=vn.generate(o),u=jo(i),a=Fo(i);Jo(e,t,u,a,n,r)},Zo=function(e){$o(e,function(e){ke(e,"display","none")})},ei=function(e){$o(e,function(e){ke(e,"display","block")})},ti=Xo,ni=function(e){return Wo(e,Go)},ri=function(e){return Wo(e,Yo)},oi=function(e,t){return Ht(t,e.section())},ii=function(e,t){return e.cells()[t]},ui={addCell:function(e,t,n){var r=e.cells(),o=r.slice(0,t),i=r.slice(t),u=o.concat([n]).concat(i);return oi(e,u)},setCells:oi,mutateCell:function(e,t,n){e.cells()[t]=n},getCell:ii,getCellElement:function(e,t){return ii(e,t).element()},mapCells:function(e,t){var n=e.cells(),r=A(n,t);return Ht(r,e.section())},cellLength:function(e){return e.cells().length}},ai=function(e,t){if(0===e.length)return 0;var n=e[0];return _(e,function(e){return!t(n.element(),e.element())}).fold(function(){return e.length},function(e){return e})},ci=function(e,t,n,r){var o,i,u,a,c=(o=e,i=t,o[i]).cells().slice(n),l=ai(c,r),f=(u=e,a=n,A(u,function(e){return ui.getCell(e,a)})).slice(t),s=ai(f,r);return{colspan:C(l),rowspan:C(s)}},li=function(o,i){var u=A(o,function(e,t){return A(e.cells(),function(e,t){return!1})});return A(o,function(e,r){var t=z(e.cells(),function(e,t){if(!1===u[r][t]){var n=ci(o,r,t,i);return function(e,t,n,r){for(var o=e;o<e+n;o++)for(var i=t;i<t+r;i++)u[o][i]=!0}(r,t,n.rowspan(),n.colspan()),[_t(e.element(),n.rowspan(),n.colspan(),e.isNew())]}return[]});return Ut(t,e.section())})},fi=function(e,t,n){for(var r=[],o=0;o<e.grid().rows();o++){for(var i=[],u=0;u<e.grid().columns();u++){var a=vn.getAt(e,o,u).map(function(e){return jt(e.element(),n)}).getOrThunk(function(){return jt(t.gap(),!0)});i.push(a)}var c=Ht(i,e.all()[o].section());r.push(c)}return r},si=function(e,r){return A(e,function(e){var t,n=(t=e.details(),To(t,function(e){return bt(e.element()).map(function(e){var t=bt(e).isNone();return jt(e,t)})}).getOrThunk(function(){return jt(r.row(),!0)}));return zt(n.element(),e.details(),e.section(),n.isNew())})},di=function(e,t){var n=li(e,gt);return si(n,t)},mi=function(e,t){var n=j(A(e.all(),function(e){return e.cells()}));return M(n,function(e){return gt(t,e.element())})},gi=function(a,c,l,f,s){return function(n,r,e,o,i){var t=mn(r),u=vn.generate(t);return c(u,e).map(function(e){var t=fi(u,o,!1),n=a(t,e,gt,s(o)),r=di(n.grid(),o);return{grid:C(r),cursor:n.cursor}}).fold(function(){return S.none()},function(e){var t=Oo(r,e.grid());return l(r,e.grid(),i),f(r),Qo(n,r,wo.height,i),S.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})})}},hi=function(t,e){return dn.cell(e.element()).bind(function(e){return mi(t,e)})},pi=function(t,e){var n=A(e.selection(),function(e){return dn.cell(e).bind(function(e){return mi(t,e)})}),r=Ro(n);return 0<r.length?S.some({cells:r,generators:e.generators,clipboard:e.clipboard}):S.none()},vi=function(t,e){var n=A(e.selection(),function(e){return dn.cell(e).bind(function(e){return mi(t,e)})}),r=Ro(n);return 0<r.length?S.some(r):S.none()},bi=function(n){return{is:function(e){return n===e},isValue:a,isError:f,getOr:C(n),getOrThunk:C(n),getOrDie:C(n),or:function(e){return bi(n)},orThunk:function(e){return bi(n)},fold:function(e,t){return t(n)},map:function(e){return bi(e(n))},mapError:function(e){return bi(n)},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return S.some(n)}}},wi=function(n){return{is:f,isValue:f,isError:a,getOr:o,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return wi(n)},mapError:function(e){return wi(e(n))},each:y,bind:function(e){return wi(n)},exists:f,forall:a,toOption:S.none}},yi={value:bi,error:wi,fromOption:function(e,t){return e.fold(function(){return wi(t)},bi)}},xi=function(e,t){return A(e,function(){return jt(t.cell(),!0)})},Ci=function(t,e,n){return t.concat(function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n}(e,function(e){return ui.setCells(t[t.length-1],xi(t[t.length-1].cells(),n))}))},Si=function(e,t,n){return A(e,function(e){return ui.setCells(e,e.cells().concat(xi(Mo(0,t),n)))})},Ri=function(e,t,n){if(e.row()>=t.length||e.column()>ui.cellLength(t[0]))return yi.error("invalid start address out of table bounds, row: "+e.row()+", column: "+e.column());var r=t.slice(e.row()),o=r[0].cells().slice(e.column()),i=ui.cellLength(n[0]),u=n.length;return yi.value({rowDelta:C(r.length-u),colDelta:C(o.length-i)})},Ti=function(e,t){var n=ui.cellLength(e[0]),r=ui.cellLength(t[0]);return{rowDelta:C(0),colDelta:C(n-r)}},Di=function(e,t,n){var r=t.colDelta()<0?Si:o;return(t.rowDelta()<0?Ci:o)(r(e,Math.abs(t.colDelta()),n),Math.abs(t.rowDelta()),n)},Oi=function(e,t,n,r){if(0===e.length)return e;for(var o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)ui.mutateCell(e[o],i,jt(r(),!1));return e},Ni=function(e,t,n,r){for(var o=!0,i=0;i<e.length;i++)for(var u=0;u<ui.cellLength(e[0]);u++){var a=n(ui.getCellElement(e[i],u),t);!0===a&&!1===o?ui.mutateCell(e[i],u,jt(r(),!0)):!0===a&&(o=!1)}return e},Ei=function(i,n,u,a){if(0<n&&n<i.length){var e=i[n-1].cells(),t=(r=u,W(e,function(e,t){return k(e,function(e){return r(e.element(),t.element())})?e:e.concat([t])},[]));P(t,function(r){for(var o=S.none(),e=function(n){for(var e=function(t){var e=i[n].cells()[t];u(e.element(),r.element())&&(o.isNone()&&(o=S.some(a())),o.each(function(e){ui.mutateCell(i[n],t,jt(e,!0))}))},t=0;t<ui.cellLength(i[0]);t++)e(t)},t=n;t<i.length;t++)e(t)})}var r;return i},ki=function(n,r,o,i,u){return Ri(n,r,o).map(function(e){var t=Di(r,e,i);return function(e,t,n,r,o){for(var i,u,a,c,l,f=e.row(),s=e.column(),d=f+n.length,m=s+ui.cellLength(n[0]),g=f;g<d;g++)for(var h=s;h<m;h++){i=t,u=g,a=h,l=c=void 0,c=b(o,ui.getCell(i[u],a).element()),l=i[u],1<i.length&&1<ui.cellLength(l)&&(0<a&&c(ui.getCellElement(l,a-1))||a<l.cells().length-1&&c(ui.getCellElement(l,a+1))||0<u&&c(ui.getCellElement(i[u-1],a))||u<i.length-1&&c(ui.getCellElement(i[u+1],a)))&&Ni(t,ui.getCellElement(t[g],h),o,r.cell);var p=ui.getCellElement(n[g-f],h-s),v=r.replace(p);ui.mutateCell(t[g],h,jt(v,!0))}return t}(n,t,o,i,u)})},Ai=function(e,t,n,r,o){Ei(t,e,o,r.cell);var i=Ti(n,t),u=Di(n,i,r),a=Ti(t,u),c=Di(t,a,r);return c.slice(0,e).concat(u).concat(c.slice(e,c.length))},Pi=function(n,r,e,o,i){var t=n.slice(0,r),u=n.slice(r),a=ui.mapCells(n[e],function(e,t){return 0<r&&r<n.length&&o(ui.getCellElement(n[r-1],t),ui.getCellElement(n[r],t))?ui.getCell(n[r],t):jt(i(e.element(),o),!0)});return t.concat([a]).concat(u)},Ii=function(e,n,r,o,i){return A(e,function(e){var t=0<n&&n<ui.cellLength(e)&&o(ui.getCellElement(e,n-1),ui.getCellElement(e,n))?ui.getCell(e,n):jt(i(ui.getCellElement(e,r),o),!0);return ui.addCell(e,n,t)})},Bi=function(e,r,o,i,u){var a=o+1;return A(e,function(e,t){var n=t===r?jt(u(ui.getCellElement(e,o),i),!0):ui.getCell(e,o);return ui.addCell(e,a,n)})},Wi=function(e,t,n,r,o){var i=t+1,u=e.slice(0,i),a=e.slice(i),c=ui.mapCells(e[t],function(e,t){return t===n?jt(o(e.element(),r),!0):e});return u.concat([c]).concat(a)},Mi=function(e,t,n){return e.slice(0,t).concat(e.slice(n+1))},_i=function(e,n,r){var t=A(e,function(e){var t=e.cells().slice(0,n).concat(e.cells().slice(r+1));return Ht(t,e.section())});return I(t,function(e){return 0<e.cells().length})},Li=function(e,n,r,o){return A(e,function(e){return ui.mapCells(e,function(e){return t=e,k(n,function(e){return r(t.element(),e.element())})?jt(o(e.element(),r),!0):e;var t})})},Fi=function(e,t,n,r){return ui.getCellElement(e[t],n)!==undefined&&0<t&&r(ui.getCellElement(e[t-1],n),ui.getCellElement(e[t],n))},ji=function(e,t,n){return 0<t&&n(ui.getCellElement(e,t-1),ui.getCellElement(e,t))},zi=function(n,r,o,e){var t=z(n,function(e,t){return Fi(n,t,r,o)||ji(e,r,o)?[]:[ui.getCell(e,r)]});return Li(n,t,o,e)},Hi=function(n,r,o,e){var i=n[r],t=z(i.cells(),function(e,t){return Fi(n,r,t,o)||ji(i,t,o)?[]:[e]});return Li(n,t,o,e)},Ui=Tr([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}]),qi=So({},Ui),Vi=function(e,t,i,u){var n,r,a=e.slice(0),o=(r=t,0===(n=e).length?qi.none():1===n.length?qi.only(0):0===r?qi.left(0,1):r===n.length-1?qi.right(r-1,r):0<r&&r<n.length-1?qi.middle(r-1,r,r+1):qi.none()),c=function(e){return A(e,C(0))},l=C(c(a)),f=function(e,t){if(0<=i){var n=Math.max(u.minCellWidth(),a[t]-i);return c(a.slice(0,e)).concat([i,n-a[t]]).concat(c(a.slice(t+1)))}var r=Math.max(u.minCellWidth(),a[e]+i),o=a[e]-r;return c(a.slice(0,e)).concat([r-a[e],o]).concat(c(a.slice(t+1)))},s=f;return o.fold(l,function(e){return u.singleColumnWidth(a[e],i)},s,function(e,t,n){return f(t,n)},function(e,t){if(0<=i)return c(a.slice(0,t)).concat([i]);var n=Math.max(u.minCellWidth(),a[t]+i);return c(a.slice(0,t)).concat([n-a[t]])})},Gi=function(e,t){return be(e,t)&&1<parseInt(ve(e,t),10)},Yi={hasColspan:function(e){return Gi(e,"colspan")},hasRowspan:function(e){return Gi(e,"rowspan")},minWidth:C(10),minHeight:C(10),getInt:function(e,t){return parseInt(Pe(e,t),10)}},Xi=function(e,t,n){return Be(e,t).fold(function(){return n(e)+"px"},function(e){return e})},Ki=function(e,t){return Xi(e,"width",function(e){return to.getPixelWidth(e,t)})},Ji=function(e){return Xi(e,"height",to.getHeight)},$i=function(e,t,n,r,o){var i=Fo(e),u=A(i,function(e){return e.map(t.edge)});return A(i,function(e,t){return e.filter(g(Yi.hasColspan)).fold(function(){var e=_o(u,t);return r(e)},function(e){return n(e,o)})})},Qi=function(e){return e.map(function(e){return e+"px"}).getOr("")},Zi=function(e,t,n,r){var o=jo(e),i=A(o,function(e){return e.map(t.edge)});return A(o,function(e,t){return e.filter(g(Yi.hasRowspan)).fold(function(){var e=_o(i,t);return r(e)},function(e){return n(e)})})},eu={getRawWidths:function(e,t,n){return $i(e,t,Ki,Qi,n)},getPixelWidths:function(e,t,n){return $i(e,t,to.getPixelWidth,function(e){return e.getOrThunk(n.minCellWidth)},n)},getPercentageWidths:function(e,t,n){return $i(e,t,to.getPercentageWidth,function(e){return e.fold(function(){return n.minCellWidth()},function(e){return e/n.pixelWidth()*100})},n)},getPixelHeights:function(e,t){return Zi(e,t,to.getHeight,function(e){return e.getOrThunk(Yi.minHeight)})},getRawHeights:function(e,t){return Zi(e,t,Ji,Qi)}},tu=function(e,t,n){for(var r=0,o=e;o<t;o++)r+=n[o]!==undefined?n[o]:0;return r},nu=function(e,n){var t=vn.justCells(e);return A(t,function(e){var t=tu(e.column(),e.column()+e.colspan(),n);return{element:e.element,width:C(t),colspan:e.colspan}})},ru=function(e,n){var t=vn.justCells(e);return A(t,function(e){var t=tu(e.row(),e.row()+e.rowspan(),n);return{element:e.element,height:C(t),rowspan:e.rowspan}})},ou=function(e,n){return A(e.all(),function(e,t){return{element:e.element,height:C(n[t])}})},iu=function(e){var t=o;return{width:C(e),pixelWidth:C(e),getWidths:eu.getPixelWidths,getCellDelta:t,singleColumnWidth:function(e,t){return[Math.max(Yi.minWidth(),e+t)-e]},minCellWidth:Yi.minWidth,setElementWidth:to.setPixelWidth,setTableWidth:function(e,t,n){var r=B(t,function(e,t){return e+t},0);to.setPixelWidth(e,r)}}},uu=function(e,t){var n,r,o,i,u=to.percentageBasedSizeRegex().exec(t);if(null!==u)return n=u[1],r=e,o=parseFloat(n),i=zr(r),{width:C(o),pixelWidth:C(i),getWidths:eu.getPercentageWidths,getCellDelta:function(e){return e/i*100},singleColumnWidth:function(e,t){return[100-e]},minCellWidth:function(){return Yi.minWidth()/i*100},setElementWidth:to.setPercentageWidth,setTableWidth:function(e,t,n){var r=n/100*o;to.setPercentageWidth(e,o+r)}};var a=to.pixelBasedSizeRegex().exec(t);if(null!==a){var c=parseInt(a[1],10);return iu(c)}var l=zr(e);return iu(l)},au=function(t){return to.getRawWidth(t).fold(function(){var e=zr(t);return iu(e)},function(e){return uu(t,e)})},cu=function(e){return vn.generate(e)},lu=function(e){var t=mn(e);return cu(t)},fu=function(e,t,n,r){var o=au(e),i=o.getCellDelta(t),u=lu(e),a=o.getWidths(u,r,o),c=Vi(a,n,i,o),l=A(c,function(e,t){return e+a[t]}),f=nu(u,l);P(f,function(e){o.setElementWidth(e.element(),e.width())}),n===u.grid().columns()-1&&o.setTableWidth(e,l,i)},su=function(e,n,r,t){var o=lu(e),i=eu.getPixelHeights(o,t),u=A(i,function(e,t){return r===t?Math.max(n+e,Yi.minHeight()):e}),a=ru(o,u),c=ou(o,u);P(c,function(e){to.setHeight(e.element(),e.height())}),P(a,function(e){to.setHeight(e.element(),e.height())});var l=B(u,function(e,t){return e+t},0);to.setHeight(e,l)},du=function(e,t,n){var r=au(e),o=cu(t),i=r.getWidths(o,n,r),u=nu(o,i);P(u,function(e){r.setElementWidth(e.element(),e.width())}),0<u.length&&r.setTableWidth(e,i,r.getCellDelta(0))},mu=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return mu(n())}}},gu=function(r,o,i){if(0===o.length)throw new Error("You must specify at least one required field.");return Q("required",o),Z(o),function(t){var n=q(t);H(o,function(e){return E(n,e)})||J(o,n),r(o,n);var e=I(o,function(e){return!i.validate(t[e],e)});return 0<e.length&&function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+K(e).join(", ")+") were not.")}(e,i.label),t}},hu=function(t,e){var n=I(e,function(e){return!E(t,e)});0<n.length&&$(n)},pu=function(e){return gu(hu,e,{validate:T,label:"function"})},vu=pu(["cell","row","replace","gap"]),bu=function(e){var t=be(e,"colspan")?parseInt(ve(e,"colspan"),10):1,n=be(e,"rowspan")?parseInt(ve(e,"rowspan"),10):1;return{element:C(e),colspan:C(t),rowspan:C(n)}},wu=function(r,o){void 0===o&&(o=bu),vu(r);var n=mu(S.none()),i=function(e){var t,n=o(e);return t=n,r.cell(t)},u=function(e){var t=i(e);return n.get().isNone()&&n.set(S.some(t)),a=S.some({item:e,replacement:t}),t},a=S.none();return{getOrInit:function(t,n){return a.fold(function(){return u(t)},function(e){return n(t,e.item)?e.replacement:u(t)})},cursor:n.get}},yu=function(a,c){return function(r){var o=mu(S.none());vu(r);var i=[],u=function(e){var t={scope:a},n=r.replace(e,c,t);return i.push({item:e,sub:n}),o.get().isNone()&&o.set(S.some(n)),n};return{replaceOrInit:function(t,n){return(r=t,o=n,M(i,function(e){return o(e.item,r)})).fold(function(){return u(t)},function(e){return n(t,e.item)?e.sub:u(t)});var r,o},cursor:o.get}}},xu=function(n){vu(n);var e=mu(S.none());return{combine:function(t){return e.get().isNone()&&e.set(S.some(t)),function(){var e=n.cell({element:C(t),colspan:C(1),rowspan:C(1)});return We(e,"width"),We(t,"width"),e}},cursor:e.get}},Cu=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Su=function(e,t){var n=e.property().name(t);return E(Cu,n)},Ru=function(e,t){return E(["br","img","hr","input"],e.property().name(t))},Tu=Su,Du=function(e,t){var n=e.property().name(t);return E(["ol","ul"],n)},Ou=Ru,Nu=tr(),Eu=function(e){return Tu(Nu,e)},ku=function(e){return Du(Nu,e)},Au=function(e){return Ou(Nu,e)},Pu=function(e){var t,i=function(e){return"br"===ce(e)},n=function(o){return Nn(o).bind(function(n){var r=xt(n).map(function(e){return!!Eu(e)||!!Au(e)&&"img"!==ce(e)}).getOr(!1);return bt(n).map(function(e){return!0===r||"li"===ce(t=e)||Zt(t,ku).isSome()||i(n)||Eu(e)&&!gt(o,e)?[]:[Te.fromTag("br")];var t})}).getOr([])},r=0===(t=z(e,function(e){var t=Ct(e);return H(t,function(e){return i(e)||me(e)&&0===xn(e).trim().length})?[]:t.concat(n(e))})).length?[Te.fromTag("br")]:t;At(e[0]),kt(e[0],r)},Iu=function(e){0===dn.cells(e).length&&Pt(e)},Bu=X("grid","cursor"),Wu=function(e,t,n){return Mu(e,t,n).orThunk(function(){return Mu(e,0,0)})},Mu=function(e,t,n){return S.from(e[t]).bind(function(e){return S.from(e.cells()[n]).bind(function(e){return S.from(e.element())})})},_u=function(e,t,n){return Bu(e,Mu(e,t,n))},Lu=function(e){return W(e,function(e,t){return k(e,function(e){return e.row()===t.row()})?e:e.concat([t])},[]).sort(function(e,t){return e.row()-t.row()})},Fu=function(e){return W(e,function(e,t){return k(e,function(e){return e.column()===t.column()})?e:e.concat([t])},[]).sort(function(e,t){return e.column()-t.column()})},ju=function(e,t,n){var r=gn(e,n),o=vn.generate(r);return fi(o,t,!0)},zu=du,Hu={insertRowBefore:gi(function(e,t,n,r){var o=t.row(),i=t.row(),u=Pi(e,i,o,n,r.getOrInit);return _u(u,i,t.column())},hi,y,y,wu),insertRowsBefore:gi(function(e,t,n,r){var o=t[0].row(),i=t[0].row(),u=Lu(t),a=W(u,function(e,t){return Pi(e,i,o,n,r.getOrInit)},e);return _u(a,i,t[0].column())},vi,y,y,wu),insertRowAfter:gi(function(e,t,n,r){var o=t.row(),i=t.row()+t.rowspan(),u=Pi(e,i,o,n,r.getOrInit);return _u(u,i,t.column())},hi,y,y,wu),insertRowsAfter:gi(function(e,t,n,r){var o=Lu(t),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),a=W(o,function(e,t){return Pi(e,u,i,n,r.getOrInit)},e);return _u(a,u,t[0].column())},vi,y,y,wu),insertColumnBefore:gi(function(e,t,n,r){var o=t.column(),i=t.column(),u=Ii(e,i,o,n,r.getOrInit);return _u(u,t.row(),i)},hi,zu,y,wu),insertColumnsBefore:gi(function(e,t,n,r){var o=Fu(t),i=o[0].column(),u=o[0].column(),a=W(o,function(e,t){return Ii(e,u,i,n,r.getOrInit)},e);return _u(a,t[0].row(),u)},vi,zu,y,wu),insertColumnAfter:gi(function(e,t,n,r){var o=t.column(),i=t.column()+t.colspan(),u=Ii(e,i,o,n,r.getOrInit);return _u(u,t.row(),i)},hi,zu,y,wu),insertColumnsAfter:gi(function(e,t,n,r){var o=t[t.length-1].column(),i=t[t.length-1].column()+t[t.length-1].colspan(),u=Fu(t),a=W(u,function(e,t){return Ii(e,i,o,n,r.getOrInit)},e);return _u(a,t[0].row(),i)},vi,zu,y,wu),splitCellIntoColumns:gi(function(e,t,n,r){var o=Bi(e,t.row(),t.column(),n,r.getOrInit);return _u(o,t.row(),t.column())},hi,zu,y,wu),splitCellIntoRows:gi(function(e,t,n,r){var o=Wi(e,t.row(),t.column(),n,r.getOrInit);return _u(o,t.row(),t.column())},hi,y,y,wu),eraseColumns:gi(function(e,t,n,r){var o=Fu(t),i=_i(e,o[0].column(),o[o.length-1].column()),u=Wu(i,t[0].row(),t[0].column());return Bu(i,u)},vi,zu,Iu,wu),eraseRows:gi(function(e,t,n,r){var o=Lu(t),i=Mi(e,o[0].row(),o[o.length-1].row()),u=Wu(i,t[0].row(),t[0].column());return Bu(i,u)},vi,y,Iu,wu),makeColumnHeader:gi(function(e,t,n,r){var o=zi(e,t.column(),n,r.replaceOrInit);return _u(o,t.row(),t.column())},hi,y,y,yu("row","th")),unmakeColumnHeader:gi(function(e,t,n,r){var o=zi(e,t.column(),n,r.replaceOrInit);return _u(o,t.row(),t.column())},hi,y,y,yu(null,"td")),makeRowHeader:gi(function(e,t,n,r){var o=Hi(e,t.row(),n,r.replaceOrInit);return _u(o,t.row(),t.column())},hi,y,y,yu("col","th")),unmakeRowHeader:gi(function(e,t,n,r){var o=Hi(e,t.row(),n,r.replaceOrInit);return _u(o,t.row(),t.column())},hi,y,y,yu(null,"td")),mergeCells:gi(function(e,t,n,r){var o=t.cells();Pu(o);var i=Oi(e,t.bounds(),n,C(o[0]));return Bu(i,S.from(o[0]))},function(e,t){return t.mergable()},y,y,xu),unmergeCells:gi(function(e,t,n,r){var o=B(t,function(e,t){return Ni(e,t,n,r.combine(t))},e);return Bu(o,S.from(t[0]))},function(e,t){return t.unmergable()},zu,y,xu),pasteCells:gi(function(e,n,t,r){var o,i,u,a,c=(o=n.clipboard(),i=n.generators(),u=mn(o),a=vn.generate(u),fi(a,i,!0)),l=Wt(n.row(),n.column());return ki(l,e,c,n.generators(),t).fold(function(){return Bu(e,S.some(n.element()))},function(e){var t=Wu(e,n.row(),n.column());return Bu(e,t)})},function(t,n){return dn.cell(n.element()).bind(function(e){return mi(t,e).map(function(e){return So({},e,{generators:n.generators,clipboard:n.clipboard})})})},zu,y,wu),pasteRowsBefore:gi(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[0].row(),u=ju(t.clipboard(),t.generators(),o),a=Ai(i,e,u,t.generators(),n),c=Wu(a,t.cells[0].row(),t.cells[0].column());return Bu(a,c)},pi,y,y,wu),pasteRowsAfter:gi(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[t.cells.length-1].row()+t.cells[t.cells.length-1].rowspan(),u=ju(t.clipboard(),t.generators(),o),a=Ai(i,e,u,t.generators(),n),c=Wu(a,t.cells[0].row(),t.cells[0].column());return Bu(a,c)},pi,y,y,wu)},Uu=function(e){return Te.fromDom(e.getBody())},qu=function(e){return e.getBoundingClientRect().width},Vu=function(e){return e.getBoundingClientRect().height},Gu=function(t){return function(e){return gt(e,Uu(t))}},Yu=function(e){return/^[0-9]+$/.test(e)&&(e+="px"),e},Xu=function(e){var t=Xt(e,"td[data-mce-style],th[data-mce-style]");we(e,"data-mce-style"),P(t,function(e){we(e,"data-mce-style")})},Ku={isRtl:C(!1)},Ju={isRtl:C(!0)},$u={directionAt:function(e){return"rtl"==("rtl"===Pe(e,"direction")?"rtl":"ltr")?Ju:Ku}},Qu=["tableprops","tabledelete","|","tableinsertrowbefore","tableinsertrowafter","tabledeleterow","|","tableinsertcolbefore","tableinsertcolafter","tabledeletecol"],Zu={"border-collapse":"collapse",width:"100%"},ea={border:"1"},ta=function(e){return e.getParam("table_cell_advtab",!0,"boolean")},na=function(e){return e.getParam("table_row_advtab",!0,"boolean")},ra=function(e){return e.getParam("table_advtab",!0,"boolean")},oa=function(e){return e.getParam("table_style_by_css",!1,"boolean")},ia=function(e){return e.getParam("table_cell_class_list",[],"array")},ua=function(e){return e.getParam("table_row_class_list",[],"array")},aa=function(e){return e.getParam("table_class_list",[],"array")},ca=function(e){return!1===e.getParam("table_responsive_width")},la=function(e,t){return e.fire("newrow",{node:t})},fa=function(e,t){return e.fire("newcell",{node:t})},sa=function(e,t,n,r){e.fire("ObjectResizeStart",{target:t,width:n,height:r})},da=function(e,t,n,r){e.fire("ObjectResized",{target:t,width:n,height:r})},ma=function(f,e){var t,n=function(e){return"table"===ce(Uu(e))},s=(t=f.getParam("table_clone_elements"),v(t)?S.some(t.split(/[ ,]/)):Array.isArray(t)?S.some(t):S.none()),r=function(u,a,c,l){return function(e,t){Xu(e);var n=l(),r=Te.fromDom(f.getDoc()),o=xo($u.directionAt),i=Ln(c,r,s);return a(e)?u(n,e,t,i,o).bind(function(e){return P(e.newRows(),function(e){la(f,e.dom())}),P(e.newCells(),function(e){fa(f,e.dom())}),e.cursor().map(function(e){var t=f.dom.createRng();return t.setStart(e.dom(),0),t.setEnd(e.dom(),0),t})}):S.none()}};return{deleteRow:r(Hu.eraseRows,function(e){var t=Co(e);return!1===n(f)||1<t.rows()},y,e),deleteColumn:r(Hu.eraseColumns,function(e){var t=Co(e);return!1===n(f)||1<t.columns()},y,e),insertRowsBefore:r(Hu.insertRowsBefore,a,y,e),insertRowsAfter:r(Hu.insertRowsAfter,a,y,e),insertColumnsBefore:r(Hu.insertColumnsBefore,a,no,e),insertColumnsAfter:r(Hu.insertColumnsAfter,a,no,e),mergeCells:r(Hu.mergeCells,a,y,e),unmergeCells:r(Hu.unmergeCells,a,y,e),pasteRowsBefore:r(Hu.pasteRowsBefore,a,y,e),pasteRowsAfter:r(Hu.pasteRowsAfter,a,y,e),pasteCells:r(Hu.pasteCells,a,y,e)}},ga=function(e,t,r){var n=mn(e),o=vn.generate(n);return vi(o,t).map(function(e){var t=fi(o,r,!1).slice(e[0].row(),e[e.length-1].row()+e[e.length-1].rowspan()),n=di(t,r);return No(n)})},ha=tinymce.util.Tools.resolve("tinymce.util.Tools"),pa=function(e,t,n){n&&e.formatter.apply("align"+n,{},t)},va=function(e,t,n){n&&e.formatter.apply("valign"+n,{},t)},ba=function(t,n){ha.each("left center right".split(" "),function(e){t.formatter.remove("align"+e,{},n)})},wa=function(t,n){ha.each("top middle bottom".split(" "),function(e){t.formatter.remove("valign"+e,{},n)})},ya=function(o,e,i){var t;return t=function(e,t){for(var n=0;n<t.length;n++){var r=o.getStyle(t[n],i);if(void 0===e&&(e=r),e!==r)return""}return e}(t,o.select("td,th",e))},xa=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);i["border-style"]=o.borderStyle,i["border-color"]=o.borderColor,i["background-color"]=o.backgroundColor,i.width=o.width?Yu(o.width):"",i.height=o.height?Yu(o.height):"",r.find("#style").value(n.serializeStyle(n.parseStyle(n.serializeStyle(i))))},Ca=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);r.find("#borderStyle").value(i["border-style"]||""),r.find("#borderColor").value(i["border-color"]||""),r.find("#backgroundColor").value(i["background-color"]||""),r.find("#width").value(i.width||""),r.find("#height").value(i.height||"")},Sa={createStyleForm:function(n){var e=function(){var e=n.getParam("color_picker_callback");if(e)return function(t){return e.call(n,function(e){t.control.value(e).fire("change")},t.control.value())}};return{title:"Advanced",type:"form",defaults:{onchange:b(xa,n)},items:[{label:"Style",name:"style",type:"textbox",onchange:b(Ca,n)},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border style",type:"listbox",name:"borderStyle",width:90,onselect:b(xa,n),values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}},buildListItems:function(e,r,t){var o=function(e,n){return n=n||[],ha.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=o(e.menu):(t.value=e.value,r&&r(t)),n.push(t)}),n};return o(e,t||[])},updateStyleField:xa,extractAdvancedStyles:function(e,t){var n=e.parseStyle(e.getAttrib(t,"style")),r={};return n["border-style"]&&(r.borderStyle=n["border-style"]),n["border-color"]&&(r.borderColor=n["border-color"]),n["background-color"]&&(r.backgroundColor=n["background-color"]),r.style=e.serializeStyle(n),r},updateAdvancedFields:Ca,syncAdvancedStyleFields:function(e,t){t.control.rootControl.find("#style")[0].getEl().isEqualNode(m.document.activeElement)?Ca(e,t):xa(e,t)}},Ra=function(r,o,e){var i,u=r.dom;function a(e,t,n){(1===o.length||n)&&u.setAttrib(e,t,n)}function c(e,t,n){(1===o.length||n)&&u.setStyle(e,t,n)}ta(r)&&Sa.syncAdvancedStyleFields(r,e),i=e.control.rootControl.toJSON(),r.undoManager.transact(function(){ha.each(o,function(e){var t,n;a(e,"scope",i.scope),1===o.length?a(e,"style",i.style):(t=e,n=i.style,delete t.dataset.mceStyle,t.style.cssText+=";"+n),a(e,"class",i["class"]),c(e,"width",Yu(i.width)),c(e,"height",Yu(i.height)),i.type&&e.nodeName.toLowerCase()!==i.type&&(e=u.rename(e,i.type)),1===o.length&&(ba(r,e),wa(r,e)),i.align&&pa(r,e,i.align),i.valign&&va(r,e,i.valign)}),r.focus()})},Ta=function(t){var e,n,r,o=[];if(o=t.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=t.dom.getParent(t.selection.getStart(),"td,th"),!o.length&&e&&o.push(e),e=e||o[0]){var i,u,a,c;1<o.length?n={width:"",height:"",scope:"","class":"",align:"",valign:"",style:"",type:e.nodeName.toLowerCase()}:(u=e,a=(i=t).dom,c={width:a.getStyle(u,"width")||a.getAttrib(u,"width"),height:a.getStyle(u,"height")||a.getAttrib(u,"height"),scope:a.getAttrib(u,"scope"),"class":a.getAttrib(u,"class"),type:u.nodeName.toLowerCase(),style:"",align:"",valign:""},ha.each("left center right".split(" "),function(e){i.formatter.matchNode(u,"align"+e)&&(c.align=e)}),ha.each("top middle bottom".split(" "),function(e){i.formatter.matchNode(u,"valign"+e)&&(c.valign=e)}),ta(i)&&ha.extend(c,Sa.extractAdvancedStyles(a,u)),n=c),0<ia(t).length&&(r={name:"class",type:"listbox",label:"Class",values:Sa.buildListItems(ia(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"td",classes:[e.value]})})})});var l={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width",onchange:b(Sa.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Sa.updateStyleField,t)},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},r]};ta(t)?t.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:l},Sa.createStyleForm(t)],onsubmit:b(Ra,t,o)}):t.windowManager.open({title:"Cell properties",data:n,body:l,onsubmit:b(Ra,t,o)})}};function Da(f,s,d,e){var m=f.dom;function g(e,t,n){(1===s.length||n)&&m.setAttrib(e,t,n)}na(f)&&Sa.syncAdvancedStyleFields(f,e);var h=e.control.rootControl.toJSON();f.undoManager.transact(function(){ha.each(s,function(e){var t,n,r,o,i,u,a,c,l;g(e,"scope",h.scope),g(e,"style",h.style),g(e,"class",h["class"]),t=e,n="height",r=Yu(h.height),(1===s.length||r)&&m.setStyle(t,n,r),h.type!==e.parentNode.nodeName.toLowerCase()&&(o=f.dom,i=e,u=h.type,a=o.getParent(i,"table"),c=i.parentNode,(l=o.select(u,a)[0])||(l=o.create(u),a.firstChild?"CAPTION"===a.firstChild.nodeName?o.insertAfter(l,a.firstChild):a.insertBefore(l,a.firstChild):a.appendChild(l)),l.appendChild(i),c.hasChildNodes()||o.remove(c)),h.align!==d.align&&(ba(f,e),pa(f,e,h.align))}),f.focus()})}var Oa=function(t){var e,n,r,o,i,u,a,c,l,f,s=t.dom,d=[];e=s.getParent(t.selection.getStart(),"table"),n=s.getParent(t.selection.getStart(),"td,th"),ha.each(e.rows,function(t){ha.each(t.cells,function(e){if(s.getAttrib(e,"data-mce-selected")||e===n)return d.push(t),!1})}),(r=d[0])&&(1<d.length?i={height:"",scope:"",style:"","class":"",align:"",type:r.parentNode.nodeName.toLowerCase()}:(c=r,l=(a=t).dom,f={height:l.getStyle(c,"height")||l.getAttrib(c,"height"),scope:l.getAttrib(c,"scope"),"class":l.getAttrib(c,"class"),align:"",style:"",type:c.parentNode.nodeName.toLowerCase()},ha.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),na(a)&&ha.extend(f,Sa.extractAdvancedStyles(l,c)),i=f),0<ua(t).length&&(o={name:"class",type:"listbox",label:"Class",values:Sa.buildListItems(ua(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"tr",classes:[e.value]})})})}),u={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},na(t)?t.windowManager.open({title:"Row properties",data:i,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Sa.createStyleForm(t)],onsubmit:b(Da,t,d,i)}):t.windowManager.open({title:"Row properties",data:i,body:u,onsubmit:b(Da,t,d,i)}))},Na=tinymce.util.Tools.resolve("tinymce.Env"),Ea={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},percentages:!0},ka=function(e,t,n,r,o){void 0===o&&(o=Ea);var i=Te.fromTag("table");Ae(i,o.styles),pe(i,o.attributes);var u=Te.fromTag("tbody");Ot(i,u);for(var a=[],c=0;c<e;c++){for(var l=Te.fromTag("tr"),f=0;f<t;f++){var s=c<n||f<r?Te.fromTag("th"):Te.fromTag("td");f<r&&he(s,"scope","row"),c<n&&he(s,"scope","col"),Ot(s,Te.fromTag("br")),o.percentages&&ke(s,"width",100/t+"%"),Ot(l,s)}a.push(l)}return kt(u,a),i},Aa=function(e,t){e.selection.select(t.dom(),!0),e.selection.collapse(!0)},Pa=function(r,e,t){var n,o,i=r.getParam("table_default_styles",Zu,"object"),u={styles:i,attributes:(o=r,o.getParam("table_default_attributes",ea,"object")),percentages:(n=i.width,v(n)&&-1!==n.indexOf("%")&&!ca(r))},a=ka(t,e,0,0,u);he(a,"data-mce-id","__mce");var c,l,f,s=(c=a,l=Te.fromTag("div"),f=Te.fromDom(c.dom().cloneNode(!0)),Ot(l,f),l.dom().innerHTML);return r.insertContent(s),nn(Uu(r),'table[data-mce-id="__mce"]').map(function(e){var t,n;return ca(r)&&ke(e,"width",Pe(e,"width")),we(e,"data-mce-id"),t=r,P(Xt(e,"tr"),function(e){la(t,e.dom()),P(Xt(e,"th,td"),function(e){fa(t,e.dom())})}),n=r,nn(e,"td,th").each(b(Aa,n)),e.dom()}).getOr(null)};function Ia(e,t,n,r){if("TD"===t.tagName||"TH"===t.tagName)e.setStyle(t,n,r);else if(t.children)for(var o=0;o<t.children.length;o++)Ia(e,t.children[o],n,r)}var Ba,Wa=function(e,t,n){var r,o,i=e.dom;ra(e)&&Sa.syncAdvancedStyleFields(e,n),!1===(o=n.control.rootControl.toJSON())["class"]&&delete o["class"],e.undoManager.transact(function(){t||(t=Pa(e,o.cols||1,o.rows||1)),function(e,t,n){var r,o=e.dom,i={},u={};if(i["class"]=n["class"],u.height=Yu(n.height),o.getAttrib(t,"width")&&!oa(e)?i.width=(r=n.width)?r.replace(/px$/,""):"":u.width=Yu(n.width),oa(e)?(u["border-width"]=Yu(n.border),u["border-spacing"]=Yu(n.cellspacing),ha.extend(i,{"data-mce-border-color":n.borderColor,"data-mce-cell-padding":n.cellpadding,"data-mce-border":n.border})):ha.extend(i,{border:n.border,cellpadding:n.cellpadding,cellspacing:n.cellspacing}),oa(e)&&t.children)for(var a=0;a<t.children.length;a++)Ia(o,t.children[a],{"border-width":Yu(n.border),"border-color":n.borderColor,padding:Yu(n.cellpadding)});n.style?ha.extend(u,o.parseStyle(n.style)):u=ha.extend({},o.parseStyle(o.getAttrib(t,"style")),u),i.style=o.serializeStyle(u),o.setAttribs(t,i)}(e,t,o),(r=i.select("caption",t)[0])&&!o.caption&&i.remove(r),!r&&o.caption&&((r=i.create("caption")).innerHTML=Na.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(r,t.firstChild)),ba(e,t),o.align&&pa(e,t,o.align),e.focus(),e.addVisual()})},Ma=function(t,e){var n,r,o,i,u,a,c,l,f,s,d=t.dom,m={};!0===e?(n=d.getParent(t.selection.getStart(),"table"))&&(c=n,l=(a=t).dom,f={width:l.getStyle(c,"width")||l.getAttrib(c,"width"),height:l.getStyle(c,"height")||l.getAttrib(c,"height"),cellspacing:l.getStyle(c,"border-spacing")||l.getAttrib(c,"cellspacing"),cellpadding:l.getAttrib(c,"data-mce-cell-padding")||l.getAttrib(c,"cellpadding")||ya(a.dom,c,"padding"),border:l.getAttrib(c,"data-mce-border")||l.getAttrib(c,"border")||ya(a.dom,c,"border"),borderColor:l.getAttrib(c,"data-mce-border-color"),caption:!!l.select("caption",c)[0],"class":l.getAttrib(c,"class")},ha.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),ra(a)&&ha.extend(f,Sa.extractAdvancedStyles(l,c)),m=f):(r={label:"Cols",name:"cols"},o={label:"Rows",name:"rows"}),0<aa(t).length&&(m["class"]&&(m["class"]=m["class"].replace(/\s*mce\-item\-table\s*/g,"")),i={name:"class",type:"listbox",label:"Class",values:Sa.buildListItems(aa(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"table",classes:[e.value]})})})}),u={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:(s=t,s.getParam("table_appearance_options",!0,"boolean")?[r,o,{label:"Width",name:"width",onchange:b(Sa.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Sa.updateStyleField,t)},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[r,o,{label:"Width",name:"width",onchange:b(Sa.updateStyleField,t)},{label:"Height",name:"height",onchange:b(Sa.updateStyleField,t)}])},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},i]},ra(t)?t.windowManager.open({title:"Table properties",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},Sa.createStyleForm(t)],onsubmit:b(Wa,t,n)}):t.windowManager.open({title:"Table properties",data:m,body:u,onsubmit:b(Wa,t,n)})},_a=ha.each,La=function(a,t,c,l,n){var r=Gu(a),e=function(e){return function(){return S.from(a.dom.getParent(a.selection.getStart(),e)).map(Te.fromDom)}},o=e("caption"),f=e("th,td"),s=function(e){return dn.table(e,r)},d=function(e){return{width:qu(e.dom()),height:qu(e.dom())}},i=function(n){f().each(function(t){s(t).each(function(i){var e=Br.forMenu(l,i,t),u=d(i);n(i,e).each(function(e){var t,n,r,o;t=a,n=u,o=d(r=i),n.width===o.width&&n.height===o.height||(sa(t,r.dom(),n.width,n.height),da(t,r.dom(),o.width,o.height)),a.selection.setRng(e),a.focus(),c.clear(i),Xu(i)})})})},u=function(e){return f().bind(function(o){return s(o).bind(function(e){var t=Te.fromDom(a.getDoc()),n=Br.forMenu(l,e,o),r=Ln(y,t,S.none());return ga(e,n,r)})})},m=function(u){n.get().each(function(e){var i=A(e,function(e){return Pn(e)});f().each(function(o){s(o).each(function(t){var e=Te.fromDom(a.getDoc()),n=Fn(e),r=Br.pasteRows(l,t,o,i,n);u(t,r).each(function(e){a.selection.setRng(e),a.focus(),c.clear(t)})})})})};_a({mceTableSplitCells:function(){i(t.unmergeCells)},mceTableMergeCells:function(){i(t.mergeCells)},mceTableInsertRowBefore:function(){i(t.insertRowsBefore)},mceTableInsertRowAfter:function(){i(t.insertRowsAfter)},mceTableInsertColBefore:function(){i(t.insertColumnsBefore)},mceTableInsertColAfter:function(){i(t.insertColumnsAfter)},mceTableDeleteCol:function(){i(t.deleteColumn)},mceTableDeleteRow:function(){i(t.deleteRow)},mceTableCutRow:function(e){n.set(u()),i(t.deleteRow)},mceTableCopyRow:function(e){n.set(u())},mceTablePasteRowBefore:function(e){m(t.pasteRowsBefore)},mceTablePasteRowAfter:function(e){m(t.pasteRowsAfter)},mceTableDelete:function(){f().orThunk(o).each(function(e){dn.table(e,r).filter(g(r)).each(function(e){var t=Te.fromText("");Tt(e,t),Pt(e);var n=a.dom.createRng();n.setStart(t.dom(),0),n.setEnd(t.dom(),0),a.selection.setRng(n)})})}},function(e,t){a.addCommand(t,e)}),_a({mceInsertTable:b(Ma,a),mceTableProps:b(Ma,a,!0),mceTableRowProps:b(Oa,a),mceTableCellProps:b(Ta,a)},function(n,e){a.addCommand(e,function(e,t){n(t)})})},Fa=function(e){var t=S.from(e.dom().documentElement).map(Te.fromDom).getOr(e);return{parent:C(t),view:C(e),origin:C(oo(0,0))}},ja=function(e,t){return{parent:C(t),view:C(e),origin:C(oo(0,0))}},za=function(e){var r=X.apply(null,e),o=[];return{bind:function(e){if(e===undefined)throw new Error("Event bind error: undefined handler");o.push(e)},unbind:function(t){o=I(o,function(e){return e!==t})},trigger:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=r.apply(null,e);P(o,function(e){e(n)})}}},Ha={create:function(e){return{registry:G(e,function(e){return{bind:e.bind,unbind:e.unbind}}),trigger:G(e,function(e){return e.trigger})}}},Ua=function(m,g){return function(e){if(m(e)){var t,n,r,o,i,u,a,c=Te.fromDom(e.target),l=function(){e.stopPropagation()},f=function(){e.preventDefault()},s=x(f,l),d=(t=c,n=e.clientX,r=e.clientY,o=l,i=f,u=s,a=e,{target:C(t),x:C(n),y:C(r),stop:o,prevent:i,kill:u,raw:C(a)});g(d)}}},qa=function(e,t,n,r){return o=e,i=t,u=!1,a=Ua(n,r),o.dom().addEventListener(i,a,u),{unbind:b(Va,o,i,a,u)};var o,i,u,a},Va=function(e,t,n,r){e.dom().removeEventListener(t,n,r)},Ga=C(!0),Ya=function(e,t,n){return qa(e,t,Ga,n)},Xa=Object.prototype.hasOwnProperty,Ka=(Ba=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Xa.call(o,i)&&(n[i]=Ba(n[i],o[i]))}return n}),Ja={resolve:zo("ephox-dragster").resolve},$a=pu(["compare","extract","mutate","sink"]),Qa=pu(["element","start","stop","destroy"]),Za=pu(["forceDrop","drop","move","delayDrop"]),ec=$a({compare:function(e,t){return oo(t.left()-e.left(),t.top()-e.top())},extract:function(e){return S.some(oo(e.x(),e.y()))},sink:function(e,t){var n,r,o,i=(n=t,r=Ka({layerClass:Ja.resolve("blocker")},n),o=Te.fromTag("div"),he(o,"role","presentation"),Ae(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),Io(o,Ja.resolve("blocker")),Io(o,r.layerClass),{element:function(){return o},destroy:function(){Pt(o)}}),u=Ya(i.element(),"mousedown",e.forceDrop),a=Ya(i.element(),"mouseup",e.drop),c=Ya(i.element(),"mousemove",e.move),l=Ya(i.element(),"mouseout",e.delayDrop);return Qa({element:i.element,start:function(e){Ot(e,i.element())},stop:function(){Pt(i.element())},destroy:function(){i.destroy(),a.unbind(),c.unbind(),l.unbind(),u.unbind()}})},mutate:function(e,t){e.mutate(t.left(),t.top())}});function tc(){var i=S.none(),u=Ha.create({move:za(["info"])});return{onEvent:function(e,o){o.extract(e).each(function(e){var t,n,r;(t=o,n=e,r=i.map(function(e){return t.compare(e,n)}),i=S.some(n),r).each(function(e){u.trigger.move(e)})})},reset:function(){i=S.none()},events:u.registry}}function nc(){var e={onEvent:y,reset:y},t=tc(),n=e;return{on:function(){n.reset(),n=t},off:function(){n.reset(),n=e},isOn:function(){return n===t},onEvent:function(e,t){n.onEvent(e,t)},events:t.events}}var rc=function(t,n,e){var r,o,i,u=!1,a=Ha.create({start:za([]),stop:za([])}),c=nc(),l=function(){d.stop(),c.isOn()&&(c.off(),a.trigger.stop())},f=(r=l,o=200,i=null,{cancel:function(){null!==i&&(m.clearTimeout(i),i=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null!==i&&m.clearTimeout(i),i=m.setTimeout(function(){r.apply(null,e),i=null},o)}});c.events.move.bind(function(e){n.mutate(t,e.info())});var s=function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];u&&n.apply(null,e)}},d=n.sink(Za({forceDrop:l,drop:s(l),move:s(function(e){f.cancel(),c.onEvent(e,n)}),delayDrop:s(f.throttle)}),e);return{element:d.element,go:function(e){d.start(e),c.on(),a.trigger.start()},on:function(){u=!0},off:function(){u=!1},destroy:function(){d.destroy()},events:a.registry}},oc=function(e,t){void 0===t&&(t={});var n=t.mode!==undefined?t.mode:ec;return rc(e,n,t)},ic=function(){var n,r=Ha.create({drag:za(["xDelta","yDelta","target"])}),o=S.none(),e={mutate:function(e,t){n.trigger.drag(e,t)},events:(n=Ha.create({drag:za(["xDelta","yDelta"])})).registry};return e.events.drag.bind(function(t){o.each(function(e){r.trigger.drag(t.xDelta(),t.yDelta(),e)})}),{assign:function(e){o=S.some(e)},get:function(){return o},mutate:e.mutate,events:r.registry}},uc=function(e){return"true"===ve(e,"contenteditable")},ac=Ho.resolve("resizer-bar-dragging"),cc=function(o,t,i){var n=ic(),r=oc(n,{}),u=S.none(),e=function(e,t){return S.from(ve(e,t))};n.events.drag.bind(function(n){e(n.target(),"data-row").each(function(e){var t=Yi.getInt(n.target(),"top");ke(n.target(),"top",t+n.yDelta()+"px")}),e(n.target(),"data-column").each(function(e){var t=Yi.getInt(n.target(),"left");ke(n.target(),"left",t+n.xDelta()+"px")})});var a=function(e,t){return Yi.getInt(e,t)-parseInt(ve(e,"data-initial-"+t),10)};r.events.stop.bind(function(){n.get().each(function(r){u.each(function(n){e(r,"data-row").each(function(e){var t=a(r,"top");we(r,"data-initial-top"),m.trigger.adjustHeight(n,t,parseInt(e,10))}),e(r,"data-column").each(function(e){var t=a(r,"left");we(r,"data-initial-left"),m.trigger.adjustWidth(n,t,parseInt(e,10))}),Qo(o,n,i,t)})})});var c=function(e,t){m.trigger.startAdjust(),n.assign(e),he(e,"data-initial-"+t,parseInt(Pe(e,t),10)),Io(e,ac),ke(e,"opacity","0.2"),r.go(o.parent())},l=Ya(o.parent(),"mousedown",function(e){ni(e.target())&&c(e.target(),"top"),ri(e.target())&&c(e.target(),"left")}),f=function(e){return gt(e,o.view())},s=function(e){return rn(e,"table",f).filter(function(e){return(t=e,n=f,rn(t,"[contenteditable]",n)).exists(uc);var t,n})},d=Ya(o.view(),"mouseover",function(e){s(e.target()).fold(function(){De(e.target())&&ti(o)},function(e){u=S.some(e),Qo(o,e,i,t)})}),m=Ha.create({adjustHeight:za(["table","delta","row"]),adjustWidth:za(["table","delta","column"]),startAdjust:za([])});return{destroy:function(){l.unbind(),d.unbind(),r.destroy(),ti(o)},refresh:function(e){Qo(o,e,i,t)},on:r.on,off:r.off,hideBars:b(Zo,o),showBars:b(ei,o),events:m.registry}},lc=function(e,t){return e.inline?ja(Uu(e),(n=Te.fromTag("div"),Ae(n,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),Ot(Oe(),n),n)):Fa(Te.fromDom(e.getDoc()));var n},fc=function(e,t){e.inline&&Pt(t.parent())},sc=function(c){var u,a,l=S.none(),f=S.none(),s=S.none(),d=/(\d+(\.\d+)?)%/,m=function(e){return"TABLE"===e.nodeName};return c.on("init",function(){var n,r,e,o,t,i=xo($u.directionAt),u=lc(c);if(s=S.some(u),("table"===(t=c.getParam("object_resizing",!0))||t)&&c.getParam("table_resize_bars",!0,"boolean")){var a=(e=cc(u,n=i,r=wo.height),o=Ha.create({beforeResize:za(["table"]),afterResize:za(["table"]),startDrag:za([])}),e.events.adjustHeight.bind(function(e){o.trigger.beforeResize(e.table());var t=r.delta(e.delta(),e.table());su(e.table(),t,e.row(),r),o.trigger.afterResize(e.table())}),e.events.startAdjust.bind(function(e){o.trigger.startDrag()}),e.events.adjustWidth.bind(function(e){o.trigger.beforeResize(e.table());var t=n.delta(e.delta(),e.table());fu(e.table(),t,e.column(),n),o.trigger.afterResize(e.table())}),{on:e.on,off:e.off,hideBars:e.hideBars,showBars:e.showBars,destroy:e.destroy,events:o.registry});a.on(),a.events.startDrag.bind(function(e){l=S.some(c.selection.getRng())}),a.events.beforeResize.bind(function(e){var t=e.table().dom();sa(c,t,qu(t),Vu(t))}),a.events.afterResize.bind(function(e){var t=e.table(),n=t.dom();Xu(t),l.each(function(e){c.selection.setRng(e),c.focus()}),da(c,n,qu(n),Vu(n)),c.undoManager.add()}),f=S.some(a)}}),c.on("ObjectResizeStart",function(e){var t,n=e.target;m(n)&&(u=e.width,t=n,a=c.dom.getStyle(t,"width")||c.dom.getAttrib(t,"width"))}),c.on("ObjectResized",function(e){var t=e.target;if(m(t)){var n=t;if(d.test(a)){var r=parseFloat(d.exec(a)[1]),o=e.width*r/u;c.dom.setStyle(n,"width",o+"%")}else{var i=[];ha.each(n.rows,function(e){ha.each(e.cells,function(e){var t=c.dom.getStyle(e,"width",!0);i.push({cell:e,width:t})})}),ha.each(i,function(e){c.dom.setStyle(e.cell,"width",e.width),c.dom.setAttrib(e.cell,"width",null)})}}}),{lazyResize:function(){return f},lazyWire:function(){return s.getOr(Fa(Te.fromDom(c.getBody())))},destroy:function(){f.each(function(e){e.destroy()}),s.each(function(e){fc(c,e)})}}},dc=Tr([{none:["current"]},{first:["current"]},{middle:["current","target"]},{last:["current"]}]),mc=So({},dc,{none:function(e){return void 0===e&&(e=undefined),dc.none(e)}}),gc=function(n,e){return dn.table(n,e).bind(function(e){var t=dn.cells(e);return _(t,function(e){return gt(n,e)}).map(function(e){return{index:C(e),all:C(t)}})})},hc=function(t,e){return gc(t,e).fold(function(){return mc.none(t)},function(e){return e.index()+1<e.all().length?mc.middle(t,e.all()[e.index()+1]):mc.last(t)})},pc=function(t,e){return gc(t,e).fold(function(){return mc.none()},function(e){return 0<=e.index()-1?mc.middle(t,e.all()[e.index()-1]):mc.first(t)})},vc={create:X("start","soffset","finish","foffset")},bc=Tr([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),wc={before:bc.before,on:bc.on,after:bc.after,cata:function(e,t,n,r){return e.fold(t,n,r)},getStart:function(e){return e.fold(o,o,o)}},yc=Tr([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),xc={domRange:yc.domRange,relative:yc.relative,exact:yc.exact,exactFromRange:function(e){return yc.exact(e.start(),e.soffset(),e.finish(),e.foffset())},getWin:function(e){var t,n=e.match({domRange:function(e){return Te.fromDom(e.startContainer)},relative:function(e,t){return wc.getStart(e)},exact:function(e,t,n,r){return e}});return t=n,Te.fromDom(t.dom().ownerDocument.defaultView)},range:vc.create},Cc=function(e,t){e.selectNodeContents(t.dom())},Sc=function(e,t,n){var r,o,i=e.document.createRange();return r=i,t.fold(function(e){r.setStartBefore(e.dom())},function(e,t){r.setStart(e.dom(),t)},function(e){r.setStartAfter(e.dom())}),o=i,n.fold(function(e){o.setEndBefore(e.dom())},function(e,t){o.setEnd(e.dom(),t)},function(e){o.setEndAfter(e.dom())}),i},Rc=function(e,t,n,r,o){var i=e.document.createRange();return i.setStart(t.dom(),n),i.setEnd(r.dom(),o),i},Tc=function(e){return{left:C(e.left),top:C(e.top),right:C(e.right),bottom:C(e.bottom),width:C(e.width),height:C(e.height)}},Dc=Tr([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Oc=function(e,t,n){return t(Te.fromDom(n.startContainer),n.startOffset,Te.fromDom(n.endContainer),n.endOffset)},Nc=function(e,t){var o,n,r,i=(o=e,t.match({domRange:function(e){return{ltr:C(e),rtl:S.none}},relative:function(e,t){return{ltr:Se(function(){return Sc(o,e,t)}),rtl:Se(function(){return S.some(Sc(o,t,e))})}},exact:function(e,t,n,r){return{ltr:Se(function(){return Rc(o,e,t,n,r)}),rtl:Se(function(){return S.some(Rc(o,n,r,e,t))})}}}));return(r=(n=i).ltr()).collapsed?n.rtl().filter(function(e){return!1===e.collapsed}).map(function(e){return Dc.rtl(Te.fromDom(e.endContainer),e.endOffset,Te.fromDom(e.startContainer),e.startOffset)}).getOrThunk(function(){return Oc(0,Dc.ltr,r)}):Oc(0,Dc.ltr,r)},Ec=function(i,e){return Nc(i,e).match({ltr:function(e,t,n,r){var o=i.document.createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},rtl:function(e,t,n,r){var o=i.document.createRange();return o.setStart(n.dom(),r),o.setEnd(e.dom(),t),o}})},kc=function(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom},Ac=function(n,r,e,t,o){var i=function(e){var t=n.dom().createRange();return t.setStart(r.dom(),e),t.collapse(!0),t},u=xn(r).length,a=function(e,t,n,r,o){if(0===o)return 0;if(t===r)return o-1;for(var i=r,u=1;u<o;u++){var a=e(u),c=Math.abs(t-a.left);if(n<=a.bottom){if(n<a.top||i<c)return u-1;i=c}}return 0}(function(e){return i(e).getBoundingClientRect()},e,t,o.right,u);return i(a)},Pc=function(e,t,n,r){return me(t)?function(t,n,r,o){var e=t.dom().createRange();e.selectNode(n.dom());var i=e.getClientRects();return To(i,function(e){return kc(e,r,o)?S.some(e):S.none()}).map(function(e){return Ac(t,n,r,o,e)})}(e,t,n,r):(i=t,u=n,a=r,c=(o=e).dom().createRange(),l=Ct(i),To(l,function(e){return c.selectNode(e.dom()),kc(c.getBoundingClientRect(),u,a)?Pc(o,e,u,a):S.none()}));var o,i,u,a,c,l},Ic=function(e,t){return t-e.left<e.right-t},Bc=function(e,t,n){var r=e.dom().createRange();return r.selectNode(t.dom()),r.collapse(n),r},Wc=function(t,e,n){var r=t.dom().createRange();r.selectNode(e.dom());var o=r.getBoundingClientRect(),i=Ic(o,n);return(!0===i?On:Nn)(e).map(function(e){return Bc(t,e,i)})},Mc=function(e,t,n){var r=t.dom().getBoundingClientRect(),o=Ic(r,n);return S.some(Bc(e,t,o))},_c=function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect();return function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return Pc(e,t,u,a)}(e,t,Math.max(i.left,Math.min(i.right,n)),Math.max(i.top,Math.min(i.bottom,r)))},Lc=document.caretPositionFromPoint?function(n,e,t){return S.from(n.dom().caretPositionFromPoint(e,t)).bind(function(e){if(null===e.offsetNode)return S.none();var t=n.dom().createRange();return t.setStart(e.offsetNode,e.offset),t.collapse(),S.some(t)})}:document.caretRangeFromPoint?function(e,t,n){return S.from(e.dom().caretRangeFromPoint(t,n))}:function(o,i,t){return Te.fromPoint(o,i,t).bind(function(r){var e=function(){return e=o,n=i,(0===Ct(t=r).length?Mc:Wc)(e,t,n);var e,t,n};return 0===Ct(r).length?e():_c(o,r,i,t).orThunk(e)})},Fc=function(e,t){var n=ce(e);return"input"===n?wc.after(e):E(["br","img"],n)?0===t?wc.before(e):wc.after(e):wc.on(e,t)},jc=function(e,t){var n=e.fold(wc.before,Fc,wc.after),r=t.fold(wc.before,Fc,wc.after);return xc.relative(n,r)},zc=function(e,t,n,r){var o=Fc(e,t),i=Fc(n,r);return xc.relative(o,i)},Hc=function(e,t,n,r){var o,i,u,a,c,l=(i=t,u=n,a=r,(c=vt(o=e).dom().createRange()).setStart(o.dom(),i),c.setEnd(u.dom(),a),c),f=gt(e,n)&&t===r;return l.collapsed&&!f},Uc=function(e,t){S.from(e.getSelection()).each(function(e){e.removeAllRanges(),e.addRange(t)})},qc=function(e,t,n,r,o){var i=Rc(e,t,n,r,o);Uc(e,i)},Vc=function(s,e){return Nc(s,e).match({ltr:function(e,t,n,r){qc(s,e,t,n,r)},rtl:function(e,t,n,r){var o,i,u,a,c,l=s.getSelection();if(l.setBaseAndExtent)l.setBaseAndExtent(e.dom(),t,n.dom(),r);else if(l.extend)try{i=e,u=t,a=n,c=r,(o=l).collapse(i.dom(),u),o.extend(a.dom(),c)}catch(f){qc(s,n,r,e,t)}else qc(s,n,r,e,t)}})},Gc=function(e){var o=xc.getWin(e).dom(),t=function(e,t,n,r){return Rc(o,e,t,n,r)},n=e.match({domRange:function(e){var t=Te.fromDom(e.startContainer),n=Te.fromDom(e.endContainer);return zc(t,e.startOffset,n,e.endOffset)},relative:jc,exact:zc});return Nc(o,n).match({ltr:t,rtl:t})},Yc=function(e){var t=Te.fromDom(e.anchorNode),n=Te.fromDom(e.focusNode);return Hc(t,e.anchorOffset,n,e.focusOffset)?S.some(vc.create(t,e.anchorOffset,n,e.focusOffset)):function(e){if(0<e.rangeCount){var t=e.getRangeAt(0),n=e.getRangeAt(e.rangeCount-1);return S.some(vc.create(Te.fromDom(t.startContainer),t.startOffset,Te.fromDom(n.endContainer),n.endOffset))}return S.none()}(e)},Xc=function(e,t){var n,r,o=(n=t,r=e.document.createRange(),Cc(r,n),r);Uc(e,o)},Kc=function(e){return(t=e,S.from(t.getSelection()).filter(function(e){return 0<e.rangeCount}).bind(Yc)).map(function(e){return xc.exact(e.start(),e.soffset(),e.finish(),e.foffset())});var t},Jc=function(e,t){var n,r,o,i=Ec(e,t);return r=(n=i).getClientRects(),0<(o=0<r.length?r[0]:n.getBoundingClientRect()).width||0<o.height?S.some(o).map(Tc):S.none()},$c=function(e,t,n){return r=e,o=t,i=n,u=Te.fromDom(r.document),Lc(u,o,i).map(function(e){return vc.create(Te.fromDom(e.startContainer),e.startOffset,Te.fromDom(e.endContainer),e.endOffset)});var r,o,i,u},Qc=tinymce.util.Tools.resolve("tinymce.util.VK"),Zc=function(e,t,n,r){return rl(e,t,hc(n),r)},el=function(e,t,n,r){return rl(e,t,pc(n),r)},tl=function(e,t){var n=xc.exact(t,0,t,0);return Gc(n)},nl=function(e,t){var n,r=Xt(t,"tr");return(n=r,0===n.length?S.none():S.some(n[n.length-1])).bind(function(e){return nn(e,"td,th").map(function(e){return tl(0,e)})})},rl=function(r,e,t,o,n){return t.fold(S.none,S.none,function(e,t){return On(t).map(function(e){return tl(0,e)})},function(n){return dn.table(n,e).bind(function(e){var t=Br.noMenu(n);return r.undoManager.transact(function(){o.insertRowsAfter(e,t)}),nl(0,e)})})},ol=["table","li","dl"],il=function(t,n,r,o){if(t.keyCode===Qc.TAB){var i=Uu(n),u=function(e){var t=ce(e);return gt(e,i)||E(ol,t)},e=n.selection.getRng();if(e.collapsed){var a=Te.fromDom(e.startContainer);dn.cell(a,u).each(function(e){t.preventDefault(),(t.shiftKey?el:Zc)(n,u,e,r,o).each(function(e){n.selection.setRng(e)})})}}},ul={create:X("selection","kill")},al=function(e,t,n,r){return{start:C(wc.on(e,t)),finish:C(wc.on(n,r))}},cl={convertToRange:function(e,t){var n=Ec(e,t);return vc.create(Te.fromDom(n.startContainer),n.startOffset,Te.fromDom(n.endContainer),n.endOffset)},makeSitus:al},ll=function(n,e,r,t,o){return gt(r,t)?S.none():hr(r,t,e).bind(function(e){var t=e.boxes().getOr([]);return 0<t.length?(o(n,t,e.start(),e.finish()),S.some(ul.create(S.some(cl.makeSitus(r,0,r,Rn(r))),!0))):S.none()})},fl={sync:function(n,r,e,t,o,i,u){return gt(e,o)&&t===i?S.none():rn(e,"td,th",r).bind(function(t){return rn(o,"td,th",r).bind(function(e){return ll(n,r,t,e,u)})})},detect:ll,update:function(e,t,n,r,o){return vr(r,e,t,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(e){return o.clear(n),o.selectRange(n,e.boxes(),e.start(),e.finish()),e.boxes()})}},sl=X("item","mode"),dl=function(e,t,n,r){return void 0===r&&(r=ml),e.property().parent(t).map(function(e){return sl(e,r)})},ml=function(e,t,n,r){return void 0===r&&(r=gl),n.sibling(e,t).map(function(e){return sl(e,r)})},gl=function(e,t,n,r){void 0===r&&(r=gl);var o=e.property().children(t);return n.first(o).map(function(e){return sl(e,r)})},hl=[{current:dl,next:ml,fallback:S.none()},{current:ml,next:gl,fallback:S.some(dl)},{current:gl,next:gl,fallback:S.some(ml)}],pl=function(t,n,r,o,e){return void 0===e&&(e=hl),M(e,function(e){return e.current===r}).bind(function(e){return e.current(t,n,o,e.next).orThunk(function(){return e.fallback.bind(function(e){return pl(t,n,e,o)})})})},vl=function(){return{sibling:function(e,t){return e.query().prevSibling(t)},first:function(e){return 0<e.length?S.some(e[e.length-1]):S.none()}}},bl=function(){return{sibling:function(e,t){return e.query().nextSibling(t)},first:function(e){return 0<e.length?S.some(e[0]):S.none()}}},wl=function(t,e,n,r,o,i){return pl(t,e,r,o).bind(function(e){return i(e.item())?S.none():n(e.item())?S.some(e.item()):wl(t,e.item(),n,e.mode(),o,i)})},yl=function(t){return function(e){return 0===t.property().children(e).length}},xl=function(e,t,n,r){return wl(e,t,n,ml,vl(),r)},Cl=function(e,t,n,r){return wl(e,t,n,ml,bl(),r)},Sl=tr(),Rl=function(e,t){return r=t,xl(n=Sl,e,yl(n),r);var n,r},Tl=function(e,t){return r=t,Cl(n=Sl,e,yl(n),r);var n,r},Dl=X("element","offset"),Ol=(X("element","deltaOffset"),X("element","start","finish"),X("begin","end"),X("element","text"),Tr([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}])),Nl=function(e){return rn(e,"tr")},El=So({},Ol,{verify:function(a,e,t,n,r,c,o){return rn(n,"td,th",o).bind(function(u){return rn(e,"td,th",o).map(function(i){return gt(u,i)?gt(n,u)&&Rn(u)===r?c(i):Ol.none("in same cell"):sr.sharedOne(Nl,[u,i]).fold(function(){return t=i,n=u,r=(e=a).getRect(t),(o=e.getRect(n)).right>r.left&&o.left<r.right?Ol.success():c(i);var e,t,n,r,o},function(e){return c(i)})})}).getOr(Ol.none("default"))},cata:function(e,t,n,r,o){return e.fold(t,n,r,o)}}),kl=(X("ancestor","descendants","element","index"),X("parent","children","element","index")),Al=function(e,t){return _(e,b(gt,t))},Pl=function(e){return"br"===ce(e)},Il=function(e,t,n){return t(e,n).bind(function(e){return me(e)&&0===xn(e).trim().length?Il(e,t,n):S.some(e)})},Bl=function(t,e,n,r){return(o=e,i=n,St(o,i).filter(Pl).orThunk(function(){return St(o,i-1).filter(Pl)})).bind(function(e){return r.traverse(e).fold(function(){return Il(e,r.gather,t).map(r.relative)},function(e){return(r=e,bt(r).bind(function(t){var n=Ct(t);return Al(n,r).map(function(e){return kl(t,n,r,e)})})).map(function(e){return wc.on(e.parent(),e.index())});var r})});var o,i},Wl=function(e,t,n,r){var o,i,u;return(Pl(t)?(o=e,i=t,(u=r).traverse(i).orThunk(function(){return Il(i,u.gather,o)}).map(u.relative)):Bl(e,t,n,r)).map(function(e){return{start:C(e),finish:C(e)}})},Ml=function(e){return El.cata(e,function(e){return S.none()},function(){return S.none()},function(e){return S.some(Dl(e,0))},function(e){return S.some(Dl(e,Rn(e)))})},_l=ee(["left","top","right","bottom"],[]),Ll={nu:_l,moveUp:function(e,t){return _l({left:e.left(),top:e.top()-t,right:e.right(),bottom:e.bottom()-t})},moveDown:function(e,t){return _l({left:e.left(),top:e.top()+t,right:e.right(),bottom:e.bottom()+t})},moveBottomTo:function(e,t){var n=e.bottom()-e.top();return _l({left:e.left(),top:t-n,right:e.right(),bottom:t})},moveTopTo:function(e,t){var n=e.bottom()-e.top();return _l({left:e.left(),top:t,right:e.right(),bottom:t+n})},getTop:function(e){return e.top()},getBottom:function(e){return e.bottom()},translate:function(e,t,n){return _l({left:e.left()+t,top:e.top()+n,right:e.right()+t,bottom:e.bottom()+n})},toString:function(e){return"("+e.left()+", "+e.top()+") -> ("+e.right()+", "+e.bottom()+")"}},Fl=function(e){return Ll.nu({left:e.left,top:e.top,right:e.right,bottom:e.bottom})},jl=function(e,t){return S.some(e.getRect(t))},zl=function(e,t,n){return de(t)?jl(e,t).map(Fl):me(t)?(r=e,o=t,i=n,0<=i&&i<Rn(o)?r.getRangedRect(o,i,o,i+1):0<i?r.getRangedRect(o,i-1,o,i):S.none()).map(Fl):S.none();var r,o,i},Hl=function(e,t){return de(t)?jl(e,t).map(Fl):me(t)?e.getRangedRect(t,0,t,Rn(t)).map(Fl):S.none()},Ul=Tr([{none:[]},{retry:["caret"]}]),ql=function(t,e,r){return(n=e,o=Eu,Kt(function(e,t){return t(e)},Zt,n,o,i)).fold(C(!1),function(e){return Hl(t,e).exists(function(e){return n=e,(t=r).left()<n.left()||Math.abs(n.right()-t.left())<1||t.left()>n.right();var t,n})});var n,o,i},Vl={point:Ll.getTop,adjuster:function(e,t,n,r,o){var i=Ll.moveUp(o,5);return Math.abs(n.top()-r.top())<1?Ul.retry(i):n.bottom()<o.top()?Ul.retry(i):n.bottom()===o.top()?Ul.retry(Ll.moveUp(o,1)):ql(e,t,o)?Ul.retry(Ll.translate(i,5,0)):Ul.none()},move:Ll.moveUp,gather:Rl},Gl={point:Ll.getBottom,adjuster:function(e,t,n,r,o){var i=Ll.moveDown(o,5);return Math.abs(n.bottom()-r.bottom())<1?Ul.retry(i):n.top()>o.bottom()?Ul.retry(i):n.top()===o.bottom()?Ul.retry(Ll.moveDown(o,1)):ql(e,t,o)?Ul.retry(Ll.translate(i,5,0)):Ul.none()},move:Ll.moveDown,gather:Tl},Yl=function(n,r,o,i,u){return 0===u?S.some(i):(c=n,l=i.left(),f=r.point(i),c.elementFromPoint(l,f).filter(function(e){return"table"===ce(e)}).isSome()?(t=i,a=u-1,Yl(n,e=r,o,e.move(t,5),a)):n.situsFromPoint(i.left(),r.point(i)).bind(function(e){return e.start().fold(S.none,function(t){return Hl(n,t).bind(function(e){return r.adjuster(n,t,e,o,i).fold(S.none,function(e){return Yl(n,r,o,e,u-1)})}).orThunk(function(){return S.some(i)})},S.none)}));var e,t,a,c,l,f},Xl=function(t,n,e){var r,o,i,u=t.move(e,5),a=Yl(n,t,e,u,100).getOr(u);return(r=t,o=a,i=n,r.point(o)>i.getInnerHeight()?S.some(r.point(o)-i.getInnerHeight()):r.point(o)<0?S.some(-r.point(o)):S.none()).fold(function(){return n.situsFromPoint(a.left(),t.point(a))},function(e){return n.scrollBy(0,e),n.situsFromPoint(a.left(),t.point(a)-e)})},Kl={tryUp:b(Xl,Vl),tryDown:b(Xl,Gl),ieTryUp:function(e,t){return e.situsFromPoint(t.left(),t.top()-5)},ieTryDown:function(e,t){return e.situsFromPoint(t.left(),t.bottom()+5)},getJumpSize:C(5)},Jl=lt.detect(),$l=function(r,o,i,u,a,c){return 0===c?S.none():ef(r,o,i,u,a).bind(function(e){var t=r.fromSitus(e),n=El.verify(r,i,u,t.finish(),t.foffset(),a.failure,o);return El.cata(n,function(){return S.none()},function(){return S.some(e)},function(e){return gt(i,e)&&0===u?Ql(r,i,u,Ll.moveUp,a):$l(r,o,e,0,a,c-1)},function(e){return gt(i,e)&&u===Rn(e)?Ql(r,i,u,Ll.moveDown,a):$l(r,o,e,Rn(e),a,c-1)})})},Ql=function(t,e,n,r,o){return zl(t,e,n).bind(function(e){return Zl(t,o,r(e,Kl.getJumpSize()))})},Zl=function(e,t,n){return Jl.browser.isChrome()||Jl.browser.isSafari()||Jl.browser.isFirefox()||Jl.browser.isEdge()?t.otherRetry(e,n):Jl.browser.isIE()?t.ieRetry(e,n):S.none()},ef=function(t,e,n,r,o){return zl(t,n,r).bind(function(e){return Zl(t,o,e)})},tf=function(t,n,r){return(o=t,i=n,u=r,o.getSelection().bind(function(r){return Wl(i,r.finish(),r.foffset(),u).fold(function(){return S.some(Dl(r.finish(),r.foffset()))},function(e){var t=o.fromSitus(e),n=El.verify(o,r.finish(),r.foffset(),t.finish(),t.foffset(),u.failure,i);return Ml(n)})})).bind(function(e){return $l(t,n,e.element(),e.offset(),r,20).map(t.fromSitus)});var o,i,u},nf=lt.detect(),rf=function(e,t){return Zt(e,function(e){return bt(e).exists(function(e){return gt(e,t)})},n).isSome();var n},of=function(t,r,o,e,i){return rn(e,"td,th",r).bind(function(n){return rn(n,"table",r).bind(function(e){return rf(i,e)?tf(t,r,o).bind(function(t){return rn(t.finish(),"td,th",r).map(function(e){return{start:C(n),finish:C(e),range:C(t)}})}):S.none()})})},uf=function(e,t,n,r,o,i){return nf.browser.isIE()?S.none():i(r,t).orThunk(function(){return of(e,t,n,r,o).map(function(e){var t=e.range();return ul.create(S.some(cl.makeSitus(t.start(),t.soffset(),t.finish(),t.foffset())),!0)})})},af=function(e,t,n,r,o,i,u){return of(e,n,r,o,i).bind(function(e){return fl.detect(t,n,e.start(),e.finish(),u)})},cf=function(e,u){return rn(e,"tr",u).bind(function(i){return rn(i,"table",u).bind(function(e){var t,n,r,o=Xt(e,"tr");return gt(i,o[0])?(t=e,n=function(e){return Nn(e).isSome()},r=u,xl(Sl,t,n,r)).map(function(e){var t=Rn(e);return ul.create(S.some(cl.makeSitus(e,t,e,t)),!0)}):S.none()})})},lf=function(e,u){return rn(e,"tr",u).bind(function(i){return rn(i,"table",u).bind(function(e){var t,n,r,o=Xt(e,"tr");return gt(i,o[o.length-1])?(t=e,n=function(e){return On(e).isSome()},r=u,Cl(Sl,t,n,r)).map(function(e){return ul.create(S.some(cl.makeSitus(e,0,e,0)),!0)}):S.none()})})},ff=function(e,t){return rn(e,"td,th",t)},sf={down:{traverse:xt,gather:Tl,relative:wc.before,otherRetry:Kl.tryDown,ieRetry:Kl.ieTryDown,failure:El.failedDown},up:{traverse:yt,gather:Rl,relative:wc.before,otherRetry:Kl.tryUp,ieRetry:Kl.ieTryUp,failure:El.failedUp}},df=function(t){return function(e){return e===t}},mf=df(38),gf=df(40),hf={ltr:{isBackward:df(37),isForward:df(39)},rtl:{isBackward:df(39),isForward:df(37)},isUp:mf,isDown:gf,isNavigation:function(e){return 37<=e&&e<=40}},pf=function(e){return{left:e.left(),top:e.top(),right:e.right(),bottom:e.bottom(),width:e.width(),height:e.height()}},vf=(lt.detect().browser.isSafari(),function(a){return{elementFromPoint:function(e,t){return Te.fromPoint(Te.fromDom(a.document),e,t)},getRect:function(e){return e.dom().getBoundingClientRect()},getRangedRect:function(e,t,n,r){var o=xc.exact(e,t,n,r);return Jc(a,o).map(pf)},getSelection:function(){return Kc(a).map(function(e){return cl.convertToRange(a,e)})},fromSitus:function(e){var t=xc.relative(e.start(),e.finish());return cl.convertToRange(a,t)},situsFromPoint:function(e,t){return $c(a,e,t).map(function(e){return al(e.start(),e.soffset(),e.finish(),e.foffset())})},clearSelection:function(){a.getSelection().removeAllRanges()},setSelection:function(e){var t,n,r,o,i,u;t=a,n=e.start(),r=e.soffset(),o=e.finish(),i=e.foffset(),u=zc(n,r,o,i),Vc(t,u)},setRelativeSelection:function(e,t){var n,r;n=a,r=jc(e,t),Vc(n,r)},selectContents:function(e){Xc(a,e)},getInnerHeight:function(){return a.innerHeight},getScrollY:function(){var e,t,n,r;return(e=Te.fromDom(a.document),t=e!==undefined?e.dom():m.document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop,oo(n,r)).top()},scrollBy:function(e,t){var n,r,o;n=e,r=t,((o=Te.fromDom(a.document))!==undefined?o.dom():m.document).defaultView.scrollBy(n,r)}}}),bf=X("rows","cols"),wf={mouse:function(e,t,n,r){var o,i,u,a,c,l,f=vf(e),s=(o=f,i=t,u=n,a=r,c=S.none(),l=function(){c=S.none()},{mousedown:function(e){a.clear(i),c=ff(e.target(),u)},mouseover:function(e){c.each(function(r){a.clear(i),ff(e.target(),u).each(function(n){hr(r,n,u).each(function(e){var t=e.boxes().getOr([]);(1<t.length||1===t.length&&!gt(r,n))&&(a.selectRange(i,t,e.start(),e.finish()),o.selectContents(n))})})})},mouseup:function(e){c.each(l)}});return{mousedown:s.mousedown,mouseover:s.mouseover,mouseup:s.mouseup}},keyboard:function(e,l,f,s){var d=vf(e),m=function(){return s.clear(l),S.none()};return{keydown:function(e,t,n,r,o,i){var u=e.raw(),a=u.which,c=!0===u.shiftKey;return pr(l,s.selectedSelector()).fold(function(){return hf.isDown(a)&&c?b(af,d,l,f,sf.down,r,t,s.selectRange):hf.isUp(a)&&c?b(af,d,l,f,sf.up,r,t,s.selectRange):hf.isDown(a)?b(uf,d,f,sf.down,r,t,lf):hf.isUp(a)?b(uf,d,f,sf.up,r,t,cf):S.none},function(t){var e=function(e){return function(){return To(e,function(e){return fl.update(e.rows(),e.cols(),l,t,s)}).fold(function(){return br(l,s.firstSelectedSelector(),s.lastSelectedSelector()).map(function(e){var t=hf.isDown(a)||i.isForward(a)?wc.after:wc.before;return d.setRelativeSelection(wc.on(e.first(),0),t(e.table())),s.clear(l),ul.create(S.none(),!0)})},function(e){return S.some(ul.create(S.none(),!0))})}};return hf.isDown(a)&&c?e([bf(1,0)]):hf.isUp(a)&&c?e([bf(-1,0)]):i.isBackward(a)&&c?e([bf(0,-1),bf(-1,0)]):i.isForward(a)&&c?e([bf(0,1),bf(1,0)]):hf.isNavigation(a)&&!1===c?m:S.none})()},keyup:function(n,r,o,i,u){return pr(l,s.selectedSelector()).fold(function(){var e=n.raw(),t=e.which;return 0==(!0===e.shiftKey)?S.none():hf.isNavigation(t)?fl.sync(l,f,r,o,i,u,s.selectRange):S.none()},S.none)}}}},yf=function(r,e){P(e,function(e){var t,n;n=e,ko(t=r)?t.dom().classList.remove(n):Po(t,n),Bo(t)})},xf={byClass:function(o){var t,n,i=(t=o.selected(),function(e){Io(e,t)}),r=(n=[o.selected(),o.lastSelected(),o.firstSelected()],function(e){yf(e,n)}),u=function(e){var t=Xt(e,o.selectedSelector());P(t,r)};return{clear:u,selectRange:function(e,t,n,r){u(e),P(t,i),Io(n,o.firstSelected()),Io(r,o.lastSelected())},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}},byAttr:function(o){var n=function(e){we(e,o.selected()),we(e,o.firstSelected()),we(e,o.lastSelected())},i=function(e){he(e,o.selected(),"1")},u=function(e){var t=Xt(e,o.selectedSelector());P(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),P(t,i),he(n,o.firstSelected(),"1"),he(r,o.lastSelected(),"1")},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}}},Cf=function(e){return!1===Wo(Te.fromDom(e.target),"ephox-snooker-resizer-bar")};function Sf(h,p){var v=ee(["mousedown","mouseover","mouseup","keyup","keydown"],[]),b=S.none(),w=xf.byAttr(Rr);return h.on("init",function(e){var r=h.getWin(),o=Uu(h),t=Gu(h),n=wf.mouse(r,o,t,w),a=wf.keyboard(r,o,t,w),c=function(e,t){!0===e.raw().shiftKey&&(t.kill()&&e.kill(),t.selection().each(function(e){var t=xc.relative(e.start(),e.finish()),n=Ec(r,t);h.selection.setRng(n)}))},i=function(e){var t=f(e);if(t.raw().shiftKey&&hf.isNavigation(t.raw().which)){var n=h.selection.getRng(),r=Te.fromDom(n.startContainer),o=Te.fromDom(n.endContainer);a.keyup(t,r,n.startOffset,o,n.endOffset).each(function(e){c(t,e)})}},u=function(e){var t=f(e);p().each(function(e){e.hideBars()});var n=h.selection.getRng(),r=Te.fromDom(h.selection.getStart()),o=Te.fromDom(n.startContainer),i=Te.fromDom(n.endContainer),u=$u.directionAt(r).isRtl()?hf.rtl:hf.ltr;a.keydown(t,o,n.startOffset,i,n.endOffset,u).each(function(e){c(t,e)}),p().each(function(e){e.showBars()})},l=function(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")},f=function(e){var t=Te.fromDom(e.target),n=function(){e.stopPropagation()},r=function(){e.preventDefault()},o=x(r,n);return{target:C(t),x:C(l(e)?e.x:null),y:C(l(e)?e.y:null),stop:n,prevent:r,kill:o,raw:C(e)}},s=function(e){return 0===e.button},d=function(e){s(e)&&Cf(e)&&n.mousedown(f(e))},m=function(e){var t;(t=e).buttons!==undefined&&0==(1&t.buttons)||!Cf(e)||n.mouseover(f(e))},g=function(e){s(e)&&Cf(e)&&n.mouseup(f(e))};h.on("mousedown",d),h.on("mouseover",m),h.on("mouseup",g),h.on("keyup",i),h.on("keydown",u),h.on("nodechange",function(){var e=h.selection,t=Te.fromDom(e.getStart()),n=Te.fromDom(e.getEnd());sr.sharedOne(dn.table,[t,n]).fold(function(){w.clear(o)},y)}),b=S.some(v({mousedown:d,mouseover:m,mouseup:g,keyup:i,keydown:u}))}),{clear:w.clear,destroy:function(){b.each(function(e){})}}}var Rf=ha.each,Tf=function(t){var n=[];function e(e){return function(){t.execCommand(e)}}Rf("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"===e?n.push({text:"-"}):n.push(t.menuItems[e])}),t.addButton("table",{type:"menubutton",title:"Table",menu:n}),t.addButton("tableprops",{title:"Table properties",onclick:e("mceTableProps"),icon:"table"}),t.addButton("tabledelete",{title:"Delete table",onclick:e("mceTableDelete")}),t.addButton("tablecellprops",{title:"Cell properties",onclick:e("mceTableCellProps")}),t.addButton("tablemergecells",{title:"Merge cells",onclick:e("mceTableMergeCells")}),t.addButton("tablesplitcells",{title:"Split cell",onclick:e("mceTableSplitCells")}),t.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:e("mceTableInsertRowBefore")}),t.addButton("tableinsertrowafter",{title:"Insert row after",onclick:e("mceTableInsertRowAfter")}),t.addButton("tabledeleterow",{title:"Delete row",onclick:e("mceTableDeleteRow")}),t.addButton("tablerowprops",{title:"Row properties",onclick:e("mceTableRowProps")}),t.addButton("tablecutrow",{title:"Cut row",onclick:e("mceTableCutRow")}),t.addButton("tablecopyrow",{title:"Copy row",onclick:e("mceTableCopyRow")}),t.addButton("tablepasterowbefore",{title:"Paste row before",onclick:e("mceTablePasteRowBefore")}),t.addButton("tablepasterowafter",{title:"Paste row after",onclick:e("mceTablePasteRowAfter")}),t.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:e("mceTableInsertColBefore")}),t.addButton("tableinsertcolafter",{title:"Insert column after",onclick:e("mceTableInsertColAfter")}),t.addButton("tabledeletecol",{title:"Delete column",onclick:e("mceTableDeleteCol")})},Df=function(t){var e,n=""===(e=t.getParam("table_toolbar",Qu))||!1===e?[]:v(e)?e.split(/[ ,]/):w(e)?e:[];0<n.length&&t.addContextToolbar(function(e){return t.dom.is(e,"table")&&t.getBody().contains(e)},n.join(" "))},Of=function(o,n){var r=S.none(),i=[],u=[],a=[],c=[],l=function(e){e.disabled(!0)},f=function(e){e.disabled(!1)},e=function(){var t=this;i.push(t),r.fold(function(){l(t)},function(e){f(t)})},t=function(){var t=this;u.push(t),r.fold(function(){l(t)},function(e){f(t)})};o.on("init",function(){o.on("nodechange",function(e){var t=S.from(o.dom.getParent(o.selection.getStart(),"th,td"));(r=t.bind(function(e){var t=Te.fromDom(e);return dn.table(t).map(function(e){return Br.forMenu(n,e,t)})})).fold(function(){P(i,l),P(u,l),P(a,l),P(c,l)},function(t){P(i,f),P(u,f),P(a,function(e){e.disabled(t.mergable().isNone())}),P(c,function(e){e.disabled(t.unmergable().isNone())})})})});var s=function(e,t,n,r){var o,i,u,a,c,l=r.getEl().getElementsByTagName("table")[0],f=r.isRtl()||"tl-tr"===r.parent().rel;for(l.nextSibling.innerHTML=t+1+" x "+(n+1),f&&(t=9-t),i=0;i<10;i++)for(o=0;o<10;o++)a=l.rows[i].childNodes[o].firstChild,c=(f?t<=o:o<=t)&&i<=n,e.dom.toggleClass(a,"mce-active",c),c&&(u=a);return u.parentNode},d=!1===o.getParam("table_grid",!0,"boolean")?{text:"Table",icon:"table",context:"table",onclick:m("mceInsertTable")}:{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),o.execCommand("mceInsertTable"))},onshow:function(){s(o,0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){e+="<tr>";for(var n=0;n<10;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"===r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"===this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(s(o,t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"===e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){Pa(o,t.lastX+1,t.lastY+1)}),o.addVisual())}}]};function m(e){return function(){o.execCommand(e)}}var g={text:"Table properties",context:"table",onPostRender:e,onclick:m("mceTableProps")},h={text:"Delete table",context:"table",onPostRender:e,cmd:"mceTableDelete"},p={text:"Row",context:"table",menu:[{text:"Insert row before",onclick:m("mceTableInsertRowBefore"),onPostRender:t},{text:"Insert row after",onclick:m("mceTableInsertRowAfter"),onPostRender:t},{text:"Delete row",onclick:m("mceTableDeleteRow"),onPostRender:t},{text:"Row properties",onclick:m("mceTableRowProps"),onPostRender:t},{text:"-"},{text:"Cut row",onclick:m("mceTableCutRow"),onPostRender:t},{text:"Copy row",onclick:m("mceTableCopyRow"),onPostRender:t},{text:"Paste row before",onclick:m("mceTablePasteRowBefore"),onPostRender:t},{text:"Paste row after",onclick:m("mceTablePasteRowAfter"),onPostRender:t}]},v={text:"Column",context:"table",menu:[{text:"Insert column before",onclick:m("mceTableInsertColBefore"),onPostRender:t},{text:"Insert column after",onclick:m("mceTableInsertColAfter"),onPostRender:t},{text:"Delete column",onclick:m("mceTableDeleteCol"),onPostRender:t}]},b={separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:m("mceTableCellProps"),onPostRender:t},{text:"Merge cells",onclick:m("mceTableMergeCells"),onPostRender:function(){var t=this;a.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.mergable().isNone())})}},{text:"Split cell",onclick:m("mceTableSplitCells"),onPostRender:function(){var t=this;c.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.unmergable().isNone())})}}]};o.addMenuItem("inserttable",d),o.addMenuItem("tableprops",g),o.addMenuItem("deletetable",h),o.addMenuItem("row",p),o.addMenuItem("column",v),o.addMenuItem("cell",b)},Nf=function(n,r){return{insertTable:function(e,t){return Pa(n,e,t)},setClipboardRows:function(e){return t=r,n=A(e,Te.fromDom),void t.set(S.from(n));var t,n},getClipboardRows:function(){return r.get().fold(function(){},function(e){return A(e,function(e){return e.dom()})})}}};e.add("table",function(t){var n,r=sc(t),e=Sf(t,r.lazyResize),o=ma(t,r.lazyWire),i=(n=t,{get:function(){var e=Uu(n);return wr(e,Rr.selectedSelector()).fold(function(){return n.selection.getStart()===undefined?Or.none():Or.single(n.selection)},function(e){return Or.multiple(e)})}}),u=mu(S.none());return La(t,o,e,i,u),Wr(t,i,o,e),Of(t,i),Tf(t),Df(t),t.on("PreInit",function(){t.serializer.addTempAttr(Rr.firstSelected()),t.serializer.addTempAttr(Rr.lastSelected())}),t.getParam("table_tab_navigation",!0,"boolean")&&t.on("keydown",function(e){il(e,t,o,r.lazyWire)}),t.on("remove",function(){r.destroy(),e.destroy()}),Nf(t,u)})}(window);
mce/visualchars/plugin.js CHANGED
@@ -127,8 +127,9 @@ var visualchars = (function (domGlobals) {
127
  },
128
  toString: constant('none()')
129
  };
130
- if (Object.freeze)
131
  Object.freeze(me);
 
132
  return me;
133
  }();
134
  var some = function (a) {
@@ -203,13 +204,16 @@ var visualchars = (function (domGlobals) {
203
  };
204
 
205
  var typeOf = function (x) {
206
- if (x === null)
207
  return 'null';
 
208
  var t = typeof x;
209
- if (t === 'object' && Array.prototype.isPrototypeOf(x))
210
  return 'array';
211
- if (t === 'object' && String.prototype.isPrototypeOf(x))
 
212
  return 'string';
 
213
  return t;
214
  };
215
  var isType = function (type) {
@@ -219,6 +223,7 @@ var visualchars = (function (domGlobals) {
219
  };
220
  var isFunction = isType('function');
221
 
 
222
  var map = function (xs, f) {
223
  var len = xs.length;
224
  var r = new Array(len);
@@ -234,7 +239,6 @@ var visualchars = (function (domGlobals) {
234
  f(x, i, xs);
235
  }
236
  };
237
- var slice = Array.prototype.slice;
238
  var from$1 = isFunction(Array.from) ? Array.from : function (x) {
239
  return slice.call(x);
240
  };
@@ -290,6 +294,8 @@ var visualchars = (function (domGlobals) {
290
  var ENTITY = domGlobals.Node.ENTITY_NODE;
291
  var NOTATION = domGlobals.Node.NOTATION_NODE;
292
 
 
 
293
  var type = function (element) {
294
  return element.dom().nodeType;
295
  };
127
  },
128
  toString: constant('none()')
129
  };
130
+ if (Object.freeze) {
131
  Object.freeze(me);
132
+ }
133
  return me;
134
  }();
135
  var some = function (a) {
204
  };
205
 
206
  var typeOf = function (x) {
207
+ if (x === null) {
208
  return 'null';
209
+ }
210
  var t = typeof x;
211
+ if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
212
  return 'array';
213
+ }
214
+ if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
215
  return 'string';
216
+ }
217
  return t;
218
  };
219
  var isType = function (type) {
223
  };
224
  var isFunction = isType('function');
225
 
226
+ var slice = Array.prototype.slice;
227
  var map = function (xs, f) {
228
  var len = xs.length;
229
  var r = new Array(len);
239
  f(x, i, xs);
240
  }
241
  };
 
242
  var from$1 = isFunction(Array.from) ? Array.from : function (x) {
243
  return slice.call(x);
244
  };
294
  var ENTITY = domGlobals.Node.ENTITY_NODE;
295
  var NOTATION = domGlobals.Node.NOTATION_NODE;
296
 
297
+ var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
298
+
299
  var type = function (element) {
300
  return element.dom().nodeType;
301
  };
mce/visualchars/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(r){"use strict";var n,e,t,o,u,i,c=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return c(t())}}},a=tinymce.util.Tools.resolve("tinymce.PluginManager"),f=function(n){return{isEnabled:function(){return n.get()}}},l=function(n,e){return n.fire("VisualChars",{state:e})},d={"\xa0":"nbsp","\xad":"shy"},s=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},m=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},N={charMap:d,regExp:s(d),regExpGlobal:s(d,!0),selector:m(d),charMapToRegExp:s,charMapToSelector:m},E=function(n){return function(){return n}},g=E(!1),h=E(!0),v=g,T=h,p=function(){return O},O=(o={fold:function(n,e){return n()},is:v,isSome:v,isNone:T,getOr:t=function(n){return n},getOrThunk:e=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:e,map:p,ap:p,each:function(){},bind:p,flatten:p,exists:v,forall:T,filter:p,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:E("none()")},Object.freeze&&Object.freeze(o),o),y=function(t){var n=function(){return t},e=function(){return o},r=function(n){return n(t)},o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:T,isNone:v,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:e,orThunk:e,map:function(n){return y(n(t))},ap:function(n){return n.fold(p,function(n){return y(n(t))})},each:function(n){n(t)},bind:r,flatten:n,exists:r,forall:r,filter:function(n){return n(t)?o:O},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(v,function(n){return e(t,n)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},D=function(n){return null===n||n===undefined?O:y(n)},_=(u="function",function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"===e&&Array.prototype.isPrototypeOf(n)?"array":"object"===e&&String.prototype.isPrototypeOf(n)?"string":e}(n)===u}),C=function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)},M=(Array.prototype.slice,_(Array.from)&&Array.from,function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:E(n)}}),b={fromHtml:function(n,e){var t=(e||r.document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw r.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return M(t.childNodes[0])},fromTag:function(n,e){var t=(e||r.document).createElement(n);return M(t)},fromText:function(n,e){var t=(e||r.document).createTextNode(n);return M(t)},fromDom:M,fromPoint:function(n,e,t){var r=n.dom();return D(r.elementFromPoint(e,t)).map(M)}},k=(r.Node.ATTRIBUTE_NODE,r.Node.CDATA_SECTION_NODE,r.Node.COMMENT_NODE,r.Node.DOCUMENT_NODE,r.Node.DOCUMENT_TYPE_NODE,r.Node.DOCUMENT_FRAGMENT_NODE,r.Node.ELEMENT_NODE,r.Node.TEXT_NODE),w=(r.Node.PROCESSING_INSTRUCTION_NODE,r.Node.ENTITY_REFERENCE_NODE,r.Node.ENTITY_NODE,r.Node.NOTATION_NODE,function(n){return n.dom().nodeValue}),S=(i=k,function(n){return n.dom().nodeType===i}),x=function(n){return'<span data-mce-bogus="1" class="mce-'+N.charMap[n]+'">'+n+"</span>"},A=function(n,e){var t=[],r=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o,n)}return r}(n.dom().childNodes,b.fromDom);return C(r,function(n){e(n)&&(t=t.concat([n])),t=t.concat(A(n,e))}),t},P={isMatch:function(n){return S(n)&&w(n)!==undefined&&N.regExp.test(w(n))},filterDescendants:A,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(N.regExpGlobal,x)}},R=function(t,n){var r,o,e=P.filterDescendants(b.fromDom(n),P.isMatch);C(e,function(n){var e=P.replaceWithSpans(w(n));for(o=t.dom.create("div",null,e);r=o.lastChild;)t.dom.insertAfter(r,n.dom());t.dom.remove(n.dom())})},I=function(e,n){var t=e.dom.select(N.selector,n);C(t,function(n){e.dom.remove(n,1)})},B=R,U=I,V=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=P.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,I(n,r),R(n,r),n.selection.moveToBookmark(t)},j=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),l(n,e.get()),t=o.getBookmark(),!0===e.get()?B(n,r):U(n,r),o.moveToBookmark(t)},q=function(n,e){n.addCommand("mceVisualChars",function(){j(n,e)})},G=tinymce.util.Tools.resolve("tinymce.util.Delay"),H=function(e,t){var r=G.debounce(function(){V(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?V(e):r())})},L=function(n){return n.getParam("visualchars_default_state",!1)},F=function(e,t){e.on("init",function(){var n=!L(e);t.set(n),j(e,t)})},Y=function(t){return function(n){var e=n.control;t.on("VisualChars",function(n){e.active(n.state)})}};a.add("visualchars",function(n){var e,t=c(!1);return q(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Y(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Y(e),selectable:!0,context:"view",prependToContext:!0}),H(n,t),F(n,t),f(t)})}(window);
1
+ !function(r){"use strict";var n,e,t,o,u,i,c=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return c(t())}}},a=tinymce.util.Tools.resolve("tinymce.PluginManager"),f=function(n){return{isEnabled:function(){return n.get()}}},d=function(n,e){return n.fire("VisualChars",{state:e})},l={"\xa0":"nbsp","\xad":"shy"},s=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},m=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},N={charMap:l,regExp:s(l),regExpGlobal:s(l,!0),selector:m(l),charMapToRegExp:s,charMapToSelector:m},g=function(n){return function(){return n}},E=g(!1),h=g(!0),v=E,p=h,T=function(){return O},O=(o={fold:function(n,e){return n()},is:v,isSome:v,isNone:p,getOr:t=function(n){return n},getOrThunk:e=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:e,map:T,ap:T,each:function(){},bind:T,flatten:T,exists:v,forall:p,filter:T,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:g("none()")},Object.freeze&&Object.freeze(o),o),y=function(t){var n=function(){return t},e=function(){return o},r=function(n){return n(t)},o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:p,isNone:v,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:e,orThunk:e,map:function(n){return y(n(t))},ap:function(n){return n.fold(T,function(n){return y(n(t))})},each:function(n){n(t)},bind:r,flatten:n,exists:r,forall:r,filter:function(n){return n(t)?o:O},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(v,function(n){return e(t,n)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},D=function(n){return null===n||n===undefined?O:y(n)},_=(u="function",function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"===e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"===e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===u}),C=(Array.prototype.slice,function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)}),w=(_(Array.from)&&Array.from,function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:g(n)}}),M={fromHtml:function(n,e){var t=(e||r.document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw r.console.error("HTML does not have a single root node",n),new Error("HTML must have a single root node");return w(t.childNodes[0])},fromTag:function(n,e){var t=(e||r.document).createElement(n);return w(t)},fromText:function(n,e){var t=(e||r.document).createTextNode(n);return w(t)},fromDom:w,fromPoint:function(n,e,t){var r=n.dom();return D(r.elementFromPoint(e,t)).map(w)}},b=(r.Node.ATTRIBUTE_NODE,r.Node.CDATA_SECTION_NODE,r.Node.COMMENT_NODE,r.Node.DOCUMENT_NODE,r.Node.DOCUMENT_TYPE_NODE,r.Node.DOCUMENT_FRAGMENT_NODE,r.Node.ELEMENT_NODE,r.Node.TEXT_NODE),k=(r.Node.PROCESSING_INSTRUCTION_NODE,r.Node.ENTITY_REFERENCE_NODE,r.Node.ENTITY_NODE,r.Node.NOTATION_NODE,"undefined"!=typeof r.window?r.window:Function("return this;")(),function(n){return n.dom().nodeValue}),S=(i=b,function(n){return n.dom().nodeType===i}),A=function(n){return'<span data-mce-bogus="1" class="mce-'+N.charMap[n]+'">'+n+"</span>"},x=function(n,e){var t=[],r=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o,n)}return r}(n.dom().childNodes,M.fromDom);return C(r,function(n){e(n)&&(t=t.concat([n])),t=t.concat(x(n,e))}),t},P={isMatch:function(n){return S(n)&&k(n)!==undefined&&N.regExp.test(k(n))},filterDescendants:x,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(N.regExpGlobal,A)}},R=function(t,n){var r,o,e=P.filterDescendants(M.fromDom(n),P.isMatch);C(e,function(n){var e=P.replaceWithSpans(k(n));for(o=t.dom.create("div",null,e);r=o.lastChild;)t.dom.insertAfter(r,n.dom());t.dom.remove(n.dom())})},I=function(e,n){var t=e.dom.select(N.selector,n);C(t,function(n){e.dom.remove(n,1)})},B=R,U=I,V=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=P.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,I(n,r),R(n,r),n.selection.moveToBookmark(t)},j=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),d(n,e.get()),t=o.getBookmark(),!0===e.get()?B(n,r):U(n,r),o.moveToBookmark(t)},q=function(n,e){n.addCommand("mceVisualChars",function(){j(n,e)})},F=tinymce.util.Tools.resolve("tinymce.util.Delay"),G=function(e,t){var r=F.debounce(function(){V(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?V(e):r())})},H=function(n){return n.getParam("visualchars_default_state",!1)},L=function(e,t){e.on("init",function(){var n=!H(e);t.set(n),j(e,t)})},Y=function(t){return function(n){var e=n.control;t.on("VisualChars",function(n){e.active(n.state)})}};a.add("visualchars",function(n){var e,t=c(!1);return q(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Y(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:Y(e),selectable:!0,context:"view",prependToContext:!0}),G(n,t),L(n,t),f(t)})}(window);
plugin-assets/tadv.css CHANGED
@@ -167,11 +167,10 @@ span.tma-down-addow::after {
167
  .tma-block-dropdown-toolbar-inner-wrap {
168
  height: 100%;
169
  width: 100%;
170
- padding: 9px;
171
  }
172
 
173
  ul.toolbar-block-dropdown {
174
- padding: 0;
175
  margin: 0;
176
  height: 100%;
177
  width: 100%;
@@ -180,10 +179,18 @@ ul.toolbar-block-dropdown {
180
 
181
  ul.toolbar-block-dropdown > li {
182
  display: block;
183
- margin: 0;
184
  width: auto;
185
  height: 40px;
186
  cursor: move;
 
 
 
 
 
 
 
 
187
  }
188
 
189
  ul.toolbar-block-dropdown .tma-components-icon-button {
@@ -267,10 +274,6 @@ ul.toolbar-block-dropdown span {
267
  box-shadow: none;
268
  }
269
 
270
- .toolbar-block-dropdown .tma-components-icon-button:hover {
271
- box-shadow: inset 0 0 0 1px #e2e4e7, inset 0 0 0 2px #fff, 0 1px 1px rgba(25, 30, 35, 0.2);
272
- }
273
-
274
  .toolbar-side-wrap,
275
  .panel-block-colors {
276
  width: 260px;
@@ -512,11 +515,26 @@ ul.container,
512
 
513
  .tadv-mce-menu.mce-menubar .mce-menubtn:hover {
514
  background: transparent;
 
 
 
 
 
 
 
 
 
 
515
  }
516
 
517
  .tadv-mce-menu .mce-btn .mce-caret {
518
- margin-top: 9px;
519
  margin-left: 1px;
 
 
 
 
 
 
520
  }
521
 
522
  .tadv-mce-menu * {
@@ -582,7 +600,7 @@ ul.container,
582
  }
583
 
584
  .tadvdropzone.mce-toolbar .mce-btn .the-button {
585
- padding: 0 3px;
586
  }
587
 
588
  .tadvdropzone .tadvmodule .tadvitem:hover {
@@ -708,7 +726,7 @@ div.tadv-error {
708
  }
709
 
710
  .tadv-block-editor .mce-menubtn {
711
- margin: 6px 0;
712
  }
713
 
714
  .tadv-block-editor.tadvdropzone {
@@ -769,7 +787,6 @@ div.tadv-error {
769
  vertical-align: middle;
770
  }
771
 
772
-
773
  /* Block toolbar */
774
  .tma-block-toolbar-wrap.editor-block-toolbar {
775
  white-space: nowrap;
@@ -975,3 +992,12 @@ div.tadv-error {
975
  .tadvmodule .the-button {
976
  margin: 0;
977
  }
 
 
 
 
 
 
 
 
 
167
  .tma-block-dropdown-toolbar-inner-wrap {
168
  height: 100%;
169
  width: 100%;
 
170
  }
171
 
172
  ul.toolbar-block-dropdown {
173
+ padding: 7px 0;
174
  margin: 0;
175
  height: 100%;
176
  width: 100%;
179
 
180
  ul.toolbar-block-dropdown > li {
181
  display: block;
182
+ margin: 0 0 4px;
183
  width: auto;
184
  height: 40px;
185
  cursor: move;
186
+ outline: none;
187
+ }
188
+
189
+ ul.toolbar-block-dropdown > li:hover {
190
+ color: #191e23;
191
+ border: none;
192
+ box-shadow: none;
193
+ background: #f3f4f5;
194
  }
195
 
196
  ul.toolbar-block-dropdown .tma-components-icon-button {
274
  box-shadow: none;
275
  }
276
 
 
 
 
 
277
  .toolbar-side-wrap,
278
  .panel-block-colors {
279
  width: 260px;
515
 
516
  .tadv-mce-menu.mce-menubar .mce-menubtn:hover {
517
  background: transparent;
518
+ border-color: transparent;
519
+ }
520
+
521
+ /* Menubar fix... */
522
+ .mce-menubar .mce-menubtn button span {
523
+ font-size: 13px;
524
+ }
525
+
526
+ .tadv-mce-menu.mce-menubar .mce-menubtn:hover button span {
527
+ color: #000;
528
  }
529
 
530
  .tadv-mce-menu .mce-btn .mce-caret {
 
531
  margin-left: 1px;
532
+ margin-top: 6px;
533
+ border-top-color: #555;
534
+ }
535
+
536
+ #tadvadmin .mce-menubar .mce-menubtn:hover .mce-caret {
537
+ border-top-color: #000;
538
  }
539
 
540
  .tadv-mce-menu * {
600
  }
601
 
602
  .tadvdropzone.mce-toolbar .mce-btn .the-button {
603
+ padding: 2px 3px 0;
604
  }
605
 
606
  .tadvdropzone .tadvmodule .tadvitem:hover {
726
  }
727
 
728
  .tadv-block-editor .mce-menubtn {
729
+ margin: 7px 0 6px;
730
  }
731
 
732
  .tadv-block-editor.tadvdropzone {
787
  vertical-align: middle;
788
  }
789
 
 
790
  /* Block toolbar */
791
  .tma-block-toolbar-wrap.editor-block-toolbar {
792
  white-space: nowrap;
992
  .tadvmodule .the-button {
993
  margin: 0;
994
  }
995
+
996
+ /* Fixes for inadequate css changes in 5.3 :( */
997
+ #tadvadmin .button,
998
+ #tadvadmin .button-primary {
999
+ font-size: 14px;
1000
+ line-height: 1.7;
1001
+ padding: 2px 10px 3px;
1002
+ }
1003
+
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: block editor, classic editor, editor, Gutenberg, formatting, tinymce, write
4
- Requires at least: 5.2
5
- Tested up to: 5.2
6
- Stable tag: 5.2
7
  Requires PHP: 5.2
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -12,10 +12,10 @@ Extends and enhances the block editor (Gutenberg) and the classic editor (TinyMC
12
 
13
  == Description ==
14
 
15
- TinyMCE Advanced introduces a "Classic Paragraph" block and a "Hybrid Mode" for the new block editor (Gutenberg).
16
- If you are not quite ready to switch to the block editor, or have plugins that cannot be used there (yet), using the Classic Paragraph block and Hybrid Mode is your best option. It lets you to continue to use the familiar TinyMCE editor for most tasks, and at the same time gives you full access to all blocks and new features in the block editor.
17
 
18
- Version 5.2 continues to improve and enhance the new features introduced in version 5.0 of TinyMCE Advanced. It introduces an improved "Clear Formatting" button, several advanced settings for tables, an option to always keep paragraph tags in the block editor and importing and exporting of the settings to a file.
19
 
20
  If you want to continue to use the previous ("classic") editor in WordPress 5.0 and newer, this plugin has an option to replace the new editor with the previous one. If you prefer to have access to both editors side by side or to allow your users to switch editors, it would be better to install the [Classic Editor plugin](https://wordpress.org/plugins/classic-editor/). TinyMCE Advanced is fully compatible with the classic editor plugin and similar plugins that restore use of the previous WordPress editor.
21
 
@@ -47,6 +47,9 @@ Best is to install directly from WordPress. If manual installation is required,
47
 
48
  == Changelog ==
49
 
 
 
 
50
  = 5.2.1 =
51
  * Updated for WordPress 5.2.1 and TinyMCE 4.9.4.
52
  * Fixed resetting of the advanced options on update when all were unselected.
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: block editor, classic editor, editor, Gutenberg, formatting, tinymce, write
4
+ Requires at least: 5.3
5
+ Tested up to: 5.3
6
+ Stable tag: 5.2.1
7
  Requires PHP: 5.2
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
13
  == Description ==
14
 
15
+ TinyMCE Advanced introduces a "Classic Paragraph" block for the block editor (Gutenberg).
16
+ If you are not quite ready to switch to the block editor, or have plugins that cannot be used there (yet), using the Classic Paragraph block is your best option. It lets you to continue to use the familiar TinyMCE editor for most tasks, and at the same time gives you full access to all blocks and new features in the block editor.
17
 
18
+ Version 5.3 continues to improve and enhance the new features introduced in version 5.0 of TinyMCE Advanced. It includes an improved "Clear Formatting" button, several advanced settings for tables, and importing and exporting of the settings to a file.
19
 
20
  If you want to continue to use the previous ("classic") editor in WordPress 5.0 and newer, this plugin has an option to replace the new editor with the previous one. If you prefer to have access to both editors side by side or to allow your users to switch editors, it would be better to install the [Classic Editor plugin](https://wordpress.org/plugins/classic-editor/). TinyMCE Advanced is fully compatible with the classic editor plugin and similar plugins that restore use of the previous WordPress editor.
21
 
47
 
48
  == Changelog ==
49
 
50
+ = 5.3.0 =
51
+ * Updated for WordPress 5.3 and TinyMCE 4.9.6.
52
+
53
  = 5.2.1 =
54
  * Updated for WordPress 5.2.1 and TinyMCE 4.9.4.
55
  * Fixed resetting of the advanced options on update when all were unselected.
tinymce-advanced.php CHANGED
@@ -2,8 +2,8 @@
2
  /*
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
- Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
- Version: 5.2.1
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
2
  /*
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
+ Description: Extends and enhances the block editor (Gutenberg) and the classic editor (TinyMCE).
6
+ Version: 5.3.0
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2