!(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' : '
'), 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 = ''; for (var t = 0; t < 10; t++) { e += ''; for (var n = 0; n < 10; n++) e += ''; e += ''; } return ( (e += '
'), (e += '') ); })(), 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);