PluginProbe
YayMail – WooCommerce Email Customizer / 4.4.5
YayMail – WooCommerce Email Customizer v4.4.5
4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 All 57 releases
yaymail / assets / scripts / wp-editor-plugins / table / plugin.min.js

plugin.min.js in YayMail – WooCommerce Email Customizer 4.4.5, at assets/scripts/wp-editor-plugins/table/plugin.min.js

7,720 lines 212.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 !(function (m) {
2 'use strict';
3 var e = tinymce.util.Tools.resolve('tinymce.PluginManager'),
4 y = function () {
5 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
6 },
7 x = function (n, r) {
8 return function () {
9 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
10 return n(r.apply(null, e));
11 };
12 },
13 C = function (e) {
14 return function () {
15 return e;
16 };
17 },
18 o = function (e) {
19 return e;
20 };
21 function b(r) {
22 for (var o = [], e = 1; e < arguments.length; e++) o[e - 1] = arguments[e];
23 return function () {
24 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
25 var n = o.concat(e);
26 return r.apply(null, n);
27 };
28 }
29 var t,
30 n,
31 r,
32 i,
33 u,
34 g = function (n) {
35 return function () {
36 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
37 return !n.apply(null, e);
38 };
39 },
40 c = function (e) {
41 return e();
42 },
43 a = C(!1),
44 l = C(!0),
45 f = a,
46 s = l,
47 d = function () {
48 return h;
49 },
50 h =
51 ((i = {
52 fold: function (e, t) {
53 return e();
54 },
55 is: f,
56 isSome: f,
57 isNone: s,
58 getOr: (r = function (e) {
59 return e;
60 }),
61 getOrThunk: (n = function (e) {
62 return e();
63 }),
64 getOrDie: function (e) {
65 throw new Error(e || 'error: getOrDie called on none.');
66 },
67 getOrNull: function () {
68 return null;
69 },
70 getOrUndefined: function () {
71 return undefined;
72 },
73 or: r,
74 orThunk: n,
75 map: d,
76 ap: d,
77 each: function () {},
78 bind: d,
79 flatten: d,
80 exists: f,
81 forall: s,
82 filter: d,
83 equals: (t = function (e) {
84 return e.isNone();
85 }),
86 equals_: t,
87 toArray: function () {
88 return [];
89 },
90 toString: C('none()'),
91 }),
92 Object.freeze && Object.freeze(i),
93 i),
94 p = function (n) {
95 var e = function () {
96 return n;
97 },
98 t = function () {
99 return o;
100 },
101 r = function (e) {
102 return e(n);
103 },
104 o = {
105 fold: function (e, t) {
106 return t(n);
107 },
108 is: function (e) {
109 return n === e;
110 },
111 isSome: s,
112 isNone: f,
113 getOr: e,
114 getOrThunk: e,
115 getOrDie: e,
116 getOrNull: e,
117 getOrUndefined: e,
118 or: t,
119 orThunk: t,
120 map: function (e) {
121 return p(e(n));
122 },
123 ap: function (e) {
124 return e.fold(d, function (e) {
125 return p(e(n));
126 });
127 },
128 each: function (e) {
129 e(n);
130 },
131 bind: r,
132 flatten: e,
133 exists: r,
134 forall: r,
135 filter: function (e) {
136 return e(n) ? o : h;
137 },
138 equals: function (e) {
139 return e.is(n);
140 },
141 equals_: function (e, t) {
142 return e.fold(f, function (e) {
143 return t(n, e);
144 });
145 },
146 toArray: function () {
147 return [n];
148 },
149 toString: function () {
150 return 'some(' + n + ')';
151 },
152 };
153 return o;
154 },
155 S = {
156 some: p,
157 none: d,
158 from: function (e) {
159 return null === e || e === undefined ? h : p(e);
160 },
161 },
162 v = function (t) {
163 return function (e) {
164 return (
165 (function (e) {
166 if (null === e) return 'null';
167 var t = typeof e;
168 return 'object' === t && Array.prototype.isPrototypeOf(e)
169 ? 'array'
170 : 'object' === t && String.prototype.isPrototypeOf(e)
171 ? 'string'
172 : t;
173 })(e) === t
174 );
175 };
176 },
177 w = v('string'),
178 R = v('array'),
179 T = v('boolean'),
180 D = v('function'),
181 O = v('number'),
182 N =
183 (u = Array.prototype.indexOf) === undefined
184 ? function (e, t) {
185 return j(e, t);
186 }
187 : function (e, t) {
188 return u.call(e, t);
189 },
190 E = function (e, t) {
191 return -1 < N(e, t);
192 },
193 A = function (e, t) {
194 return L(e, t).isSome();
195 },
196 k = function (e, t) {
197 for (var n = e.length, r = new Array(n), o = 0; o < n; o++) {
198 var i = e[o];
199 r[o] = t(i, o, e);
200 }
201 return r;
202 },
203 P = function (e, t) {
204 for (var n = 0, r = e.length; n < r; n++) t(e[n], n, e);
205 },
206 I = function (e, t) {
207 for (var n = [], r = 0, o = e.length; r < o; r++) {
208 var i = e[r];
209 t(i, r, e) && n.push(i);
210 }
211 return n;
212 },
213 B = function (e, t) {
214 if (0 === e.length) return [];
215 for (var n = t(e[0]), r = [], o = [], i = 0, u = e.length; i < u; i++) {
216 var a = e[i],
217 c = t(a);
218 c !== n && (r.push(o), (o = [])), (n = c), o.push(a);
219 }
220 return 0 !== o.length && r.push(o), r;
221 },
222 W = function (e, t, n) {
223 return (
224 (function (e, t) {
225 for (var n = e.length - 1; 0 <= n; n--) t(e[n], n, e);
226 })(e, function (e) {
227 n = t(n, e);
228 }),
229 n
230 );
231 },
232 M = function (e, t, n) {
233 return (
234 P(e, function (e) {
235 n = t(n, e);
236 }),
237 n
238 );
239 },
240 _ = function (e, t) {
241 for (var n = 0, r = e.length; n < r; n++) {
242 var o = e[n];
243 if (t(o, n, e)) return S.some(o);
244 }
245 return S.none();
246 },
247 L = function (e, t) {
248 for (var n = 0, r = e.length; n < r; n++) if (t(e[n], n, e)) return S.some(n);
249 return S.none();
250 },
251 j = function (e, t) {
252 for (var n = 0, r = e.length; n < r; ++n) if (e[n] === t) return n;
253 return -1;
254 },
255 F = Array.prototype.push,
256 z = function (e) {
257 for (var t = [], n = 0, r = e.length; n < r; ++n) {
258 if (!Array.prototype.isPrototypeOf(e[n]))
259 throw new Error('Arr.flatten item ' + n + ' was not an array, input: ' + e);
260 F.apply(t, e[n]);
261 }
262 return t;
263 },
264 H = function (e, t) {
265 var n = k(e, t);
266 return z(n);
267 },
268 U = function (e, t) {
269 for (var n = 0, r = e.length; n < r; ++n) if (!0 !== t(e[n], n, e)) return !1;
270 return !0;
271 },
272 q = Array.prototype.slice,
273 V = function (e) {
274 var t = q.call(e, 0);
275 return t.reverse(), t;
276 },
277 G = function (e, t) {
278 var n = q.call(e, 0);
279 return n.sort(t), n;
280 },
281 Y = (D(Array.from) && Array.from, Object.keys),
282 X = function (e, t) {
283 for (var n = Y(e), r = 0, o = n.length; r < o; r++) {
284 var i = n[r];
285 t(e[i], i, e);
286 }
287 },
288 K = function (e, r) {
289 return J(e, function (e, t, n) {
290 return { k: t, v: r(e, t, n) };
291 });
292 },
293 J = function (r, o) {
294 var i = {};
295 return (
296 X(r, function (e, t) {
297 var n = o(e, t, r);
298 i[n.k] = n.v;
299 }),
300 i
301 );
302 },
303 $ = function () {
304 for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
305 return function () {
306 for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e];
307 if (t.length !== n.length)
308 throw new Error(
309 'Wrong number of arguments to struct. Expected "[' +
310 t.length +
311 ']", got ' +
312 n.length +
313 ' arguments',
314 );
315 var r = {};
316 return (
317 P(t, function (e, t) {
318 r[e] = C(n[t]);
319 }),
320 r
321 );
322 };
323 },
324 Q = function (e) {
325 return e.slice(0).sort();
326 },
327 Z = function (e, t) {
328 throw new Error(
329 'All required keys (' +
330 Q(e).join(', ') +
331 ') were not specified. Specified keys were: ' +
332 Q(t).join(', ') +
333 '.',
334 );
335 },
336 ee = function (e) {
337 throw new Error('Unsupported keys for object: ' + Q(e).join(', '));
338 },
339 te = function (t, e) {
340 if (!R(e)) throw new Error('The ' + t + ' fields must be an array. Was: ' + e + '.');
341 P(e, function (e) {
342 if (!w(e)) throw new Error('The value ' + e + ' in the ' + t + ' fields was not a string.');
343 });
344 },
345 ne = function (e) {
346 var n = Q(e);
347 _(n, function (e, t) {
348 return t < n.length - 1 && e === n[t + 1];
349 }).each(function (e) {
350 throw new Error(
351 'The field: ' +
352 e +
353 ' occurs more than once in the combined fields: [' +
354 n.join(', ') +
355 '].',
356 );
357 });
358 },
359 re = function (o, i) {
360 var u = o.concat(i);
361 if (0 === u.length)
362 throw new Error('You must specify at least one required or optional field.');
363 return (
364 te('required', o),
365 te('optional', i),
366 ne(u),
367 function (t) {
368 var n = Y(t);
369 U(o, function (e) {
370 return E(n, e);
371 }) || Z(o, n);
372 var e = I(n, function (e) {
373 return !E(u, e);
374 });
375 0 < e.length && ee(e);
376 var r = {};
377 return (
378 P(o, function (e) {
379 r[e] = C(t[e]);
380 }),
381 P(i, function (e) {
382 r[e] = C(Object.prototype.hasOwnProperty.call(t, e) ? S.some(t[e]) : S.none());
383 }),
384 r
385 );
386 }
387 );
388 },
389 oe = (m.Node.ATTRIBUTE_NODE, m.Node.CDATA_SECTION_NODE, m.Node.COMMENT_NODE),
390 ie = m.Node.DOCUMENT_NODE,
391 ue = (m.Node.DOCUMENT_TYPE_NODE, m.Node.DOCUMENT_FRAGMENT_NODE, m.Node.ELEMENT_NODE),
392 ae = m.Node.TEXT_NODE,
393 ce =
394 (m.Node.PROCESSING_INSTRUCTION_NODE,
395 m.Node.ENTITY_REFERENCE_NODE,
396 m.Node.ENTITY_NODE,
397 m.Node.NOTATION_NODE,
398 function (e) {
399 return e.dom().nodeName.toLowerCase();
400 }),
401 le = function (e) {
402 return e.dom().nodeType;
403 },
404 fe = function (t) {
405 return function (e) {
406 return le(e) === t;
407 };
408 },
409 se = function (e) {
410 return le(e) === oe || '#comment' === ce(e);
411 },
412 de = fe(ue),
413 me = fe(ae),
414 ge = fe(ie),
415 he = function (e, t, n) {
416 if (!(w(n) || T(n) || O(n)))
417 throw (
418 (m.console.error('Invalid call to Attr.set. Key ', t, ':: Value ', n, ':: Element ', e),
419 new Error('Attribute value was not simple'))
420 );
421 e.setAttribute(t, n + '');
422 },
423 pe = function (e, t, n) {
424 he(e.dom(), t, n);
425 },
426 ve = function (e, t) {
427 var n = e.dom();
428 X(t, function (e, t) {
429 he(n, t, e);
430 });
431 },
432 be = function (e, t) {
433 var n = e.dom().getAttribute(t);
434 return null === n ? undefined : n;
435 },
436 we = function (e, t) {
437 var n = e.dom();
438 return !(!n || !n.hasAttribute) && n.hasAttribute(t);
439 },
440 ye = function (e, t) {
441 e.dom().removeAttribute(t);
442 },
443 xe = function (e) {
444 return M(
445 e.dom().attributes,
446 function (e, t) {
447 return (e[t.name] = t.value), e;
448 },
449 {},
450 );
451 },
452 Ce = function (e, t) {
453 return -1 !== e.indexOf(t);
454 },
455 Se = function (e) {
456 return e.style !== undefined;
457 },
458 Re = function (n) {
459 var r,
460 o = !1;
461 return function () {
462 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
463 return o || ((o = !0), (r = n.apply(null, e))), r;
464 };
465 },
466 Te = function (e) {
467 if (null === e || e === undefined) throw new Error('Node cannot be null or undefined');
468 return { dom: C(e) };
469 },
470 De = {
471 fromHtml: function (e, t) {
472 var n = (t || m.document).createElement('div');
473 if (((n.innerHTML = e), !n.hasChildNodes() || 1 < n.childNodes.length))
474 throw (
475 (m.console.error('HTML does not have a single root node', e),
476 new Error('HTML must have a single root node'))
477 );
478 return Te(n.childNodes[0]);
479 },
480 fromTag: function (e, t) {
481 var n = (t || m.document).createElement(e);
482 return Te(n);
483 },
484 fromText: function (e, t) {
485 var n = (t || m.document).createTextNode(e);
486 return Te(n);
487 },
488 fromDom: Te,
489 fromPoint: function (e, t, n) {
490 var r = e.dom();
491 return S.from(r.elementFromPoint(t, n)).map(Te);
492 },
493 },
494 Oe = function (e) {
495 var t = me(e) ? e.dom().parentNode : e.dom();
496 return t !== undefined && null !== t && t.ownerDocument.body.contains(t);
497 },
498 Ne = Re(function () {
499 return Ee(De.fromDom(m.document));
500 }),
501 Ee = function (e) {
502 var t = e.dom().body;
503 if (null === t || t === undefined) throw new Error('Body is not available yet');
504 return De.fromDom(t);
505 },
506 Ae = function (e, t, n) {
507 if (!w(n))
508 throw (
509 (m.console.error(
510 'Invalid call to CSS.set. Property ',
511 t,
512 ':: Value ',
513 n,
514 ':: Element ',
515 e,
516 ),
517 new Error('CSS value must be a string: ' + n))
518 );
519 Se(e) && e.style.setProperty(t, n);
520 },
521 ke = function (e, t, n) {
522 var r = e.dom();
523 Ae(r, t, n);
524 },
525 Pe = function (e, t) {
526 var n = e.dom();
527 X(t, function (e, t) {
528 Ae(n, t, e);
529 });
530 },
531 Ie = function (e, t) {
532 var n = e.dom(),
533 r = m.window.getComputedStyle(n).getPropertyValue(t),
534 o = '' !== r || Oe(e) ? r : Be(n, t);
535 return null === o ? undefined : o;
536 },
537 Be = function (e, t) {
538 return Se(e) ? e.style.getPropertyValue(t) : '';
539 },
540 We = function (e, t) {
541 var n = e.dom(),
542 r = Be(n, t);
543 return S.from(r).filter(function (e) {
544 return 0 < e.length;
545 });
546 },
547 Me = function (e, t) {
548 var n,
549 r,
550 o = e.dom();
551 (r = t),
552 Se((n = o)) && n.style.removeProperty(r),
553 we(e, 'style') && '' === be(e, 'style').replace(/^\s+|\s+$/g, '') && ye(e, 'style');
554 },
555 _e = 'undefined' != typeof m.window ? m.window : Function('return this;')(),
556 Le = function (e, t) {
557 return (function (e, t) {
558 for (
559 var n = t !== undefined && null !== t ? t : _e, r = 0;
560 r < e.length && n !== undefined && null !== n;
561 ++r
562 )
563 n = n[e[r]];
564 return n;
565 })(e.split('.'), t);
566 },
567 je = function (e, t) {
568 var n = Le(e, t);
569 if (n === undefined || null === n) throw e + ' not available on this browser';
570 return n;
571 },
572 Fe = function () {
573 return je('Node');
574 },
575 ze = function (e, t, n) {
576 return 0 != (e.compareDocumentPosition(t) & n);
577 },
578 He = function (e, t) {
579 return ze(e, t, Fe().DOCUMENT_POSITION_CONTAINED_BY);
580 },
581 Ue = function (e, t) {
582 var n = (function (e, t) {
583 for (var n = 0; n < e.length; n++) {
584 var r = e[n];
585 if (r.test(t)) return r;
586 }
587 return undefined;
588 })(e, t);
589 if (!n) return { major: 0, minor: 0 };
590 var r = function (e) {
591 return Number(t.replace(n, '$' + e));
592 };
593 return Ve(r(1), r(2));
594 },
595 qe = function () {
596 return Ve(0, 0);
597 },
598 Ve = function (e, t) {
599 return { major: e, minor: t };
600 },
601 Ge = {
602 nu: Ve,
603 detect: function (e, t) {
604 var n = String(t).toLowerCase();
605 return 0 === e.length ? qe() : Ue(e, n);
606 },
607 unknown: qe,
608 },
609 Ye = 'Firefox',
610 Xe = function (e, t) {
611 return function () {
612 return t === e;
613 };
614 },
615 Ke = function (e) {
616 var t = e.current;
617 return {
618 current: t,
619 version: e.version,
620 isEdge: Xe('Edge', t),
621 isChrome: Xe('Chrome', t),
622 isIE: Xe('IE', t),
623 isOpera: Xe('Opera', t),
624 isFirefox: Xe(Ye, t),
625 isSafari: Xe('Safari', t),
626 };
627 },
628 Je = {
629 unknown: function () {
630 return Ke({ current: undefined, version: Ge.unknown() });
631 },
632 nu: Ke,
633 edge: C('Edge'),
634 chrome: C('Chrome'),
635 ie: C('IE'),
636 opera: C('Opera'),
637 firefox: C(Ye),
638 safari: C('Safari'),
639 },
640 $e = 'Windows',
641 Qe = 'Android',
642 Ze = 'Solaris',
643 et = 'FreeBSD',
644 tt = function (e, t) {
645 return function () {
646 return t === e;
647 };
648 },
649 nt = function (e) {
650 var t = e.current;
651 return {
652 current: t,
653 version: e.version,
654 isWindows: tt($e, t),
655 isiOS: tt('iOS', t),
656 isAndroid: tt(Qe, t),
657 isOSX: tt('OSX', t),
658 isLinux: tt('Linux', t),
659 isSolaris: tt(Ze, t),
660 isFreeBSD: tt(et, t),
661 };
662 },
663 rt = {
664 unknown: function () {
665 return nt({ current: undefined, version: Ge.unknown() });
666 },
667 nu: nt,
668 windows: C($e),
669 ios: C('iOS'),
670 android: C(Qe),
671 linux: C('Linux'),
672 osx: C('OSX'),
673 solaris: C(Ze),
674 freebsd: C(et),
675 },
676 ot = function (e, t) {
677 var n = String(t).toLowerCase();
678 return _(e, function (e) {
679 return e.search(n);
680 });
681 },
682 it = function (e, n) {
683 return ot(e, n).map(function (e) {
684 var t = Ge.detect(e.versionRegexes, n);
685 return { current: e.name, version: t };
686 });
687 },
688 ut = function (e, n) {
689 return ot(e, n).map(function (e) {
690 var t = Ge.detect(e.versionRegexes, n);
691 return { current: e.name, version: t };
692 });
693 },
694 at = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
695 ct = function (t) {
696 return function (e) {
697 return Ce(e, t);
698 };
699 },
700 lt = [
701 {
702 name: 'Edge',
703 versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
704 search: function (e) {
705 return Ce(e, 'edge/') && Ce(e, 'chrome') && Ce(e, 'safari') && Ce(e, 'applewebkit');
706 },
707 },
708 {
709 name: 'Chrome',
710 versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, at],
711 search: function (e) {
712 return Ce(e, 'chrome') && !Ce(e, 'chromeframe');
713 },
714 },
715 {
716 name: 'IE',
717 versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/],
718 search: function (e) {
719 return Ce(e, 'msie') || Ce(e, 'trident');
720 },
721 },
722 {
723 name: 'Opera',
724 versionRegexes: [at, /.*?opera\/([0-9]+)\.([0-9]+).*/],
725 search: ct('opera'),
726 },
727 {
728 name: 'Firefox',
729 versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
730 search: ct('firefox'),
731 },
732 {
733 name: 'Safari',
734 versionRegexes: [at, /.*?cpu os ([0-9]+)_([0-9]+).*/],
735 search: function (e) {
736 return (Ce(e, 'safari') || Ce(e, 'mobile/')) && Ce(e, 'applewebkit');
737 },
738 },
739 ],
740 ft = [
741 {
742 name: 'Windows',
743 search: ct('win'),
744 versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/],
745 },
746 {
747 name: 'iOS',
748 search: function (e) {
749 return Ce(e, 'iphone') || Ce(e, 'ipad');
750 },
751 versionRegexes: [
752 /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
753 /.*cpu os ([0-9]+)_([0-9]+).*/,
754 /.*cpu iphone os ([0-9]+)_([0-9]+).*/,
755 ],
756 },
757 {
758 name: 'Android',
759 search: ct('android'),
760 versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/],
761 },
762 { name: 'OSX', search: ct('os x'), versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] },
763 { name: 'Linux', search: ct('linux'), versionRegexes: [] },
764 { name: 'Solaris', search: ct('sunos'), versionRegexes: [] },
765 { name: 'FreeBSD', search: ct('freebsd'), versionRegexes: [] },
766 ],
767 st = { browsers: C(lt), oses: C(ft) },
768 dt = function (e) {
769 var t,
770 n,
771 r,
772 o,
773 i,
774 u,
775 a,
776 c,
777 l,
778 f,
779 s,
780 d = st.browsers(),
781 m = st.oses(),
782 g = it(d, e).fold(Je.unknown, Je.nu),
783 h = ut(m, e).fold(rt.unknown, rt.nu);
784 return {
785 browser: g,
786 os: h,
787 deviceType:
788 ((n = g),
789 (r = e),
790 (o = (t = h).isiOS() && !0 === /ipad/i.test(r)),
791 (i = t.isiOS() && !o),
792 (u = t.isAndroid() && 3 === t.version.major),
793 (a = t.isAndroid() && 4 === t.version.major),
794 (c = o || u || (a && !0 === /mobile/i.test(r))),
795 (l = t.isiOS() || t.isAndroid()),
796 (f = l && !c),
797 (s = n.isSafari() && t.isiOS() && !1 === /safari/i.test(r)),
798 {
799 isiPad: C(o),
800 isiPhone: C(i),
801 isTablet: C(c),
802 isPhone: C(f),
803 isTouch: C(l),
804 isAndroid: t.isAndroid,
805 isiOS: t.isiOS,
806 isWebView: C(s),
807 }),
808 };
809 },
810 mt = {
811 detect: Re(function () {
812 var e = m.navigator.userAgent;
813 return dt(e);
814 }),
815 },
816 gt = ue,
817 ht = ie,
818 pt = function (e, t) {
819 var n = e.dom();
820 if (n.nodeType !== gt) return !1;
821 if (n.matches !== undefined) return n.matches(t);
822 if (n.msMatchesSelector !== undefined) return n.msMatchesSelector(t);
823 if (n.webkitMatchesSelector !== undefined) return n.webkitMatchesSelector(t);
824 if (n.mozMatchesSelector !== undefined) return n.mozMatchesSelector(t);
825 throw new Error('Browser lacks native selectors');
826 },
827 vt = function (e) {
828 return (e.nodeType !== gt && e.nodeType !== ht) || 0 === e.childElementCount;
829 },
830 bt = function (e, t) {
831 return e.dom() === t.dom();
832 },
833 wt = mt.detect().browser.isIE()
834 ? function (e, t) {
835 return He(e.dom(), t.dom());
836 }
837 : function (e, t) {
838 var n = e.dom(),
839 r = t.dom();
840 return n !== r && n.contains(r);
841 },
842 yt = pt,
843 xt = function (e) {
844 return De.fromDom(e.dom().ownerDocument);
845 },
846 Ct = function (e) {
847 var t = e.dom();
848 return S.from(t.parentNode).map(De.fromDom);
849 },
850 St = function (e, t) {
851 for (
852 var n = D(t) ? t : C(!1), r = e.dom(), o = [];
853 null !== r.parentNode && r.parentNode !== undefined;
854
855 ) {
856 var i = r.parentNode,
857 u = De.fromDom(i);
858 if ((o.push(u), !0 === n(u))) break;
859 r = i;
860 }
861 return o;
862 },
863 Rt = function (e) {
864 var t = e.dom();
865 return S.from(t.previousSibling).map(De.fromDom);
866 },
867 Tt = function (e) {
868 var t = e.dom();
869 return S.from(t.nextSibling).map(De.fromDom);
870 },
871 Dt = function (e) {
872 var t = e.dom();
873 return k(t.childNodes, De.fromDom);
874 },
875 Ot = function (e, t) {
876 var n = e.dom().childNodes;
877 return S.from(n[t]).map(De.fromDom);
878 },
879 Nt =
880 ($('element', 'offset'),
881 function (t, n) {
882 Ct(t).each(function (e) {
883 e.dom().insertBefore(n.dom(), t.dom());
884 });
885 }),
886 Et = function (e, t) {
887 Tt(e).fold(
888 function () {
889 Ct(e).each(function (e) {
890 kt(e, t);
891 });
892 },
893 function (e) {
894 Nt(e, t);
895 },
896 );
897 },
898 At = function (t, n) {
899 Ot(t, 0).fold(
900 function () {
901 kt(t, n);
902 },
903 function (e) {
904 t.dom().insertBefore(n.dom(), e.dom());
905 },
906 );
907 },
908 kt = function (e, t) {
909 e.dom().appendChild(t.dom());
910 },
911 Pt = function (e, t) {
912 Nt(e, t), kt(t, e);
913 },
914 It = function (r, o) {
915 P(o, function (e, t) {
916 var n = 0 === t ? r : o[t - 1];
917 Et(n, e);
918 });
919 },
920 Bt = function (t, e) {
921 P(e, function (e) {
922 kt(t, e);
923 });
924 },
925 Wt = function (e) {
926 (e.dom().textContent = ''),
927 P(Dt(e), function (e) {
928 Mt(e);
929 });
930 },
931 Mt = function (e) {
932 var t = e.dom();
933 null !== t.parentNode && t.parentNode.removeChild(t);
934 },
935 _t = function (e) {
936 var t,
937 n = Dt(e);
938 0 < n.length &&
939 ((t = e),
940 P(n, function (e) {
941 Nt(t, e);
942 })),
943 Mt(e);
944 },
945 Lt = $('width', 'height'),
946 jt = $('rows', 'columns'),
947 Ft = $('row', 'column'),
948 zt = $('x', 'y'),
949 Ht = $('element', 'rowspan', 'colspan'),
950 Ut = $('element', 'rowspan', 'colspan', 'isNew'),
951 qt = {
952 dimensions: Lt,
953 grid: jt,
954 address: Ft,
955 coords: zt,
956 extended: $('element', 'rowspan', 'colspan', 'row', 'column'),
957 detail: Ht,
958 detailnew: Ut,
959 rowdata: $('element', 'cells', 'section'),
960 elementnew: $('element', 'isNew'),
961 rowdatanew: $('element', 'cells', 'section', 'isNew'),
962 rowcells: $('cells', 'section'),
963 rowdetails: $('details', 'section'),
964 bounds: $('startRow', 'startCol', 'finishRow', 'finishCol'),
965 },
966 Vt = function (e, t) {
967 var n = [];
968 return (
969 P(Dt(e), function (e) {
970 t(e) && (n = n.concat([e])), (n = n.concat(Vt(e, t)));
971 }),
972 n
973 );
974 },
975 Gt = function (e, t, n) {
976 return (
977 (r = function (e) {
978 return pt(e, t);
979 }),
980 I(St(e, n), r)
981 );
982 var r;
983 },
984 Yt = function (e, t) {
985 return (
986 (n = function (e) {
987 return pt(e, t);
988 }),
989 I(Dt(e), n)
990 );
991 var n;
992 },
993 Xt = function (e, t) {
994 return (
995 (n = t),
996 (o = (r = e) === undefined ? m.document : r.dom()),
997 vt(o) ? [] : k(o.querySelectorAll(n), De.fromDom)
998 );
999 var n, r, o;
1000 };
1001 function Kt(e, t, n, r, o) {
1002 return e(n, r) ? S.some(n) : D(o) && o(n) ? S.none() : t(n, r, o);
1003 }
1004 var Jt,
1005 $t,
1006 Qt,
1007 Zt,
1008 en,
1009 tn = function (e, t, n) {
1010 for (var r = e.dom(), o = D(n) ? n : C(!1); r.parentNode; ) {
1011 r = r.parentNode;
1012 var i = De.fromDom(r);
1013 if (t(i)) return S.some(i);
1014 if (o(i)) break;
1015 }
1016 return S.none();
1017 },
1018 nn = function (e, t, n) {
1019 return tn(
1020 e,
1021 function (e) {
1022 return pt(e, t);
1023 },
1024 n,
1025 );
1026 },
1027 rn = function (e, t) {
1028 return (
1029 (n = function (e) {
1030 return pt(e, t);
1031 }),
1032 _(e.dom().childNodes, x(n, De.fromDom)).map(De.fromDom)
1033 );
1034 var n;
1035 },
1036 on = function (e, t) {
1037 return (
1038 (n = t),
1039 (o = (r = e) === undefined ? m.document : r.dom()),
1040 vt(o) ? S.none() : S.from(o.querySelector(n)).map(De.fromDom)
1041 );
1042 var n, r, o;
1043 },
1044 un = function (e, t, n) {
1045 return Kt(pt, nn, e, t, n);
1046 },
1047 an = function (e, t, n) {
1048 return H(Dt(e), function (e) {
1049 return pt(e, t) ? (n(e) ? [e] : []) : an(e, t, n);
1050 });
1051 },
1052 cn = {
1053 firstLayer: function (e, t) {
1054 return an(e, t, C(!0));
1055 },
1056 filterFirstLayer: an,
1057 },
1058 ln = function (e, t, n) {
1059 var r = n !== undefined ? n : C(!1);
1060 return r(t)
1061 ? S.none()
1062 : E(e, ce(t))
1063 ? S.some(t)
1064 : nn(t, e.join(','), function (e) {
1065 return pt(e, 'table') || r(e);
1066 });
1067 },
1068 fn = function (t, e) {
1069 return Ct(e).map(function (e) {
1070 return Yt(e, t);
1071 });
1072 },
1073 sn = b(fn, 'th,td'),
1074 dn = b(fn, 'tr'),
1075 mn = function (e, t) {
1076 return parseInt(be(e, t), 10);
1077 },
1078 gn = {
1079 cell: function (e, t) {
1080 return ln(['td', 'th'], e, t);
1081 },
1082 firstCell: function (e) {
1083 return on(e, 'th,td');
1084 },
1085 cells: function (e) {
1086 return cn.firstLayer(e, 'th,td');
1087 },
1088 neighbourCells: sn,
1089 table: function (e, t) {
1090 return un(e, 'table', t);
1091 },
1092 row: function (e, t) {
1093 return ln(['tr'], e, t);
1094 },
1095 rows: function (e) {
1096 return cn.firstLayer(e, 'tr');
1097 },
1098 notCell: function (e, t) {
1099 return ln(['caption', 'tr', 'tbody', 'tfoot', 'thead'], e, t);
1100 },
1101 neighbourRows: dn,
1102 attr: mn,
1103 grid: function (e, t, n) {
1104 var r = mn(e, t),
1105 o = mn(e, n);
1106 return qt.grid(r, o);
1107 },
1108 },
1109 hn = function (e) {
1110 var t = gn.rows(e);
1111 return k(t, function (e) {
1112 var t = e,
1113 n = Ct(t)
1114 .map(function (e) {
1115 var t = ce(e);
1116 return 'tfoot' === t || 'thead' === t || 'tbody' === t ? t : 'tbody';
1117 })
1118 .getOr('tbody'),
1119 r = k(gn.cells(e), function (e) {
1120 var t = we(e, 'rowspan') ? parseInt(be(e, 'rowspan'), 10) : 1,
1121 n = we(e, 'colspan') ? parseInt(be(e, 'colspan'), 10) : 1;
1122 return qt.detail(e, t, n);
1123 });
1124 return qt.rowdata(t, r, n);
1125 });
1126 },
1127 pn = function (e, n) {
1128 return k(e, function (e) {
1129 var t = k(gn.cells(e), function (e) {
1130 var t = we(e, 'rowspan') ? parseInt(be(e, 'rowspan'), 10) : 1,
1131 n = we(e, 'colspan') ? parseInt(be(e, 'colspan'), 10) : 1;
1132 return qt.detail(e, t, n);
1133 });
1134 return qt.rowdata(e, t, n.section());
1135 });
1136 },
1137 vn = function (e, t) {
1138 return e + ',' + t;
1139 },
1140 bn = function (e, t) {
1141 var n = H(e.all(), function (e) {
1142 return e.cells();
1143 });
1144 return I(n, t);
1145 },
1146 wn = {
1147 generate: function (e) {
1148 var f = {},
1149 t = [],
1150 n = e.length,
1151 s = 0;
1152 P(e, function (e, c) {
1153 var l = [];
1154 P(e.cells(), function (e, t) {
1155 for (var n = 0; f[vn(c, n)] !== undefined; ) n++;
1156 for (
1157 var r = qt.extended(e.element(), e.rowspan(), e.colspan(), c, n), o = 0;
1158 o < e.colspan();
1159 o++
1160 )
1161 for (var i = 0; i < e.rowspan(); i++) {
1162 var u = n + o,
1163 a = vn(c + i, u);
1164 (f[a] = r), (s = Math.max(s, u + 1));
1165 }
1166 l.push(r);
1167 }),
1168 t.push(qt.rowdata(e.element(), l, e.section()));
1169 });
1170 var r = qt.grid(n, s);
1171 return { grid: C(r), access: C(f), all: C(t) };
1172 },
1173 getAt: function (e, t, n) {
1174 var r = e.access()[vn(t, n)];
1175 return r !== undefined ? S.some(r) : S.none();
1176 },
1177 findItem: function (e, t, n) {
1178 var r = bn(e, function (e) {
1179 return n(t, e.element());
1180 });
1181 return 0 < r.length ? S.some(r[0]) : S.none();
1182 },
1183 filterItems: bn,
1184 justCells: function (e) {
1185 var t = k(e.all(), function (e) {
1186 return e.cells();
1187 });
1188 return z(t);
1189 },
1190 },
1191 yn = $('minRow', 'minCol', 'maxRow', 'maxCol'),
1192 xn = function (e, t) {
1193 var n,
1194 i,
1195 r,
1196 u,
1197 a,
1198 c,
1199 l,
1200 o,
1201 f,
1202 s,
1203 d = function (e) {
1204 return pt(e.element(), t);
1205 },
1206 m = hn(e),
1207 g = wn.generate(m),
1208 h =
1209 ((i = d),
1210 (r = (n = g).grid().columns()),
1211 (u = n.grid().rows()),
1212 (a = r),
1213 (l = c = 0),
1214 X(n.access(), function (e) {
1215 if (i(e)) {
1216 var t = e.row(),
1217 n = t + e.rowspan() - 1,
1218 r = e.column(),
1219 o = r + e.colspan() - 1;
1220 t < u ? (u = t) : c < n && (c = n), r < a ? (a = r) : l < o && (l = o);
1221 }
1222 }),
1223 yn(u, a, c, l)),
1224 p = 'th:not(' + t + '),td:not(' + t + ')',
1225 v = cn.filterFirstLayer(e, 'th,td', function (e) {
1226 return pt(e, p);
1227 });
1228 return (
1229 P(v, Mt),
1230 (function (e, t, n, r) {
1231 for (var o, i, u, a = t.grid().columns(), c = t.grid().rows(), l = 0; l < c; l++)
1232 for (var f = !1, s = 0; s < a; s++)
1233 l < n.minRow() ||
1234 l > n.maxRow() ||
1235 s < n.minCol() ||
1236 s > n.maxCol() ||
1237 (wn.getAt(t, l, s).filter(r).isNone()
1238 ? ((o = f),
1239 (i = e[l].element()),
1240 (u = De.fromTag('td')),
1241 kt(u, De.fromTag('br')),
1242 (o ? kt : At)(i, u))
1243 : (f = !0));
1244 })(m, g, h, d),
1245 (o = e),
1246 (f = h),
1247 (s = I(cn.firstLayer(o, 'tr'), function (e) {
1248 return 0 === e.dom().childElementCount;
1249 })),
1250 P(s, Mt),
1251 (f.minCol() !== f.maxCol() && f.minRow() !== f.maxRow()) ||
1252 P(cn.firstLayer(o, 'th,td'), function (e) {
1253 ye(e, 'rowspan'), ye(e, 'colspan');
1254 }),
1255 ye(o, 'width'),
1256 ye(o, 'height'),
1257 Me(o, 'width'),
1258 Me(o, 'height'),
1259 e
1260 );
1261 },
1262 Cn =
1263 ((Jt = me),
1264 ($t = 'text'),
1265 (Qt = function (e) {
1266 return Jt(e) ? S.from(e.dom().nodeValue) : S.none();
1267 }),
1268 (Zt = mt.detect().browser),
1269 {
1270 get: function (e) {
1271 if (!Jt(e)) throw new Error('Can only get ' + $t + ' value of a ' + $t + ' node');
1272 return en(e).getOr('');
1273 },
1274 getOption: (en =
1275 Zt.isIE() && 10 === Zt.version.major
1276 ? function (e) {
1277 try {
1278 return Qt(e);
1279 } catch (t) {
1280 return S.none();
1281 }
1282 }
1283 : Qt),
1284 set: function (e, t) {
1285 if (!Jt(e)) throw new Error('Can only set raw ' + $t + ' value of a ' + $t + ' node');
1286 e.dom().nodeValue = t;
1287 },
1288 }),
1289 Sn = function (e) {
1290 return Cn.get(e);
1291 },
1292 Rn = function (e) {
1293 return Cn.getOption(e);
1294 },
1295 Tn = function (e, t) {
1296 Cn.set(e, t);
1297 },
1298 Dn = function (e) {
1299 return 'img' === ce(e)
1300 ? 1
1301 : Rn(e).fold(
1302 function () {
1303 return Dt(e).length;
1304 },
1305 function (e) {
1306 return e.length;
1307 },
1308 );
1309 },
1310 On = ['img', 'br'],
1311 Nn = function (e) {
1312 return (
1313 Rn(e)
1314 .filter(function (e) {
1315 return 0 !== e.trim().length || -1 < e.indexOf('\xa0');
1316 })
1317 .isSome() || E(On, ce(e))
1318 );
1319 },
1320 En = function (e) {
1321 return (
1322 (r = Nn),
1323 (o = function (e) {
1324 for (var t = 0; t < e.childNodes.length; t++) {
1325 if (r(De.fromDom(e.childNodes[t]))) return S.some(De.fromDom(e.childNodes[t]));
1326 var n = o(e.childNodes[t]);
1327 if (n.isSome()) return n;
1328 }
1329 return S.none();
1330 })(e.dom())
1331 );
1332 var r, o;
1333 },
1334 An = function (e) {
1335 return kn(e, Nn);
1336 },
1337 kn = function (e, i) {
1338 var u = function (e) {
1339 for (var t = Dt(e), n = t.length - 1; 0 <= n; n--) {
1340 var r = t[n];
1341 if (i(r)) return S.some(r);
1342 var o = u(r);
1343 if (o.isSome()) return o;
1344 }
1345 return S.none();
1346 };
1347 return u(e);
1348 },
1349 Pn = function (e, t) {
1350 return De.fromDom(e.dom().cloneNode(t));
1351 },
1352 In = function (e) {
1353 return Pn(e, !1);
1354 },
1355 Bn = function (e) {
1356 return Pn(e, !0);
1357 },
1358 Wn = function (e, t) {
1359 var n,
1360 r,
1361 o,
1362 i,
1363 u = ((n = e), (r = t), (o = De.fromTag(r)), (i = xe(n)), ve(o, i), o),
1364 a = Dt(Bn(e));
1365 return Bt(u, a), u;
1366 },
1367 Mn = function () {
1368 var e = De.fromTag('td');
1369 return kt(e, De.fromTag('br')), e;
1370 },
1371 _n = function (e, t, n) {
1372 var r = Wn(e, t);
1373 return (
1374 X(n, function (e, t) {
1375 null === e ? ye(r, t) : pe(r, t, e);
1376 }),
1377 r
1378 );
1379 },
1380 Ln = function (e) {
1381 return e;
1382 },
1383 jn = function (e) {
1384 return function () {
1385 return De.fromTag('tr', e.dom());
1386 };
1387 },
1388 Fn = function (d, e, m) {
1389 return {
1390 row: jn(e),
1391 cell: function (e) {
1392 var r,
1393 o,
1394 i,
1395 t,
1396 n,
1397 u,
1398 a,
1399 c = xt(e.element()),
1400 l = De.fromTag(ce(e.element()), c.dom()),
1401 f = m.getOr([
1402 'strong',
1403 'em',
1404 'b',
1405 'i',
1406 'span',
1407 'font',
1408 'h1',
1409 'h2',
1410 'h3',
1411 'h4',
1412 'h5',
1413 'h6',
1414 'p',
1415 'div',
1416 ]),
1417 s =
1418 0 < f.length
1419 ? ((r = e.element()),
1420 (o = l),
1421 (i = f),
1422 En(r)
1423 .map(function (e) {
1424 var t = i.join(','),
1425 n = Gt(e, t, function (e) {
1426 return bt(e, r);
1427 });
1428 return W(
1429 n,
1430 function (e, t) {
1431 var n = In(t);
1432 return ye(n, 'contenteditable'), kt(e, n), n;
1433 },
1434 o,
1435 );
1436 })
1437 .getOr(o))
1438 : l;
1439 return (
1440 kt(s, De.fromTag('br')),
1441 (t = e.element()),
1442 (n = l),
1443 (u = t.dom()),
1444 (a = n.dom()),
1445 Se(u) && Se(a) && (a.style.cssText = u.style.cssText),
1446 Me(l, 'height'),
1447 1 !== e.colspan() && Me(e.element(), 'width'),
1448 d(e.element(), l),
1449 l
1450 );
1451 },
1452 replace: _n,
1453 gap: Mn,
1454 };
1455 },
1456 zn = function (e) {
1457 return { row: jn(e), cell: Mn, replace: Ln, gap: Mn };
1458 },
1459 Hn = [
1460 'body',
1461 'p',
1462 'div',
1463 'article',
1464 'aside',
1465 'figcaption',
1466 'figure',
1467 'footer',
1468 'header',
1469 'nav',
1470 'section',
1471 'ol',
1472 'ul',
1473 'li',
1474 'table',
1475 'thead',
1476 'tbody',
1477 'tfoot',
1478 'caption',
1479 'tr',
1480 'td',
1481 'th',
1482 'h1',
1483 'h2',
1484 'h3',
1485 'h4',
1486 'h5',
1487 'h6',
1488 'blockquote',
1489 'pre',
1490 'address',
1491 ];
1492 function Un() {
1493 return {
1494 up: C({ selector: nn, closest: un, predicate: tn, all: St }),
1495 down: C({ selector: Xt, predicate: Vt }),
1496 styles: C({ get: Ie, getRaw: We, set: ke, remove: Me }),
1497 attrs: C({
1498 get: be,
1499 set: pe,
1500 remove: ye,
1501 copyTo: function (e, t) {
1502 var n = xe(e);
1503 ve(t, n);
1504 },
1505 }),
1506 insert: C({
1507 before: Nt,
1508 after: Et,
1509 afterAll: It,
1510 append: kt,
1511 appendAll: Bt,
1512 prepend: At,
1513 wrap: Pt,
1514 }),
1515 remove: C({ unwrap: _t, remove: Mt }),
1516 create: C({
1517 nu: De.fromTag,
1518 clone: function (e) {
1519 return De.fromDom(e.dom().cloneNode(!1));
1520 },
1521 text: De.fromText,
1522 }),
1523 query: C({
1524 comparePosition: function (e, t) {
1525 return e.dom().compareDocumentPosition(t.dom());
1526 },
1527 prevSibling: Rt,
1528 nextSibling: Tt,
1529 }),
1530 property: C({
1531 children: Dt,
1532 name: ce,
1533 parent: Ct,
1534 document: function (e) {
1535 return e.dom().ownerDocument;
1536 },
1537 isText: me,
1538 isComment: se,
1539 isElement: de,
1540 getText: Sn,
1541 setText: Tn,
1542 isBoundary: function (e) {
1543 return !!de(e) && ('body' === ce(e) || E(Hn, ce(e)));
1544 },
1545 isEmptyTag: function (e) {
1546 return !!de(e) && E(['br', 'img', 'hr', 'input'], ce(e));
1547 },
1548 }),
1549 eq: bt,
1550 is: yt,
1551 };
1552 }
1553 var qn = $('left', 'right'),
1554 Vn = function (e, t, n) {
1555 var r = e.property().children(t);
1556 return L(r, b(e.eq, n)).map(function (e) {
1557 return { before: C(r.slice(0, e)), after: C(r.slice(e + 1)) };
1558 });
1559 },
1560 Gn = function (n, r, o) {
1561 return Vn(n, r, o).map(function (e) {
1562 var t = n.create().clone(r);
1563 return (
1564 n.insert().appendAll(t, e.before().concat([o])),
1565 n.insert().appendAll(r, e.after()),
1566 n.insert().before(r, t),
1567 qn(t, r)
1568 );
1569 });
1570 },
1571 Yn = function (n, r, e) {
1572 return Vn(n, r, e).map(function (e) {
1573 var t = n.create().clone(r);
1574 return n.insert().appendAll(t, e.after()), n.insert().after(r, t), qn(r, t);
1575 });
1576 },
1577 Xn = function (i, e, u, a) {
1578 var r = $('first', 'second', 'splits'),
1579 c = function (e, t, o) {
1580 var n = r(e, S.none(), o);
1581 return u(e)
1582 ? r(e, t, o)
1583 : i
1584 .property()
1585 .parent(e)
1586 .bind(function (r) {
1587 return a(i, r, e)
1588 .map(function (e) {
1589 var t = [{ first: e.left, second: e.right }],
1590 n = u(r) ? r : e.left();
1591 return c(n, S.some(e.right()), o.concat(t));
1592 })
1593 .getOr(n);
1594 });
1595 };
1596 return c(e, S.none(), []);
1597 },
1598 Kn = function (r, o, e, t) {
1599 var n = o(r, e);
1600 return W(
1601 t,
1602 function (e, t) {
1603 var n = o(r, t);
1604 return Jn(r, e, n);
1605 },
1606 n,
1607 );
1608 },
1609 Jn = function (t, e, n) {
1610 return e.bind(function (e) {
1611 return n.filter(b(t.eq, e));
1612 });
1613 },
1614 $n = function (e, t, n) {
1615 return 0 < n.length ? Kn(e, t, (r = n)[0], r.slice(1)) : S.none();
1616 var r;
1617 },
1618 Qn = function (e, t) {
1619 return b(e.eq, t);
1620 },
1621 Zn = function (t, e, n, r) {
1622 var o = r !== undefined ? r : C(!1),
1623 i = [e].concat(t.up().all(e)),
1624 u = [n].concat(t.up().all(n)),
1625 a = function (t) {
1626 return L(t, o).fold(
1627 function () {
1628 return t;
1629 },
1630 function (e) {
1631 return t.slice(0, e + 1);
1632 },
1633 );
1634 },
1635 c = a(i),
1636 l = a(u),
1637 f = _(c, function (e) {
1638 return A(l, Qn(t, e));
1639 });
1640 return { firstpath: C(c), secondpath: C(l), shared: C(f) };
1641 },
1642 er = function (t, e, n) {
1643 var r = Zn(t, e, n);
1644 return r.shared().bind(function (e) {
1645 return (function (o, i, e, t) {
1646 var u = o.property().children(i);
1647 if (o.eq(i, e[0])) return S.some([e[0]]);
1648 if (o.eq(i, t[0])) return S.some([t[0]]);
1649 var n = function (e) {
1650 var t = V(e),
1651 n = L(t, Qn(o, i)).getOr(-1),
1652 r = n < t.length - 1 ? t[n + 1] : t[n];
1653 return L(u, Qn(o, r));
1654 },
1655 r = n(e),
1656 a = n(t);
1657 return r.bind(function (r) {
1658 return a.map(function (e) {
1659 var t = Math.min(r, e),
1660 n = Math.max(r, e);
1661 return u.slice(t, n + 1);
1662 });
1663 });
1664 })(t, e, r.firstpath(), r.secondpath());
1665 });
1666 },
1667 tr = Zn,
1668 nr = function (e, t, n) {
1669 return $n(e, t, n);
1670 },
1671 rr = function (e, t, n) {
1672 return er(e, t, n);
1673 },
1674 or = function (e, t, n, r) {
1675 return tr(e, t, n, r);
1676 },
1677 ir = function (e, t, n) {
1678 return Gn(e, t, n);
1679 },
1680 ur = function (e, t, n) {
1681 return Yn(e, t, n);
1682 },
1683 ar = function (e, t, n, r) {
1684 return Xn(e, t, n, r);
1685 },
1686 cr = Un(),
1687 lr = {
1688 sharedOne: function (n, e) {
1689 return nr(
1690 cr,
1691 function (e, t) {
1692 return n(t);
1693 },
1694 e,
1695 );
1696 },
1697 subset: function (e, t) {
1698 return rr(cr, e, t);
1699 },
1700 ancestors: function (e, t, n) {
1701 return or(cr, e, t, n);
1702 },
1703 breakToLeft: function (e, t) {
1704 return ir(cr, e, t);
1705 },
1706 breakToRight: function (e, t) {
1707 return ur(cr, e, t);
1708 },
1709 breakPath: function (e, t, r) {
1710 return ar(cr, e, t, function (e, t, n) {
1711 return r(t, n);
1712 });
1713 },
1714 },
1715 fr = function (e, t) {
1716 return (
1717 t.column() >= e.startCol() &&
1718 t.column() + t.colspan() - 1 <= e.finishCol() &&
1719 t.row() >= e.startRow() &&
1720 t.row() + t.rowspan() - 1 <= e.finishRow()
1721 );
1722 },
1723 sr = function (e, t) {
1724 var n = t.column(),
1725 r = t.column() + t.colspan() - 1,
1726 o = t.row(),
1727 i = t.row() + t.rowspan() - 1;
1728 return n <= e.finishCol() && r >= e.startCol() && o <= e.finishRow() && i >= e.startRow();
1729 },
1730 dr = function (e, t) {
1731 for (var n = !0, r = b(fr, t), o = t.startRow(); o <= t.finishRow(); o++)
1732 for (var i = t.startCol(); i <= t.finishCol(); i++) n = n && wn.getAt(e, o, i).exists(r);
1733 return n ? S.some(t) : S.none();
1734 },
1735 mr = function (e, t, n) {
1736 var r = wn.findItem(e, t, bt),
1737 o = wn.findItem(e, n, bt);
1738 return r.bind(function (r) {
1739 return o.map(function (e) {
1740 return (
1741 (t = r),
1742 (n = e),
1743 qt.bounds(
1744 Math.min(t.row(), n.row()),
1745 Math.min(t.column(), n.column()),
1746 Math.max(t.row() + t.rowspan() - 1, n.row() + n.rowspan() - 1),
1747 Math.max(t.column() + t.colspan() - 1, n.column() + n.colspan() - 1),
1748 )
1749 );
1750 var t, n;
1751 });
1752 });
1753 },
1754 gr = mr,
1755 hr = function (t, e, n) {
1756 return mr(t, e, n).bind(function (e) {
1757 return dr(t, e);
1758 });
1759 },
1760 pr = function (r, e, o, i) {
1761 return wn.findItem(r, e, bt).bind(function (e) {
1762 var t = 0 < o ? e.row() + e.rowspan() - 1 : e.row(),
1763 n = 0 < i ? e.column() + e.colspan() - 1 : e.column();
1764 return wn.getAt(r, t + o, n + i).map(function (e) {
1765 return e.element();
1766 });
1767 });
1768 },
1769 vr = function (n, e, t) {
1770 return gr(n, e, t).map(function (e) {
1771 var t = wn.filterItems(n, b(sr, e));
1772 return k(t, function (e) {
1773 return e.element();
1774 });
1775 });
1776 },
1777 br = function (e, t) {
1778 return wn
1779 .findItem(e, t, function (e, t) {
1780 return wt(t, e);
1781 })
1782 .bind(function (e) {
1783 return e.element();
1784 });
1785 },
1786 wr = function (e) {
1787 var t = hn(e);
1788 return wn.generate(t);
1789 },
1790 yr = function (n, r, o) {
1791 return gn.table(n).bind(function (e) {
1792 var t = wr(e);
1793 return pr(t, n, r, o);
1794 });
1795 },
1796 xr = function (e, t, n) {
1797 var r = wr(e);
1798 return vr(r, t, n);
1799 },
1800 Cr = function (e, t, n, r, o) {
1801 var i = wr(e),
1802 u = bt(e, n) ? t : br(i, t),
1803 a = bt(e, o) ? r : br(i, r);
1804 return vr(i, u, a);
1805 },
1806 Sr = function (e, t, n) {
1807 var r = wr(e);
1808 return hr(r, t, n);
1809 },
1810 Rr = function (e, t) {
1811 return nn(e, 'table');
1812 },
1813 Tr = re(['boxes', 'start', 'finish'], []),
1814 Dr = function (a, c, r) {
1815 var l = function (t) {
1816 return function (e) {
1817 return r(e) || bt(e, t);
1818 };
1819 };
1820 return bt(a, c)
1821 ? S.some(Tr({ boxes: S.some([a]), start: a, finish: c }))
1822 : Rr(a).bind(function (u) {
1823 return Rr(c).bind(function (i) {
1824 if (bt(u, i)) return S.some(Tr({ boxes: xr(u, a, c), start: a, finish: c }));
1825 if (wt(u, i)) {
1826 var e = 0 < (t = Gt(c, 'td,th', l(u))).length ? t[t.length - 1] : c;
1827 return S.some(Tr({ boxes: Cr(u, a, u, c, i), start: a, finish: e }));
1828 }
1829 if (wt(i, u)) {
1830 var t,
1831 n = 0 < (t = Gt(a, 'td,th', l(i))).length ? t[t.length - 1] : a;
1832 return S.some(Tr({ boxes: Cr(i, a, u, c, i), start: a, finish: n }));
1833 }
1834 return lr
1835 .ancestors(a, c)
1836 .shared()
1837 .bind(function (e) {
1838 return un(e, 'table', r).bind(function (e) {
1839 var t = Gt(c, 'td,th', l(e)),
1840 n = 0 < t.length ? t[t.length - 1] : c,
1841 r = Gt(a, 'td,th', l(e)),
1842 o = 0 < r.length ? r[r.length - 1] : a;
1843 return S.some(Tr({ boxes: Cr(e, a, u, c, i), start: o, finish: n }));
1844 });
1845 });
1846 });
1847 });
1848 },
1849 Or = Dr,
1850 Nr = function (e, t) {
1851 var n = Xt(e, t);
1852 return 0 < n.length ? S.some(n) : S.none();
1853 },
1854 Er = function (e, t, n, r, o) {
1855 return ((i = e),
1856 (u = o),
1857 _(i, function (e) {
1858 return pt(e, u);
1859 })).bind(function (e) {
1860 return yr(e, t, n).bind(function (e) {
1861 return (
1862 (n = r),
1863 nn((t = e), 'table').bind(function (e) {
1864 return on(e, n).bind(function (e) {
1865 return Dr(e, t).bind(function (t) {
1866 return t.boxes().map(function (e) {
1867 return { boxes: C(e), start: C(t.start()), finish: C(t.finish()) };
1868 });
1869 });
1870 });
1871 })
1872 );
1873 var t, n;
1874 });
1875 });
1876 var i, u;
1877 },
1878 Ar = function (e, t, r) {
1879 return on(e, t).bind(function (n) {
1880 return on(e, r).bind(function (t) {
1881 return lr.sharedOne(Rr, [n, t]).map(function (e) {
1882 return { first: C(n), last: C(t), table: C(e) };
1883 });
1884 });
1885 });
1886 },
1887 kr = function (e, t) {
1888 return Nr(e, t);
1889 },
1890 Pr = function (o, e, t) {
1891 return Ar(o, e, t).bind(function (n) {
1892 var e = function (e) {
1893 return bt(o, e);
1894 },
1895 t = nn(n.first(), 'thead,tfoot,tbody,table', e),
1896 r = nn(n.last(), 'thead,tfoot,tbody,table', e);
1897 return t.bind(function (t) {
1898 return r.bind(function (e) {
1899 return bt(t, e) ? Sr(n.table(), n.first(), n.last()) : S.none();
1900 });
1901 });
1902 });
1903 },
1904 Ir = 'data-mce-selected',
1905 Br = 'data-mce-first-selected',
1906 Wr = 'data-mce-last-selected',
1907 Mr = {
1908 selected: C(Ir),
1909 selectedSelector: C('td[data-mce-selected],th[data-mce-selected]'),
1910 attributeSelector: C('[data-mce-selected]'),
1911 firstSelected: C(Br),
1912 firstSelectedSelector: C('td[data-mce-first-selected],th[data-mce-first-selected]'),
1913 lastSelected: C(Wr),
1914 lastSelectedSelector: C('td[data-mce-last-selected],th[data-mce-last-selected]'),
1915 },
1916 _r = function (u) {
1917 if (!R(u)) throw new Error('cases must be an array');
1918 if (0 === u.length) throw new Error('there must be at least one case');
1919 var a = [],
1920 n = {};
1921 return (
1922 P(u, function (e, r) {
1923 var t = Y(e);
1924 if (1 !== t.length) throw new Error('one and only one name per case');
1925 var o = t[0],
1926 i = e[o];
1927 if (n[o] !== undefined) throw new Error('duplicate key detected:' + o);
1928 if ('cata' === o) throw new Error('cannot have a case named cata (sorry)');
1929 if (!R(i)) throw new Error('case arguments must be an array');
1930 a.push(o),
1931 (n[o] = function () {
1932 var e = arguments.length;
1933 if (e !== i.length)
1934 throw new Error(
1935 'Wrong number of arguments to case ' +
1936 o +
1937 '. Expected ' +
1938 i.length +
1939 ' (' +
1940 i +
1941 '), got ' +
1942 e,
1943 );
1944 for (var n = new Array(e), t = 0; t < n.length; t++) n[t] = arguments[t];
1945 return {
1946 fold: function () {
1947 if (arguments.length !== u.length)
1948 throw new Error(
1949 'Wrong number of arguments to fold. Expected ' +
1950 u.length +
1951 ', got ' +
1952 arguments.length,
1953 );
1954 return arguments[r].apply(null, n);
1955 },
1956 match: function (e) {
1957 var t = Y(e);
1958 if (a.length !== t.length)
1959 throw new Error(
1960 'Wrong number of arguments to match. Expected: ' +
1961 a.join(',') +
1962 '\nActual: ' +
1963 t.join(','),
1964 );
1965 if (
1966 !U(a, function (e) {
1967 return E(t, e);
1968 })
1969 )
1970 throw new Error(
1971 'Not all branches were specified when using match. Specified: ' +
1972 t.join(', ') +
1973 '\nRequired: ' +
1974 a.join(', '),
1975 );
1976 return e[o].apply(null, n);
1977 },
1978 log: function (e) {
1979 m.console.log(e, { constructors: a, constructor: o, params: n });
1980 },
1981 };
1982 });
1983 }),
1984 n
1985 );
1986 },
1987 Lr = _r([{ none: [] }, { multiple: ['elements'] }, { single: ['selection'] }]),
1988 jr = {
1989 cata: function (e, t, n, r) {
1990 return e.fold(t, n, r);
1991 },
1992 none: Lr.none,
1993 multiple: Lr.multiple,
1994 single: Lr.single,
1995 },
1996 Fr = function (e, t) {
1997 return jr.cata(t.get(), C([]), o, C([e]));
1998 },
1999 zr = function (n, e) {
2000 return jr.cata(
2001 e.get(),
2002 S.none,
2003 function (t, e) {
2004 return 0 === t.length
2005 ? S.none()
2006 : Pr(n, Mr.firstSelectedSelector(), Mr.lastSelectedSelector()).bind(function (e) {
2007 return 1 < t.length ? S.some({ bounds: C(e), cells: C(t) }) : S.none();
2008 });
2009 },
2010 S.none,
2011 );
2012 },
2013 Hr = function (e, t) {
2014 var n = Fr(e, t);
2015 return 0 < n.length &&
2016 U(n, function (e) {
2017 return (
2018 (we(e, 'rowspan') && 1 < parseInt(be(e, 'rowspan'), 10)) ||
2019 (we(e, 'colspan') && 1 < parseInt(be(e, 'colspan'), 10))
2020 );
2021 })
2022 ? S.some(n)
2023 : S.none();
2024 },
2025 Ur = Fr,
2026 qr = function (e) {
2027 return { element: C(e), mergable: S.none, unmergable: S.none, selection: C([e]) };
2028 },
2029 Vr = $('element', 'clipboard', 'generators'),
2030 Gr = {
2031 noMenu: qr,
2032 forMenu: function (e, t, n) {
2033 return {
2034 element: C(n),
2035 mergable: C(zr(t, e)),
2036 unmergable: C(Hr(n, e)),
2037 selection: C(Ur(n, e)),
2038 };
2039 },
2040 notCell: function (e) {
2041 return qr(e);
2042 },
2043 paste: Vr,
2044 pasteRows: function (e, t, n, r, o) {
2045 return {
2046 element: C(n),
2047 mergable: S.none,
2048 unmergable: S.none,
2049 selection: C(Ur(n, e)),
2050 clipboard: C(r),
2051 generators: C(o),
2052 };
2053 },
2054 },
2055 Yr = function (f, e, s, d) {
2056 f.on('BeforeGetContent', function (n) {
2057 !0 === n.selection &&
2058 jr.cata(
2059 e.get(),
2060 y,
2061 function (e) {
2062 var t;
2063 n.preventDefault(),
2064 ((t = e),
2065 gn
2066 .table(t[0])
2067 .map(Bn)
2068 .map(function (e) {
2069 return [xn(e, Mr.attributeSelector())];
2070 })).each(function (e) {
2071 var t;
2072 n.content =
2073 'text' === n.format
2074 ? k(e, function (e) {
2075 return e.dom().innerText;
2076 }).join('')
2077 : ((t = f),
2078 k(e, function (e) {
2079 return t.selection.serializer.serialize(e.dom(), {});
2080 }).join(''));
2081 });
2082 },
2083 y,
2084 );
2085 }),
2086 f.on('BeforeSetContent', function (l) {
2087 !0 === l.selection &&
2088 !0 === l.paste &&
2089 S.from(f.dom.getParent(f.selection.getStart(), 'th,td')).each(function (e) {
2090 var c = De.fromDom(e);
2091 gn.table(c).each(function (t) {
2092 var e,
2093 n,
2094 r,
2095 o = I(
2096 ((e = l.content),
2097 ((r = (n || m.document).createElement('div')).innerHTML = e),
2098 Dt(De.fromDom(r))),
2099 function (e) {
2100 return 'meta' !== ce(e);
2101 },
2102 );
2103 if (1 === o.length && 'table' === ce(o[0])) {
2104 l.preventDefault();
2105 var i = De.fromDom(f.getDoc()),
2106 u = zn(i),
2107 a = Gr.paste(c, o[0], u);
2108 s.pasteCells(t, a).each(function (e) {
2109 f.selection.setRng(e), f.focus(), d.clear(t);
2110 });
2111 }
2112 });
2113 });
2114 });
2115 };
2116 function Xr(r, o) {
2117 var e = function (e) {
2118 var t = o(e);
2119 if (t <= 0 || null === t) {
2120 var n = Ie(e, r);
2121 return parseFloat(n) || 0;
2122 }
2123 return t;
2124 },
2125 i = function (o, e) {
2126 return M(
2127 e,
2128 function (e, t) {
2129 var n = Ie(o, t),
2130 r = n === undefined ? 0 : parseInt(n, 10);
2131 return isNaN(r) ? e : e + r;
2132 },
2133 0,
2134 );
2135 };
2136 return {
2137 set: function (e, t) {
2138 if (!O(t) && !t.match(/^[0-9]+$/))
2139 throw new Error(r + '.set accepts only positive integer values. Value was ' + t);
2140 var n = e.dom();
2141 Se(n) && (n.style[r] = t + 'px');
2142 },
2143 get: e,
2144 getOuter: e,
2145 aggregate: i,
2146 max: function (e, t, n) {
2147 var r = i(e, n);
2148 return r < t ? t - r : 0;
2149 },
2150 };
2151 }
2152 var Kr = Xr('height', function (e) {
2153 var t = e.dom();
2154 return Oe(e) ? t.getBoundingClientRect().height : t.offsetHeight;
2155 }),
2156 Jr = function (e) {
2157 return Kr.get(e);
2158 },
2159 $r = function (e) {
2160 return Kr.getOuter(e);
2161 },
2162 Qr = Xr('width', function (e) {
2163 return e.dom().offsetWidth;
2164 }),
2165 Zr = function (e) {
2166 return Qr.get(e);
2167 },
2168 eo = function (e) {
2169 return Qr.getOuter(e);
2170 },
2171 to = mt.detect(),
2172 no = function (e, t, n) {
2173 return (r = Ie(e, t)), (o = n), (i = parseFloat(r)), isNaN(i) ? o : i;
2174 var r, o, i;
2175 },
2176 ro = function (e) {
2177 return to.browser.isIE() || to.browser.isEdge()
2178 ? ((n = no((t = e), 'padding-top', 0)),
2179 (r = no(t, 'padding-bottom', 0)),
2180 (o = no(t, 'border-top-width', 0)),
2181 (i = no(t, 'border-bottom-width', 0)),
2182 (u = t.dom().getBoundingClientRect().height),
2183 'border-box' === Ie(t, 'box-sizing') ? u : u - n - r - (o + i))
2184 : no(e, 'height', Jr(e));
2185 var t, n, r, o, i, u;
2186 },
2187 oo = /(\d+(\.\d+)?)(\w|%)*/,
2188 io = /(\d+(\.\d+)?)%/,
2189 uo = /(\d+(\.\d+)?)px|em/,
2190 ao = function (e, t) {
2191 ke(e, 'height', t + 'px');
2192 },
2193 co = function (e, t, n, r) {
2194 var o,
2195 i,
2196 u,
2197 a,
2198 c,
2199 l,
2200 f,
2201 s,
2202 d,
2203 m = parseInt(e, 10);
2204 return (
2205 (s = l = '%'),
2206 (d = (f = e).length - l.length),
2207 ('' !== s && (f.length < s.length || f.substr(d, d + s.length) !== s)) || 'table' === ce(t)
2208 ? m
2209 : ((o = t),
2210 (i = m),
2211 (u = n),
2212 (a = r),
2213 (c = gn
2214 .table(o)
2215 .map(function (e) {
2216 var t = u(e);
2217 return Math.floor((i / 100) * t);
2218 })
2219 .getOr(i)),
2220 a(o, c),
2221 c)
2222 );
2223 },
2224 lo = function (e) {
2225 var t,
2226 n = We((t = e), 'height').getOrThunk(function () {
2227 return ro(t) + 'px';
2228 });
2229 return n ? co(n, e, Jr, ao) : Jr(e);
2230 },
2231 fo = function (e, t) {
2232 return we(e, t) ? parseInt(be(e, t), 10) : 1;
2233 },
2234 so = function (e) {
2235 return We(e, 'width').fold(
2236 function () {
2237 return S.from(be(e, 'width'));
2238 },
2239 function (e) {
2240 return S.some(e);
2241 },
2242 );
2243 },
2244 mo = function (e, t) {
2245 return (e / t.pixelWidth()) * 100;
2246 },
2247 go = {
2248 percentageBasedSizeRegex: C(io),
2249 pixelBasedSizeRegex: C(uo),
2250 setPixelWidth: function (e, t) {
2251 ke(e, 'width', t + 'px');
2252 },
2253 setPercentageWidth: function (e, t) {
2254 ke(e, 'width', t + '%');
2255 },
2256 setHeight: ao,
2257 getPixelWidth: function (t, n) {
2258 return so(t).fold(
2259 function () {
2260 return Zr(t);
2261 },
2262 function (e) {
2263 return (function (e, t, n) {
2264 if (uo.test(t)) {
2265 var r = uo.exec(t);
2266 return parseInt(r[1], 10);
2267 }
2268 if (io.test(t)) {
2269 var o = io.exec(t),
2270 i = parseFloat(o[1]);
2271 return (i / 100) * n.pixelWidth();
2272 }
2273 return Zr(e);
2274 })(t, e, n);
2275 },
2276 );
2277 },
2278 getPercentageWidth: function (t, n) {
2279 return so(t).fold(
2280 function () {
2281 var e = Zr(t);
2282 return mo(e, n);
2283 },
2284 function (e) {
2285 return (function (e, t, n) {
2286 if (io.test(t)) {
2287 var r = io.exec(t);
2288 return parseFloat(r[1]);
2289 }
2290 var o = Zr(e);
2291 return mo(o, n);
2292 })(t, e, n);
2293 },
2294 );
2295 },
2296 getGenericWidth: function (e) {
2297 return so(e).bind(function (e) {
2298 if (oo.test(e)) {
2299 var t = oo.exec(e);
2300 return S.some({ width: C(t[1]), unit: C(t[3]) });
2301 }
2302 return S.none();
2303 });
2304 },
2305 setGenericWidth: function (e, t, n) {
2306 ke(e, 'width', t + n);
2307 },
2308 getHeight: function (e) {
2309 return (n = 'rowspan'), lo((t = e)) / fo(t, n);
2310 var t, n;
2311 },
2312 getRawWidth: so,
2313 },
2314 ho = function (n, r) {
2315 go.getGenericWidth(n).each(function (e) {
2316 var t = e.width() / 2;
2317 go.setGenericWidth(n, t, e.unit()), go.setGenericWidth(r, t, e.unit());
2318 });
2319 },
2320 po = function (n, r) {
2321 return {
2322 left: C(n),
2323 top: C(r),
2324 translate: function (e, t) {
2325 return po(n + e, r + t);
2326 },
2327 };
2328 },
2329 vo = po,
2330 bo = function (e, t) {
2331 return e !== undefined ? e : t !== undefined ? t : 0;
2332 },
2333 wo = function (e) {
2334 var t,
2335 n,
2336 r = e.dom().ownerDocument,
2337 o = r.body,
2338 i =
2339 ((t = De.fromDom(r)),
2340 (n = t.dom()) === n.window && t instanceof m.Window
2341 ? t
2342 : ge(t)
2343 ? n.defaultView || n.parentWindow
2344 : null),
2345 u = r.documentElement,
2346 a = bo(i.pageYOffset, u.scrollTop),
2347 c = bo(i.pageXOffset, u.scrollLeft),
2348 l = bo(u.clientTop, o.clientTop),
2349 f = bo(u.clientLeft, o.clientLeft);
2350 return yo(e).translate(c - f, a - l);
2351 },
2352 yo = function (e) {
2353 var t,
2354 n,
2355 r,
2356 o = e.dom(),
2357 i = o.ownerDocument,
2358 u = i.body,
2359 a = De.fromDom(i.documentElement);
2360 return u === o
2361 ? vo(u.offsetLeft, u.offsetTop)
2362 : ((t = e),
2363 (n = a || De.fromDom(m.document.documentElement)),
2364 tn(t, b(bt, n)).isSome()
2365 ? ((r = o.getBoundingClientRect()), vo(r.left, r.top))
2366 : vo(0, 0));
2367 },
2368 xo = $('row', 'y'),
2369 Co = $('col', 'x'),
2370 So = function (e) {
2371 return wo(e).left() + eo(e);
2372 },
2373 Ro = function (e) {
2374 return wo(e).left();
2375 },
2376 To = function (e, t) {
2377 return Co(e, Ro(t));
2378 },
2379 Do = function (e, t) {
2380 return Co(e, So(t));
2381 },
2382 Oo = function (e) {
2383 return wo(e).top();
2384 },
2385 No = function (n, t, r) {
2386 if (0 === r.length) return [];
2387 var e = k(r.slice(1), function (e, t) {
2388 return e.map(function (e) {
2389 return n(t, e);
2390 });
2391 }),
2392 o = r[r.length - 1].map(function (e) {
2393 return t(r.length - 1, e);
2394 });
2395 return e.concat([o]);
2396 },
2397 Eo = {
2398 delta: o,
2399 positions: b(
2400 No,
2401 function (e, t) {
2402 return xo(e, Oo(t));
2403 },
2404 function (e, t) {
2405 return xo(e, Oo(t) + $r(t));
2406 },
2407 ),
2408 edge: Oo,
2409 },
2410 Ao = { delta: o, edge: Ro, positions: b(No, To, Do) },
2411 ko = {
2412 height: Eo,
2413 rtl: {
2414 delta: function (e, t) {
2415 return -e;
2416 },
2417 edge: So,
2418 positions: b(No, Do, To),
2419 },
2420 ltr: Ao,
2421 },
2422 Po = { ltr: ko.ltr, rtl: ko.rtl };
2423 function Io(t) {
2424 var n = function (e) {
2425 return t(e).isRtl() ? Po.rtl : Po.ltr;
2426 };
2427 return {
2428 delta: function (e, t) {
2429 return n(t).delta(e, t);
2430 },
2431 edge: function (e) {
2432 return n(e).edge(e);
2433 },
2434 positions: function (e, t) {
2435 return n(t).positions(e);
2436 },
2437 };
2438 }
2439 var Bo,
2440 Wo = function (e) {
2441 var t = hn(e);
2442 return wn.generate(t).grid();
2443 },
2444 Mo = Object.prototype.hasOwnProperty,
2445 _o =
2446 ((Bo = function (e, t) {
2447 return t;
2448 }),
2449 function () {
2450 for (var e = new Array(arguments.length), t = 0; t < e.length; t++) e[t] = arguments[t];
2451 if (0 === e.length) throw new Error("Can't merge zero objects");
2452 for (var n = {}, r = 0; r < e.length; r++) {
2453 var o = e[r];
2454 for (var i in o) Mo.call(o, i) && (n[i] = Bo(n[i], o[i]));
2455 }
2456 return n;
2457 }),
2458 Lo = function (e) {
2459 for (
2460 var t = [],
2461 n = function (e) {
2462 t.push(e);
2463 },
2464 r = 0;
2465 r < e.length;
2466 r++
2467 )
2468 e[r].each(n);
2469 return t;
2470 },
2471 jo = function (e, t) {
2472 for (var n = 0; n < e.length; n++) {
2473 var r = t(e[n], n);
2474 if (r.isSome()) return r;
2475 }
2476 return S.none();
2477 },
2478 Fo = function (e, t, n, r) {
2479 n === r ? ye(e, t) : pe(e, t, n);
2480 },
2481 zo = function (o, e) {
2482 var i = [],
2483 u = [],
2484 t = function (e, t) {
2485 0 < e.length
2486 ? (function (e, t) {
2487 var n = rn(o, t).getOrThunk(function () {
2488 var e = De.fromTag(t, xt(o).dom());
2489 return kt(o, e), e;
2490 });
2491 Wt(n);
2492 var r = k(e, function (e) {
2493 e.isNew() && i.push(e.element());
2494 var t = e.element();
2495 return (
2496 Wt(t),
2497 P(e.cells(), function (e) {
2498 e.isNew() && u.push(e.element()),
2499 Fo(e.element(), 'colspan', e.colspan(), 1),
2500 Fo(e.element(), 'rowspan', e.rowspan(), 1),
2501 kt(t, e.element());
2502 }),
2503 t
2504 );
2505 });
2506 Bt(n, r);
2507 })(e, t)
2508 : rn(o, t).each(Mt);
2509 },
2510 n = [],
2511 r = [],
2512 a = [];
2513 return (
2514 P(e, function (e) {
2515 switch (e.section()) {
2516 case 'thead':
2517 n.push(e);
2518 break;
2519 case 'tbody':
2520 r.push(e);
2521 break;
2522 case 'tfoot':
2523 a.push(e);
2524 }
2525 }),
2526 t(n, 'thead'),
2527 t(r, 'tbody'),
2528 t(a, 'tfoot'),
2529 { newRows: C(i), newCells: C(u) }
2530 );
2531 },
2532 Ho = function (e) {
2533 return k(e, function (e) {
2534 var n = In(e.element());
2535 return (
2536 P(e.cells(), function (e) {
2537 var t = Bn(e.element());
2538 Fo(t, 'colspan', e.colspan(), 1), Fo(t, 'rowspan', e.rowspan(), 1), kt(n, t);
2539 }),
2540 n
2541 );
2542 });
2543 },
2544 Uo = function (e, t) {
2545 var n = be(e, t);
2546 return n === undefined || '' === n ? [] : n.split(' ');
2547 },
2548 qo = function (e) {
2549 return e.dom().classList !== undefined;
2550 },
2551 Vo = function (e, t) {
2552 return (o = t), (i = Uo((n = e), (r = 'class')).concat([o])), pe(n, r, i.join(' ')), !0;
2553 var n, r, o, i;
2554 },
2555 Go = function (e, t) {
2556 return (
2557 (o = t),
2558 0 <
2559 (i = I(Uo((n = e), (r = 'class')), function (e) {
2560 return e !== o;
2561 })).length
2562 ? pe(n, r, i.join(' '))
2563 : ye(n, r),
2564 !1
2565 );
2566 var n, r, o, i;
2567 },
2568 Yo = function (e, t) {
2569 qo(e) ? e.dom().classList.add(t) : Vo(e, t);
2570 },
2571 Xo = function (e) {
2572 0 === (qo(e) ? e.dom().classList : Uo(e, 'class')).length && ye(e, 'class');
2573 },
2574 Ko = function (e, t) {
2575 return qo(e) && e.dom().classList.contains(t);
2576 },
2577 Jo = function (e, t) {
2578 for (var n = [], r = 0; r < e; r++) n.push(t(r));
2579 return n;
2580 },
2581 $o = function (e, t) {
2582 for (var n = [], r = e; r < t; r++) n.push(r);
2583 return n;
2584 },
2585 Qo = function (t, n) {
2586 if (n < 0 || n >= t.length - 1) return S.none();
2587 var e = t[n].fold(
2588 function () {
2589 var e = V(t.slice(0, n));
2590 return jo(e, function (e, t) {
2591 return e.map(function (e) {
2592 return { value: e, delta: t + 1 };
2593 });
2594 });
2595 },
2596 function (e) {
2597 return S.some({ value: e, delta: 0 });
2598 },
2599 ),
2600 r = t[n + 1].fold(
2601 function () {
2602 var e = t.slice(n + 1);
2603 return jo(e, function (e, t) {
2604 return e.map(function (e) {
2605 return { value: e, delta: t + 1 };
2606 });
2607 });
2608 },
2609 function (e) {
2610 return S.some({ value: e, delta: 1 });
2611 },
2612 );
2613 return e.bind(function (n) {
2614 return r.map(function (e) {
2615 var t = e.delta + n.delta;
2616 return Math.abs(e.value - n.value) / t;
2617 });
2618 });
2619 },
2620 Zo = function (e, t, n) {
2621 var r = e();
2622 return _(r, t)
2623 .orThunk(function () {
2624 return S.from(r[0]).orThunk(n);
2625 })
2626 .map(function (e) {
2627 return e.element();
2628 });
2629 },
2630 ei = function (n) {
2631 var e = n.grid(),
2632 t = $o(0, e.columns()),
2633 r = $o(0, e.rows());
2634 return k(t, function (t) {
2635 return Zo(
2636 function () {
2637 return H(r, function (e) {
2638 return wn
2639 .getAt(n, e, t)
2640 .filter(function (e) {
2641 return e.column() === t;
2642 })
2643 .fold(C([]), function (e) {
2644 return [e];
2645 });
2646 });
2647 },
2648 function (e) {
2649 return 1 === e.colspan();
2650 },
2651 function () {
2652 return wn.getAt(n, 0, t);
2653 },
2654 );
2655 });
2656 },
2657 ti = function (n) {
2658 var e = n.grid(),
2659 t = $o(0, e.rows()),
2660 r = $o(0, e.columns());
2661 return k(t, function (t) {
2662 return Zo(
2663 function () {
2664 return H(r, function (e) {
2665 return wn
2666 .getAt(n, t, e)
2667 .filter(function (e) {
2668 return e.row() === t;
2669 })
2670 .fold(C([]), function (e) {
2671 return [e];
2672 });
2673 });
2674 },
2675 function (e) {
2676 return 1 === e.rowspan();
2677 },
2678 function () {
2679 return wn.getAt(n, t, 0);
2680 },
2681 );
2682 });
2683 },
2684 ni = function (e) {
2685 var t = e.replace(/\./g, '-');
2686 return {
2687 resolve: function (e) {
2688 return t + '-' + e;
2689 },
2690 };
2691 },
2692 ri = { resolve: ni('ephox-snooker').resolve },
2693 oi = function (e, t, n, r, o) {
2694 var i = De.fromTag('div');
2695 return (
2696 Pe(i, {
2697 position: 'absolute',
2698 left: t - r / 2 + 'px',
2699 top: n + 'px',
2700 height: o + 'px',
2701 width: r + 'px',
2702 }),
2703 ve(i, { 'data-column': e, role: 'presentation' }),
2704 i
2705 );
2706 },
2707 ii = function (e, t, n, r, o) {
2708 var i = De.fromTag('div');
2709 return (
2710 Pe(i, {
2711 position: 'absolute',
2712 left: t + 'px',
2713 top: n - o / 2 + 'px',
2714 height: o + 'px',
2715 width: r + 'px',
2716 }),
2717 ve(i, { 'data-row': e, role: 'presentation' }),
2718 i
2719 );
2720 },
2721 ui = ri.resolve('resizer-bar'),
2722 ai = ri.resolve('resizer-rows'),
2723 ci = ri.resolve('resizer-cols'),
2724 li = function (e) {
2725 var t = Xt(e.parent(), '.' + ui);
2726 P(t, Mt);
2727 },
2728 fi = function (n, e, r) {
2729 var o = n.origin();
2730 P(e, function (e, t) {
2731 e.each(function (e) {
2732 var t = r(o, e);
2733 Yo(t, ui), kt(n.parent(), t);
2734 });
2735 });
2736 },
2737 si = function (e, t, n, r, o, i) {
2738 var u,
2739 a,
2740 c,
2741 l,
2742 f = wo(t),
2743 s = 0 < n.length ? o.positions(n, t) : [];
2744 (u = e),
2745 (a = s),
2746 (c = f),
2747 (l = eo(t)),
2748 fi(u, a, function (e, t) {
2749 var n = ii(t.row(), c.left() - e.left(), t.y() - e.top(), l, 7);
2750 return Yo(n, ai), n;
2751 });
2752 var d,
2753 m,
2754 g,
2755 h,
2756 p = 0 < r.length ? i.positions(r, t) : [];
2757 (d = e),
2758 (m = p),
2759 (g = f),
2760 (h = $r(t)),
2761 fi(d, m, function (e, t) {
2762 var n = oi(t.col(), t.x() - e.left(), g.top() - e.top(), 7, h);
2763 return Yo(n, ci), n;
2764 });
2765 },
2766 di = function (e, t) {
2767 var n = Xt(e.parent(), '.' + ui);
2768 P(n, t);
2769 },
2770 mi = {
2771 refresh: function (e, t, n, r) {
2772 li(e);
2773 var o = hn(t),
2774 i = wn.generate(o),
2775 u = ti(i),
2776 a = ei(i);
2777 si(e, t, u, a, n, r);
2778 },
2779 hide: function (e) {
2780 di(e, function (e) {
2781 ke(e, 'display', 'none');
2782 });
2783 },
2784 show: function (e) {
2785 di(e, function (e) {
2786 ke(e, 'display', 'block');
2787 });
2788 },
2789 destroy: li,
2790 isRowBar: function (e) {
2791 return Ko(e, ai);
2792 },
2793 isColBar: function (e) {
2794 return Ko(e, ci);
2795 },
2796 },
2797 gi = function (e, t) {
2798 return qt.rowcells(t, e.section());
2799 },
2800 hi = function (e, t) {
2801 return e.cells()[t];
2802 },
2803 pi = {
2804 addCell: function (e, t, n) {
2805 var r = e.cells(),
2806 o = r.slice(0, t),
2807 i = r.slice(t),
2808 u = o.concat([n]).concat(i);
2809 return gi(e, u);
2810 },
2811 setCells: gi,
2812 mutateCell: function (e, t, n) {
2813 e.cells()[t] = n;
2814 },
2815 getCell: hi,
2816 getCellElement: function (e, t) {
2817 return hi(e, t).element();
2818 },
2819 mapCells: function (e, t) {
2820 var n = e.cells(),
2821 r = k(n, t);
2822 return qt.rowcells(r, e.section());
2823 },
2824 cellLength: function (e) {
2825 return e.cells().length;
2826 },
2827 },
2828 vi = function (e, t) {
2829 if (0 === e.length) return 0;
2830 var n = e[0];
2831 return L(e, function (e) {
2832 return !t(n.element(), e.element());
2833 }).fold(
2834 function () {
2835 return e.length;
2836 },
2837 function (e) {
2838 return e;
2839 },
2840 );
2841 },
2842 bi = function (e, t, n, r) {
2843 var o,
2844 i,
2845 u,
2846 a,
2847 c = ((o = e), (i = t), o[i]).cells().slice(n),
2848 l = vi(c, r),
2849 f = ((u = e),
2850 (a = n),
2851 k(u, function (e) {
2852 return pi.getCell(e, a);
2853 })).slice(t),
2854 s = vi(f, r);
2855 return { colspan: C(l), rowspan: C(s) };
2856 },
2857 wi = function (o, i) {
2858 var u = k(o, function (e, t) {
2859 return k(e.cells(), function (e, t) {
2860 return !1;
2861 });
2862 });
2863 return k(o, function (e, r) {
2864 var t = H(e.cells(), function (e, t) {
2865 if (!1 === u[r][t]) {
2866 var n = bi(o, r, t, i);
2867 return (
2868 (function (e, t, n, r) {
2869 for (var o = e; o < e + n; o++) for (var i = t; i < t + r; i++) u[o][i] = !0;
2870 })(r, t, n.rowspan(), n.colspan()),
2871 [qt.detailnew(e.element(), n.rowspan(), n.colspan(), e.isNew())]
2872 );
2873 }
2874 return [];
2875 });
2876 return qt.rowdetails(t, e.section());
2877 });
2878 },
2879 yi = function (e, t, n) {
2880 for (var r = [], o = 0; o < e.grid().rows(); o++) {
2881 for (var i = [], u = 0; u < e.grid().columns(); u++) {
2882 var a = wn
2883 .getAt(e, o, u)
2884 .map(function (e) {
2885 return qt.elementnew(e.element(), n);
2886 })
2887 .getOrThunk(function () {
2888 return qt.elementnew(t.gap(), !0);
2889 });
2890 i.push(a);
2891 }
2892 var c = qt.rowcells(i, e.all()[o].section());
2893 r.push(c);
2894 }
2895 return r;
2896 },
2897 xi = function (e, r) {
2898 return k(e, function (e) {
2899 var t,
2900 n =
2901 ((t = e.details()),
2902 jo(t, function (e) {
2903 return Ct(e.element()).map(function (e) {
2904 var t = Ct(e).isNone();
2905 return qt.elementnew(e, t);
2906 });
2907 }).getOrThunk(function () {
2908 return qt.elementnew(r.row(), !0);
2909 }));
2910 return qt.rowdatanew(n.element(), e.details(), e.section(), n.isNew());
2911 });
2912 },
2913 Ci = function (e, t) {
2914 var n = wi(e, bt);
2915 return xi(n, t);
2916 },
2917 Si = function (e, t) {
2918 var n = z(
2919 k(e.all(), function (e) {
2920 return e.cells();
2921 }),
2922 );
2923 return _(n, function (e) {
2924 return bt(t, e.element());
2925 });
2926 },
2927 Ri = function (a, c, l, f, s) {
2928 return function (n, r, e, o, i) {
2929 var t = hn(r),
2930 u = wn.generate(t);
2931 return c(u, e)
2932 .map(function (e) {
2933 var t = yi(u, o, !1),
2934 n = a(t, e, bt, s(o)),
2935 r = Ci(n.grid(), o);
2936 return { grid: C(r), cursor: n.cursor };
2937 })
2938 .fold(
2939 function () {
2940 return S.none();
2941 },
2942 function (e) {
2943 var t = zo(r, e.grid());
2944 return (
2945 l(r, e.grid(), i),
2946 f(r),
2947 mi.refresh(n, r, ko.height, i),
2948 S.some({ cursor: e.cursor, newRows: t.newRows, newCells: t.newCells })
2949 );
2950 },
2951 );
2952 };
2953 },
2954 Ti = Ci,
2955 Di = function (t, e) {
2956 return gn.cell(e.element()).bind(function (e) {
2957 return Si(t, e);
2958 });
2959 },
2960 Oi = function (t, e) {
2961 var n = k(e.selection(), function (e) {
2962 return gn.cell(e).bind(function (e) {
2963 return Si(t, e);
2964 });
2965 }),
2966 r = Lo(n);
2967 return 0 < r.length ? S.some(r) : S.none();
2968 },
2969 Ni = function (t, n) {
2970 return gn.cell(n.element()).bind(function (e) {
2971 return Si(t, e).map(function (e) {
2972 return _o(e, { generators: n.generators, clipboard: n.clipboard });
2973 });
2974 });
2975 },
2976 Ei = function (t, e) {
2977 var n = k(e.selection(), function (e) {
2978 return gn.cell(e).bind(function (e) {
2979 return Si(t, e);
2980 });
2981 }),
2982 r = Lo(n);
2983 return 0 < r.length
2984 ? S.some(_o({ cells: r }, { generators: e.generators, clipboard: e.clipboard }))
2985 : S.none();
2986 },
2987 Ai = function (e, t) {
2988 return t.mergable();
2989 },
2990 ki = function (e, t) {
2991 return t.unmergable();
2992 },
2993 Pi = function (n) {
2994 return {
2995 is: function (e) {
2996 return n === e;
2997 },
2998 isValue: l,
2999 isError: a,
3000 getOr: C(n),
3001 getOrThunk: C(n),
3002 getOrDie: C(n),
3003 or: function (e) {
3004 return Pi(n);
3005 },
3006 orThunk: function (e) {
3007 return Pi(n);
3008 },
3009 fold: function (e, t) {
3010 return t(n);
3011 },
3012 map: function (e) {
3013 return Pi(e(n));
3014 },
3015 mapError: function (e) {
3016 return Pi(n);
3017 },
3018 each: function (e) {
3019 e(n);
3020 },
3021 bind: function (e) {
3022 return e(n);
3023 },
3024 exists: function (e) {
3025 return e(n);
3026 },
3027 forall: function (e) {
3028 return e(n);
3029 },
3030 toOption: function () {
3031 return S.some(n);
3032 },
3033 };
3034 },
3035 Ii = function (n) {
3036 return {
3037 is: a,
3038 isValue: a,
3039 isError: l,
3040 getOr: o,
3041 getOrThunk: function (e) {
3042 return e();
3043 },
3044 getOrDie: function () {
3045 return (
3046 (e = String(n)),
3047 (function () {
3048 throw new Error(e);
3049 })()
3050 );
3051 var e;
3052 },
3053 or: function (e) {
3054 return e;
3055 },
3056 orThunk: function (e) {
3057 return e();
3058 },
3059 fold: function (e, t) {
3060 return e(n);
3061 },
3062 map: function (e) {
3063 return Ii(n);
3064 },
3065 mapError: function (e) {
3066 return Ii(e(n));
3067 },
3068 each: y,
3069 bind: function (e) {
3070 return Ii(n);
3071 },
3072 exists: a,
3073 forall: l,
3074 toOption: S.none,
3075 };
3076 },
3077 Bi = { value: Pi, error: Ii },
3078 Wi = function (e, t) {
3079 return k(e, function () {
3080 return qt.elementnew(t.cell(), !0);
3081 });
3082 },
3083 Mi = function (t, e, n) {
3084 return t.concat(
3085 Jo(e, function (e) {
3086 return pi.setCells(t[t.length - 1], Wi(t[t.length - 1].cells(), n));
3087 }),
3088 );
3089 },
3090 _i = function (e, t, n) {
3091 return k(e, function (e) {
3092 return pi.setCells(e, e.cells().concat(Wi($o(0, t), n)));
3093 });
3094 },
3095 Li = function (e, t, n) {
3096 if (e.row() >= t.length || e.column() > pi.cellLength(t[0]))
3097 return Bi.error(
3098 'invalid start address out of table bounds, row: ' + e.row() + ', column: ' + e.column(),
3099 );
3100 var r = t.slice(e.row()),
3101 o = r[0].cells().slice(e.column()),
3102 i = pi.cellLength(n[0]),
3103 u = n.length;
3104 return Bi.value({ rowDelta: C(r.length - u), colDelta: C(o.length - i) });
3105 },
3106 ji = function (e, t) {
3107 var n = pi.cellLength(e[0]),
3108 r = pi.cellLength(t[0]);
3109 return { rowDelta: C(0), colDelta: C(n - r) };
3110 },
3111 Fi = function (e, t, n) {
3112 var r = t.colDelta() < 0 ? _i : o;
3113 return (t.rowDelta() < 0 ? Mi : o)(
3114 r(e, Math.abs(t.colDelta()), n),
3115 Math.abs(t.rowDelta()),
3116 n,
3117 );
3118 },
3119 zi = function (e, t, n, r) {
3120 if (0 === e.length) return e;
3121 for (var o = t.startRow(); o <= t.finishRow(); o++)
3122 for (var i = t.startCol(); i <= t.finishCol(); i++)
3123 pi.mutateCell(e[o], i, qt.elementnew(r(), !1));
3124 return e;
3125 },
3126 Hi = function (e, t, n, r) {
3127 for (var o = !0, i = 0; i < e.length; i++)
3128 for (var u = 0; u < pi.cellLength(e[0]); u++) {
3129 var a = n(pi.getCellElement(e[i], u), t);
3130 !0 === a && !1 === o
3131 ? pi.mutateCell(e[i], u, qt.elementnew(r(), !0))
3132 : !0 === a && (o = !1);
3133 }
3134 return e;
3135 },
3136 Ui = function (i, n, u, a) {
3137 if (0 < n && n < i.length) {
3138 var e = i[n - 1].cells(),
3139 t =
3140 ((r = u),
3141 M(
3142 e,
3143 function (e, t) {
3144 return A(e, function (e) {
3145 return r(e.element(), t.element());
3146 })
3147 ? e
3148 : e.concat([t]);
3149 },
3150 [],
3151 ));
3152 P(t, function (r) {
3153 for (
3154 var o = S.none(),
3155 e = function (n) {
3156 for (
3157 var e = function (t) {
3158 var e = i[n].cells()[t];
3159 u(e.element(), r.element()) &&
3160 (o.isNone() && (o = S.some(a())),
3161 o.each(function (e) {
3162 pi.mutateCell(i[n], t, qt.elementnew(e, !0));
3163 }));
3164 },
3165 t = 0;
3166 t < pi.cellLength(i[0]);
3167 t++
3168 )
3169 e(t);
3170 },
3171 t = n;
3172 t < i.length;
3173 t++
3174 )
3175 e(t);
3176 });
3177 }
3178 var r;
3179 return i;
3180 },
3181 qi = function (n, r, o, i, u) {
3182 return Li(n, r, o).map(function (e) {
3183 var t = Fi(r, e, i);
3184 return (function (e, t, n, r, o) {
3185 for (
3186 var i,
3187 u,
3188 a,
3189 c,
3190 l,
3191 f = e.row(),
3192 s = e.column(),
3193 d = f + n.length,
3194 m = s + pi.cellLength(n[0]),
3195 g = f;
3196 g < d;
3197 g++
3198 )
3199 for (var h = s; h < m; h++) {
3200 (i = t),
3201 (u = g),
3202 (a = h),
3203 (c = void 0),
3204 (c = b(o, pi.getCell(i[u], a).element())),
3205 (l = i[u]),
3206 1 < i.length &&
3207 1 < pi.cellLength(l) &&
3208 ((0 < a && c(pi.getCellElement(l, a - 1))) ||
3209 (a < l.length - 1 && c(pi.getCellElement(l, a + 1))) ||
3210 (0 < u && c(pi.getCellElement(i[u - 1], a))) ||
3211 (u < i.length - 1 && c(pi.getCellElement(i[u + 1], a)))) &&
3212 Hi(t, pi.getCellElement(t[g], h), o, r.cell);
3213 var p = pi.getCellElement(n[g - f], h - s),
3214 v = r.replace(p);
3215 pi.mutateCell(t[g], h, qt.elementnew(v, !0));
3216 }
3217 return t;
3218 })(n, t, o, i, u);
3219 });
3220 },
3221 Vi = function (e, t, n, r, o) {
3222 Ui(t, e, o, r.cell);
3223 var i = ji(n, t),
3224 u = Fi(n, i, r),
3225 a = ji(t, u),
3226 c = Fi(t, a, r);
3227 return c.slice(0, e).concat(u).concat(c.slice(e, c.length));
3228 },
3229 Gi = function (n, r, e, o, i) {
3230 var t = n.slice(0, r),
3231 u = n.slice(r),
3232 a = pi.mapCells(n[e], function (e, t) {
3233 return 0 < r &&
3234 r < n.length &&
3235 o(pi.getCellElement(n[r - 1], t), pi.getCellElement(n[r], t))
3236 ? pi.getCell(n[r], t)
3237 : qt.elementnew(i(e.element(), o), !0);
3238 });
3239 return t.concat([a]).concat(u);
3240 },
3241 Yi = function (e, n, r, o, i) {
3242 return k(e, function (e) {
3243 var t =
3244 0 < n && n < pi.cellLength(e) && o(pi.getCellElement(e, n - 1), pi.getCellElement(e, n))
3245 ? pi.getCell(e, n)
3246 : qt.elementnew(i(pi.getCellElement(e, r), o), !0);
3247 return pi.addCell(e, n, t);
3248 });
3249 },
3250 Xi = function (e, r, o, i, u) {
3251 var a = o + 1;
3252 return k(e, function (e, t) {
3253 var n = t === r ? qt.elementnew(u(pi.getCellElement(e, o), i), !0) : pi.getCell(e, o);
3254 return pi.addCell(e, a, n);
3255 });
3256 },
3257 Ki = function (e, t, n, r, o) {
3258 var i = t + 1,
3259 u = e.slice(0, i),
3260 a = e.slice(i),
3261 c = pi.mapCells(e[t], function (e, t) {
3262 return t === n ? qt.elementnew(o(e.element(), r), !0) : e;
3263 });
3264 return u.concat([c]).concat(a);
3265 },
3266 Ji = function (e, t, n) {
3267 return e.slice(0, t).concat(e.slice(n + 1));
3268 },
3269 $i = function (e, n, r) {
3270 var t = k(e, function (e) {
3271 var t = e
3272 .cells()
3273 .slice(0, n)
3274 .concat(e.cells().slice(r + 1));
3275 return qt.rowcells(t, e.section());
3276 });
3277 return I(t, function (e) {
3278 return 0 < e.cells().length;
3279 });
3280 },
3281 Qi = function (e) {
3282 return e.dom().textContent;
3283 },
3284 Zi = function (e, n, r, o) {
3285 return k(e, function (e) {
3286 return pi.mapCells(e, function (e) {
3287 return (
3288 (t = e),
3289 A(n, function (e) {
3290 return r(t.element(), e.element());
3291 })
3292 ? qt.elementnew(o(e.element(), r), !0)
3293 : e
3294 );
3295 var t;
3296 });
3297 });
3298 },
3299 eu = function (e, t, n, r) {
3300 return (
3301 pi.getCellElement(e[t], n) !== undefined &&
3302 0 < t &&
3303 r(pi.getCellElement(e[t - 1], n), pi.getCellElement(e[t], n))
3304 );
3305 },
3306 tu = function (e, t, n) {
3307 return 0 < t && n(pi.getCellElement(e, t - 1), pi.getCellElement(e, t));
3308 },
3309 nu = function (n, r, o, e) {
3310 var t = H(n, function (e, t) {
3311 return eu(n, t, r, o) || tu(e, r, o) ? [] : [pi.getCell(e, r)];
3312 });
3313 return Zi(n, t, o, e);
3314 },
3315 ru = function (n, r, o, e) {
3316 var i = n[r],
3317 t = H(i.cells(), function (e, t) {
3318 return eu(n, r, t, o) || tu(i, t, o) ? [] : [e];
3319 });
3320 return Zi(n, t, o, e);
3321 },
3322 ou = function (e, r, o, i) {
3323 var t = B(e, function (e) {
3324 return ce(pi.getCell(e, r).element());
3325 });
3326 return H(t, function (e) {
3327 return 'th' === ce(pi.getCell(e[0], r).element())
3328 ? e
3329 : ((t = k(e, function (e) {
3330 var t = pi.getCell(e, r);
3331 return { row: e, text: Qi(t.element()) };
3332 })),
3333 (n = G(t, function (e, t) {
3334 var n = o(e.text, t.text);
3335 return i ? n : -1 * n;
3336 })),
3337 k(n, function (e) {
3338 return e.row;
3339 }));
3340 var t, n;
3341 });
3342 },
3343 iu = function (e, t, o, i) {
3344 var n = e[t].cells(),
3345 r = k(n, function (e) {
3346 return Qi(e.element());
3347 }),
3348 u = k(e, function (e) {
3349 return {
3350 zippedCells: k(e.cells(), function (e, t) {
3351 return { cell: e, reference: n[t], referenceText: r[t] };
3352 }),
3353 section: e.section(),
3354 };
3355 });
3356 return k(u, function (e) {
3357 var t = B(e.zippedCells, function (e) {
3358 return ce(e.reference.element());
3359 }),
3360 n = H(t, function (e) {
3361 return 'th' === ce(e[0].reference.element())
3362 ? e
3363 : G(e, function (e, t) {
3364 var n = o(e.referenceText, t.referenceText);
3365 return i ? n : -1 * n;
3366 });
3367 }),
3368 r = k(n, function (e) {
3369 return e.cell;
3370 });
3371 return qt.rowcells(r, e.section);
3372 });
3373 },
3374 uu = function (e) {
3375 return { fold: e };
3376 },
3377 au = function () {
3378 return uu(function (e, t, n, r, o) {
3379 return e();
3380 });
3381 },
3382 cu = function (i) {
3383 return uu(function (e, t, n, r, o) {
3384 return t(i);
3385 });
3386 },
3387 lu = function (i, u) {
3388 return uu(function (e, t, n, r, o) {
3389 return n(i, u);
3390 });
3391 },
3392 fu = function (i, u, a) {
3393 return uu(function (e, t, n, r, o) {
3394 return r(i, u, a);
3395 });
3396 },
3397 su = function (i, u) {
3398 return uu(function (e, t, n, r, o) {
3399 return o(i, u);
3400 });
3401 },
3402 du = function (e, t, i, u) {
3403 var n,
3404 r,
3405 a = e.slice(0),
3406 o =
3407 ((r = t),
3408 0 === (n = e).length
3409 ? au()
3410 : 1 === n.length
3411 ? cu(0)
3412 : 0 === r
3413 ? lu(0, 1)
3414 : r === n.length - 1
3415 ? su(r - 1, r)
3416 : 0 < r && r < n.length - 1
3417 ? fu(r - 1, r, r + 1)
3418 : au()),
3419 c = function (e) {
3420 return k(e, C(0));
3421 },
3422 l = C(c(a)),
3423 f = function (e, t) {
3424 if (0 <= i) {
3425 var n = Math.max(u.minCellWidth(), a[t] - i);
3426 return c(a.slice(0, e))
3427 .concat([i, n - a[t]])
3428 .concat(c(a.slice(t + 1)));
3429 }
3430 var r = Math.max(u.minCellWidth(), a[e] + i),
3431 o = a[e] - r;
3432 return c(a.slice(0, e))
3433 .concat([r - a[e], o])
3434 .concat(c(a.slice(t + 1)));
3435 },
3436 s = f;
3437 return o.fold(
3438 l,
3439 function (e) {
3440 return u.singleColumnWidth(a[e], i);
3441 },
3442 s,
3443 function (e, t, n) {
3444 return f(t, n);
3445 },
3446 function (e, t) {
3447 if (0 <= i) return c(a.slice(0, t)).concat([i]);
3448 var n = Math.max(u.minCellWidth(), a[t] + i);
3449 return c(a.slice(0, t)).concat([n - a[t]]);
3450 },
3451 );
3452 },
3453 mu = function (e, t) {
3454 return we(e, t) && 1 < parseInt(be(e, t), 10);
3455 },
3456 gu = {
3457 hasColspan: function (e) {
3458 return mu(e, 'colspan');
3459 },
3460 hasRowspan: function (e) {
3461 return mu(e, 'rowspan');
3462 },
3463 minWidth: C(10),
3464 minHeight: C(10),
3465 getInt: function (e, t) {
3466 return parseInt(Ie(e, t), 10);
3467 },
3468 },
3469 hu = function (e, t, n) {
3470 return We(e, t).fold(
3471 function () {
3472 return n(e) + 'px';
3473 },
3474 function (e) {
3475 return e;
3476 },
3477 );
3478 },
3479 pu = function (e) {
3480 return hu(e, 'width', go.getPixelWidth);
3481 },
3482 vu = function (e) {
3483 return hu(e, 'height', go.getHeight);
3484 },
3485 bu = function (e, t, n, r, o) {
3486 var i = ei(e),
3487 u = k(i, function (e) {
3488 return e.map(t.edge);
3489 });
3490 return k(i, function (e, t) {
3491 return e.filter(g(gu.hasColspan)).fold(
3492 function () {
3493 var e = Qo(u, t);
3494 return r(e);
3495 },
3496 function (e) {
3497 return n(e, o);
3498 },
3499 );
3500 });
3501 },
3502 wu = function (e) {
3503 return e
3504 .map(function (e) {
3505 return e + 'px';
3506 })
3507 .getOr('');
3508 },
3509 yu = function (e, t, n, r) {
3510 var o = ti(e),
3511 i = k(o, function (e) {
3512 return e.map(t.edge);
3513 });
3514 return k(o, function (e, t) {
3515 return e.filter(g(gu.hasRowspan)).fold(
3516 function () {
3517 var e = Qo(i, t);
3518 return r(e);
3519 },
3520 function (e) {
3521 return n(e);
3522 },
3523 );
3524 });
3525 },
3526 xu = {
3527 getRawWidths: function (e, t) {
3528 return bu(e, t, pu, wu);
3529 },
3530 getPixelWidths: function (e, t, n) {
3531 return bu(
3532 e,
3533 t,
3534 go.getPixelWidth,
3535 function (e) {
3536 return e.getOrThunk(n.minCellWidth);
3537 },
3538 n,
3539 );
3540 },
3541 getPercentageWidths: function (e, t, n) {
3542 return bu(
3543 e,
3544 t,
3545 go.getPercentageWidth,
3546 function (e) {
3547 return e.fold(
3548 function () {
3549 return n.minCellWidth();
3550 },
3551 function (e) {
3552 return (e / n.pixelWidth()) * 100;
3553 },
3554 );
3555 },
3556 n,
3557 );
3558 },
3559 getPixelHeights: function (e, t) {
3560 return yu(e, t, go.getHeight, function (e) {
3561 return e.getOrThunk(gu.minHeight);
3562 });
3563 },
3564 getRawHeights: function (e, t) {
3565 return yu(e, t, vu, wu);
3566 },
3567 },
3568 Cu = function (e, t, n) {
3569 for (var r = 0, o = e; o < t; o++) r += n[o] !== undefined ? n[o] : 0;
3570 return r;
3571 },
3572 Su = function (e, n) {
3573 var t = wn.justCells(e);
3574 return k(t, function (e) {
3575 var t = Cu(e.column(), e.column() + e.colspan(), n);
3576 return { element: e.element, width: C(t), colspan: e.colspan };
3577 });
3578 },
3579 Ru = function (e, n) {
3580 var t = wn.justCells(e);
3581 return k(t, function (e) {
3582 var t = Cu(e.row(), e.row() + e.rowspan(), n);
3583 return { element: e.element, height: C(t), rowspan: e.rowspan };
3584 });
3585 },
3586 Tu = function (e, n) {
3587 return k(e.all(), function (e, t) {
3588 return { element: e.element, height: C(n[t]) };
3589 });
3590 },
3591 Du = function (e) {
3592 var t = parseInt(e, 10),
3593 n = o;
3594 return {
3595 width: C(t),
3596 pixelWidth: C(t),
3597 getWidths: xu.getPixelWidths,
3598 getCellDelta: n,
3599 singleColumnWidth: function (e, t) {
3600 return [Math.max(gu.minWidth(), e + t) - e];
3601 },
3602 minCellWidth: gu.minWidth,
3603 setElementWidth: go.setPixelWidth,
3604 setTableWidth: function (e, t, n) {
3605 var r = W(
3606 t,
3607 function (e, t) {
3608 return e + t;
3609 },
3610 0,
3611 );
3612 go.setPixelWidth(e, r);
3613 },
3614 };
3615 },
3616 Ou = function (e, t) {
3617 if (go.percentageBasedSizeRegex().test(t)) {
3618 var n = go.percentageBasedSizeRegex().exec(t);
3619 return (
3620 (o = n[1]),
3621 (i = e),
3622 (u = parseFloat(o)),
3623 (a = Zr(i)),
3624 {
3625 width: C(u),
3626 pixelWidth: C(a),
3627 getWidths: xu.getPercentageWidths,
3628 getCellDelta: function (e) {
3629 return (e / a) * 100;
3630 },
3631 singleColumnWidth: function (e, t) {
3632 return [100 - e];
3633 },
3634 minCellWidth: function () {
3635 return (gu.minWidth() / a) * 100;
3636 },
3637 setElementWidth: go.setPercentageWidth,
3638 setTableWidth: function (e, t, n) {
3639 var r = u + n;
3640 go.setPercentageWidth(e, r);
3641 },
3642 }
3643 );
3644 }
3645 if (go.pixelBasedSizeRegex().test(t)) {
3646 var r = go.pixelBasedSizeRegex().exec(t);
3647 return Du(r[1]);
3648 }
3649 var o,
3650 i,
3651 u,
3652 a,
3653 c = Zr(e);
3654 return Du(c);
3655 },
3656 Nu = function (t) {
3657 return go.getRawWidth(t).fold(
3658 function () {
3659 var e = Zr(t);
3660 return Du(e);
3661 },
3662 function (e) {
3663 return Ou(t, e);
3664 },
3665 );
3666 },
3667 Eu = function (e) {
3668 return wn.generate(e);
3669 },
3670 Au = function (e) {
3671 var t = hn(e);
3672 return Eu(t);
3673 },
3674 ku = function (e, t, n, r) {
3675 var o = Nu(e),
3676 i = o.getCellDelta(t),
3677 u = Au(e),
3678 a = o.getWidths(u, r, o),
3679 c = du(a, n, i, o),
3680 l = k(c, function (e, t) {
3681 return e + a[t];
3682 }),
3683 f = Su(u, l);
3684 P(f, function (e) {
3685 o.setElementWidth(e.element(), e.width());
3686 }),
3687 n === u.grid().columns() - 1 && o.setTableWidth(e, l, i);
3688 },
3689 Pu = function (e, n, r, t) {
3690 var o = Au(e),
3691 i = xu.getPixelHeights(o, t),
3692 u = k(i, function (e, t) {
3693 return r === t ? Math.max(n + e, gu.minHeight()) : e;
3694 }),
3695 a = Ru(o, u),
3696 c = Tu(o, u);
3697 P(c, function (e) {
3698 go.setHeight(e.element(), e.height());
3699 }),
3700 P(a, function (e) {
3701 go.setHeight(e.element(), e.height());
3702 });
3703 var l = W(
3704 u,
3705 function (e, t) {
3706 return e + t;
3707 },
3708 0,
3709 );
3710 go.setHeight(e, l);
3711 },
3712 Iu = function (e, t, n) {
3713 var r = Nu(e),
3714 o = Eu(t),
3715 i = r.getWidths(o, n, r),
3716 u = Su(o, i);
3717 P(u, function (e) {
3718 r.setElementWidth(e.element(), e.width());
3719 });
3720 var a = W(
3721 i,
3722 function (e, t) {
3723 return t + e;
3724 },
3725 0,
3726 );
3727 0 < u.length && r.setTableWidth(e, a);
3728 },
3729 Bu = function (e) {
3730 var t = e,
3731 n = function () {
3732 return t;
3733 };
3734 return {
3735 get: n,
3736 set: function (e) {
3737 t = e;
3738 },
3739 clone: function () {
3740 return Bu(n());
3741 },
3742 };
3743 },
3744 Wu = function (r, o, i) {
3745 if (0 === o.length) throw new Error('You must specify at least one required field.');
3746 return (
3747 te('required', o),
3748 ne(o),
3749 function (t) {
3750 var n = Y(t);
3751 U(o, function (e) {
3752 return E(n, e);
3753 }) || Z(o, n),
3754 r(o, n);
3755 var e = I(o, function (e) {
3756 return !i.validate(t[e], e);
3757 });
3758 return (
3759 0 < e.length &&
3760 (function (e, t) {
3761 throw new Error(
3762 'All values need to be of type: ' +
3763 t +
3764 '. Keys (' +
3765 Q(e).join(', ') +
3766 ') were not.',
3767 );
3768 })(e, i.label),
3769 t
3770 );
3771 }
3772 );
3773 },
3774 Mu = function (t, e) {
3775 var n = I(e, function (e) {
3776 return !E(t, e);
3777 });
3778 0 < n.length && ee(n);
3779 },
3780 _u = function (e) {
3781 return Wu(Mu, e, { validate: D, label: 'function' });
3782 },
3783 Lu = function (e) {
3784 var t = we(e, 'colspan') ? parseInt(be(e, 'colspan'), 10) : 1,
3785 n = we(e, 'rowspan') ? parseInt(be(e, 'rowspan'), 10) : 1;
3786 return { element: C(e), colspan: C(t), rowspan: C(n) };
3787 },
3788 ju = _u(['cell', 'row', 'replace', 'gap']),
3789 Fu = function (r, e) {
3790 ju(r);
3791 var n = Bu(S.none()),
3792 o = e !== undefined ? e : Lu,
3793 i = function (e) {
3794 var t,
3795 n = o(e);
3796 return (t = n), r.cell(t);
3797 },
3798 u = function (e) {
3799 var t = i(e);
3800 return n.get().isNone() && n.set(S.some(t)), (a = S.some({ item: e, replacement: t })), t;
3801 },
3802 a = S.none();
3803 return {
3804 getOrInit: function (t, n) {
3805 return a.fold(
3806 function () {
3807 return u(t);
3808 },
3809 function (e) {
3810 return n(t, e.item) ? e.replacement : u(t);
3811 },
3812 );
3813 },
3814 cursor: n.get,
3815 };
3816 },
3817 zu = function (o, a) {
3818 return function (n) {
3819 var r = Bu(S.none());
3820 ju(n);
3821 var i = [],
3822 u = function (e) {
3823 var t = n.replace(e, a, { scope: o });
3824 return i.push({ item: e, sub: t }), r.get().isNone() && r.set(S.some(t)), t;
3825 };
3826 return {
3827 replaceOrInit: function (t, n) {
3828 return ((r = t),
3829 (o = n),
3830 _(i, function (e) {
3831 return o(e.item, r);
3832 })).fold(
3833 function () {
3834 return u(t);
3835 },
3836 function (e) {
3837 return n(t, e.item) ? e.sub : u(t);
3838 },
3839 );
3840 var r, o;
3841 },
3842 cursor: r.get,
3843 };
3844 };
3845 },
3846 Hu = function (n) {
3847 ju(n);
3848 var e = Bu(S.none());
3849 return {
3850 combine: function (t) {
3851 return (
3852 e.get().isNone() && e.set(S.some(t)),
3853 function () {
3854 var e = n.cell({ element: C(t), colspan: C(1), rowspan: C(1) });
3855 return Me(e, 'width'), Me(t, 'width'), e;
3856 }
3857 );
3858 },
3859 cursor: e.get,
3860 };
3861 },
3862 Uu = [
3863 'body',
3864 'p',
3865 'div',
3866 'article',
3867 'aside',
3868 'figcaption',
3869 'figure',
3870 'footer',
3871 'header',
3872 'nav',
3873 'section',
3874 'ol',
3875 'ul',
3876 'table',
3877 'thead',
3878 'tfoot',
3879 'tbody',
3880 'caption',
3881 'tr',
3882 'td',
3883 'th',
3884 'h1',
3885 'h2',
3886 'h3',
3887 'h4',
3888 'h5',
3889 'h6',
3890 'blockquote',
3891 'pre',
3892 'address',
3893 ],
3894 qu = function (e, t) {
3895 var n = e.property().name(t);
3896 return E(Uu, n);
3897 },
3898 Vu = function (e, t) {
3899 return E(['br', 'img', 'hr', 'input'], e.property().name(t));
3900 },
3901 Gu = qu,
3902 Yu = function (e, t) {
3903 var n = e.property().name(t);
3904 return E(['ol', 'ul'], n);
3905 },
3906 Xu = Vu,
3907 Ku = Un(),
3908 Ju = function (e) {
3909 return Gu(Ku, e);
3910 },
3911 $u = function (e) {
3912 return Yu(Ku, e);
3913 },
3914 Qu = function (e) {
3915 return Xu(Ku, e);
3916 },
3917 Zu = function (e) {
3918 var t,
3919 i = function (e) {
3920 return 'br' === ce(e);
3921 },
3922 n = function (o) {
3923 return An(o)
3924 .bind(function (n) {
3925 var r = Tt(n)
3926 .map(function (e) {
3927 return !!Ju(e) || (Qu(e) ? 'img' !== ce(e) : void 0);
3928 })
3929 .getOr(!1);
3930 return Ct(n).map(function (e) {
3931 return !0 === r ||
3932 'li' === ce((t = e)) ||
3933 tn(t, $u).isSome() ||
3934 i(n) ||
3935 (Ju(e) && !bt(o, e))
3936 ? []
3937 : [De.fromTag('br')];
3938 var t;
3939 });
3940 })
3941 .getOr([]);
3942 },
3943 r =
3944 0 ===
3945 (t = H(e, function (e) {
3946 var t = Dt(e);
3947 return U(t, function (e) {
3948 return i(e) || (me(e) && 0 === Sn(e).trim().length);
3949 })
3950 ? []
3951 : t.concat(n(e));
3952 })).length
3953 ? [De.fromTag('br')]
3954 : t;
3955 Wt(e[0]), Bt(e[0], r);
3956 },
3957 ea = function (e) {
3958 0 === gn.cells(e).length && Mt(e);
3959 },
3960 ta = $('grid', 'cursor'),
3961 na = function (e, t, n) {
3962 return ra(e, t, n).orThunk(function () {
3963 return ra(e, 0, 0);
3964 });
3965 },
3966 ra = function (e, t, n) {
3967 return S.from(e[t]).bind(function (e) {
3968 return S.from(e.cells()[n]).bind(function (e) {
3969 return S.from(e.element());
3970 });
3971 });
3972 },
3973 oa = function (e, t, n) {
3974 return ta(e, ra(e, t, n));
3975 },
3976 ia = function (e) {
3977 return M(
3978 e,
3979 function (e, t) {
3980 return A(e, function (e) {
3981 return e.row() === t.row();
3982 })
3983 ? e
3984 : e.concat([t]);
3985 },
3986 [],
3987 ).sort(function (e, t) {
3988 return e.row() - t.row();
3989 });
3990 },
3991 ua = function (e) {
3992 return M(
3993 e,
3994 function (e, t) {
3995 return A(e, function (e) {
3996 return e.column() === t.column();
3997 })
3998 ? e
3999 : e.concat([t]);
4000 },
4001 [],
4002 ).sort(function (e, t) {
4003 return e.column() - t.column();
4004 });
4005 },
4006 aa = function (e, t, n) {
4007 var r = pn(e, n),
4008 o = wn.generate(r);
4009 return yi(o, t, !0);
4010 },
4011 ca = function (a) {
4012 return function (e, t, n, r, o, i, u) {
4013 return Ri(
4014 function (e, t, n, r) {
4015 return a(e, t, i, u);
4016 },
4017 Di,
4018 y,
4019 y,
4020 Fu,
4021 )(e, t, n, r, o);
4022 };
4023 },
4024 la = Iu,
4025 fa = {
4026 insertRowBefore: Ri(
4027 function (e, t, n, r) {
4028 var o = t.row(),
4029 i = t.row(),
4030 u = Gi(e, i, o, n, r.getOrInit);
4031 return oa(u, i, t.column());
4032 },
4033 Di,
4034 y,
4035 y,
4036 Fu,
4037 ),
4038 insertRowsBefore: Ri(
4039 function (e, t, n, r) {
4040 var o = t[0].row(),
4041 i = t[0].row(),
4042 u = ia(t),
4043 a = M(
4044 u,
4045 function (e, t) {
4046 return Gi(e, i, o, n, r.getOrInit);
4047 },
4048 e,
4049 );
4050 return oa(a, i, t[0].column());
4051 },
4052 Oi,
4053 y,
4054 y,
4055 Fu,
4056 ),
4057 insertRowAfter: Ri(
4058 function (e, t, n, r) {
4059 var o = t.row(),
4060 i = t.row() + t.rowspan(),
4061 u = Gi(e, i, o, n, r.getOrInit);
4062 return oa(u, i, t.column());
4063 },
4064 Di,
4065 y,
4066 y,
4067 Fu,
4068 ),
4069 insertRowsAfter: Ri(
4070 function (e, t, n, r) {
4071 var o = ia(t),
4072 i = o[o.length - 1].row(),
4073 u = o[o.length - 1].row() + o[o.length - 1].rowspan(),
4074 a = M(
4075 o,
4076 function (e, t) {
4077 return Gi(e, u, i, n, r.getOrInit);
4078 },
4079 e,
4080 );
4081 return oa(a, u, t[0].column());
4082 },
4083 Oi,
4084 y,
4085 y,
4086 Fu,
4087 ),
4088 insertColumnBefore: Ri(
4089 function (e, t, n, r) {
4090 var o = t.column(),
4091 i = t.column(),
4092 u = Yi(e, i, o, n, r.getOrInit);
4093 return oa(u, t.row(), i);
4094 },
4095 Di,
4096 la,
4097 y,
4098 Fu,
4099 ),
4100 insertColumnsBefore: Ri(
4101 function (e, t, n, r) {
4102 var o = ua(t),
4103 i = o[0].column(),
4104 u = o[0].column(),
4105 a = M(
4106 o,
4107 function (e, t) {
4108 return Yi(e, u, i, n, r.getOrInit);
4109 },
4110 e,
4111 );
4112 return oa(a, t[0].row(), u);
4113 },
4114 Oi,
4115 la,
4116 y,
4117 Fu,
4118 ),
4119 insertColumnAfter: Ri(
4120 function (e, t, n, r) {
4121 var o = t.column(),
4122 i = t.column() + t.colspan(),
4123 u = Yi(e, i, o, n, r.getOrInit);
4124 return oa(u, t.row(), i);
4125 },
4126 Di,
4127 la,
4128 y,
4129 Fu,
4130 ),
4131 insertColumnsAfter: Ri(
4132 function (e, t, n, r) {
4133 var o = t[t.length - 1].column(),
4134 i = t[t.length - 1].column() + t[t.length - 1].colspan(),
4135 u = ua(t),
4136 a = M(
4137 u,
4138 function (e, t) {
4139 return Yi(e, i, o, n, r.getOrInit);
4140 },
4141 e,
4142 );
4143 return oa(a, t[0].row(), i);
4144 },
4145 Oi,
4146 la,
4147 y,
4148 Fu,
4149 ),
4150 splitCellIntoColumns: Ri(
4151 function (e, t, n, r) {
4152 var o = Xi(e, t.row(), t.column(), n, r.getOrInit);
4153 return oa(o, t.row(), t.column());
4154 },
4155 Di,
4156 la,
4157 y,
4158 Fu,
4159 ),
4160 splitCellIntoRows: Ri(
4161 function (e, t, n, r) {
4162 var o = Ki(e, t.row(), t.column(), n, r.getOrInit);
4163 return oa(o, t.row(), t.column());
4164 },
4165 Di,
4166 y,
4167 y,
4168 Fu,
4169 ),
4170 eraseColumns: Ri(
4171 function (e, t, n, r) {
4172 var o = ua(t),
4173 i = $i(e, o[0].column(), o[o.length - 1].column()),
4174 u = na(i, t[0].row(), t[0].column());
4175 return ta(i, u);
4176 },
4177 Oi,
4178 la,
4179 ea,
4180 Fu,
4181 ),
4182 eraseRows: Ri(
4183 function (e, t, n, r) {
4184 var o = ia(t),
4185 i = Ji(e, o[0].row(), o[o.length - 1].row()),
4186 u = na(i, t[0].row(), t[0].column());
4187 return ta(i, u);
4188 },
4189 Oi,
4190 y,
4191 ea,
4192 Fu,
4193 ),
4194 makeColumnHeader: Ri(
4195 function (e, t, n, r) {
4196 var o = nu(e, t.column(), n, r.replaceOrInit);
4197 return oa(o, t.row(), t.column());
4198 },
4199 Di,
4200 y,
4201 y,
4202 zu('row', 'th'),
4203 ),
4204 unmakeColumnHeader: Ri(
4205 function (e, t, n, r) {
4206 var o = nu(e, t.column(), n, r.replaceOrInit);
4207 return oa(o, t.row(), t.column());
4208 },
4209 Di,
4210 y,
4211 y,
4212 zu(null, 'td'),
4213 ),
4214 makeRowHeader: Ri(
4215 function (e, t, n, r) {
4216 var o = ru(e, t.row(), n, r.replaceOrInit);
4217 return oa(o, t.row(), t.column());
4218 },
4219 Di,
4220 y,
4221 y,
4222 zu('col', 'th'),
4223 ),
4224 unmakeRowHeader: Ri(
4225 function (e, t, n, r) {
4226 var o = ru(e, t.row(), n, r.replaceOrInit);
4227 return oa(o, t.row(), t.column());
4228 },
4229 Di,
4230 y,
4231 y,
4232 zu(null, 'td'),
4233 ),
4234 mergeCells: Ri(
4235 function (e, t, n, r) {
4236 var o = t.cells();
4237 Zu(o);
4238 var i = zi(e, t.bounds(), n, C(o[0]));
4239 return ta(i, S.from(o[0]));
4240 },
4241 Ai,
4242 y,
4243 y,
4244 Hu,
4245 ),
4246 unmergeCells: Ri(
4247 function (e, t, n, r) {
4248 var o = W(
4249 t,
4250 function (e, t) {
4251 return Hi(e, t, n, r.combine(t));
4252 },
4253 e,
4254 );
4255 return ta(o, S.from(t[0]));
4256 },
4257 ki,
4258 la,
4259 y,
4260 Hu,
4261 ),
4262 pasteCells: Ri(
4263 function (e, n, t, r) {
4264 var o,
4265 i,
4266 u,
4267 a,
4268 c =
4269 ((o = n.clipboard()),
4270 (i = n.generators()),
4271 (u = hn(o)),
4272 (a = wn.generate(u)),
4273 yi(a, i, !0)),
4274 l = qt.address(n.row(), n.column());
4275 return qi(l, e, c, n.generators(), t).fold(
4276 function () {
4277 return ta(e, S.some(n.element()));
4278 },
4279 function (e) {
4280 var t = na(e, n.row(), n.column());
4281 return ta(e, t);
4282 },
4283 );
4284 },
4285 Ni,
4286 la,
4287 y,
4288 Fu,
4289 ),
4290 pasteRowsBefore: Ri(
4291 function (e, t, n, r) {
4292 var o = e[t.cells[0].row()],
4293 i = t.cells[0].row(),
4294 u = aa(t.clipboard(), t.generators(), o),
4295 a = Vi(i, e, u, t.generators(), n),
4296 c = na(a, t.cells[0].row(), t.cells[0].column());
4297 return ta(a, c);
4298 },
4299 Ei,
4300 y,
4301 y,
4302 Fu,
4303 ),
4304 pasteRowsAfter: Ri(
4305 function (e, t, n, r) {
4306 var o = e[t.cells[0].row()],
4307 i = t.cells[t.cells.length - 1].row() + t.cells[t.cells.length - 1].rowspan(),
4308 u = aa(t.clipboard(), t.generators(), o),
4309 a = Vi(i, e, u, t.generators(), n),
4310 c = na(a, t.cells[0].row(), t.cells[0].column());
4311 return ta(a, c);
4312 },
4313 Ei,
4314 y,
4315 y,
4316 Fu,
4317 ),
4318 sortRows: ca(function (e, t, n, r) {
4319 var o = ou(e, t.column(), n, r);
4320 return oa(o, t.row(), t.column());
4321 }),
4322 sortColumns: ca(function (e, t, n, r) {
4323 var o = iu(e, t.row(), n, r);
4324 return oa(o, t.row(), t.column());
4325 }),
4326 },
4327 sa = function (e) {
4328 return De.fromDom(e.getBody());
4329 },
4330 da = function (e) {
4331 return e.getBoundingClientRect().width;
4332 },
4333 ma = function (e) {
4334 return e.getBoundingClientRect().height;
4335 },
4336 ga = function (t) {
4337 return function (e) {
4338 return bt(e, sa(t));
4339 };
4340 },
4341 ha = function (e) {
4342 return /^[0-9]+$/.test(e) && (e += 'px'), e;
4343 },
4344 pa = function (e) {
4345 var t = Xt(e, 'td[data-mce-style],th[data-mce-style]');
4346 ye(e, 'data-mce-style'),
4347 P(t, function (e) {
4348 ye(e, 'data-mce-style');
4349 });
4350 },
4351 va = { isRtl: C(!1) },
4352 ba = { isRtl: C(!0) },
4353 wa = {
4354 directionAt: function (e) {
4355 return 'rtl' == ('rtl' === Ie(e, 'direction') ? 'rtl' : 'ltr') ? ba : va;
4356 },
4357 },
4358 ya = [
4359 'tableprops',
4360 'tabledelete',
4361 '|',
4362 'tableinsertrowbefore',
4363 'tableinsertrowafter',
4364 'tabledeleterow',
4365 '|',
4366 'tableinsertcolbefore',
4367 'tableinsertcolafter',
4368 'tabledeletecol',
4369 ],
4370 xa = { 'border-collapse': 'collapse', width: '100%' },
4371 Ca = { border: '1' },
4372 Sa = function (e) {
4373 return e.getParam('table_cell_advtab', !0, 'boolean');
4374 },
4375 Ra = function (e) {
4376 return e.getParam('table_row_advtab', !0, 'boolean');
4377 },
4378 Ta = function (e) {
4379 return e.getParam('table_advtab', !0, 'boolean');
4380 },
4381 Da = function (e) {
4382 return e.getParam('table_style_by_css', !1, 'boolean');
4383 },
4384 Oa = function (e) {
4385 return e.getParam('table_cell_class_list', [], 'array');
4386 },
4387 Na = function (e) {
4388 return e.getParam('table_row_class_list', [], 'array');
4389 },
4390 Ea = function (e) {
4391 return e.getParam('table_class_list', [], 'array');
4392 },
4393 Aa = function (e) {
4394 return !1 === e.getParam('table_responsive_width');
4395 },
4396 ka = function (e, t) {
4397 return e.fire('newrow', { node: t });
4398 },
4399 Pa = function (e, t) {
4400 return e.fire('newcell', { node: t });
4401 },
4402 Ia = function (e, t, n, r) {
4403 e.fire('ObjectResizeStart', { target: t, width: n, height: r });
4404 },
4405 Ba = function (e, t, n, r) {
4406 e.fire('ObjectResized', { target: t, width: n, height: r });
4407 },
4408 Wa = function (f, e) {
4409 var t,
4410 n = function (e) {
4411 return 'table' === ce(sa(e));
4412 },
4413 s =
4414 ((t = f.getParam('table_clone_elements')),
4415 w(t) ? S.some(t.split(/[ ,]/)) : Array.isArray(t) ? S.some(t) : S.none()),
4416 r = function (u, a, c, l) {
4417 return function (e, t) {
4418 pa(e);
4419 var n = l(),
4420 r = De.fromDom(f.getDoc()),
4421 o = Io(wa.directionAt),
4422 i = Fn(c, r, s);
4423 return a(e)
4424 ? u(n, e, t, i, o).bind(function (e) {
4425 return (
4426 P(e.newRows(), function (e) {
4427 ka(f, e.dom());
4428 }),
4429 P(e.newCells(), function (e) {
4430 Pa(f, e.dom());
4431 }),
4432 e.cursor().map(function (e) {
4433 var t = f.dom.createRng();
4434 return t.setStart(e.dom(), 0), t.setEnd(e.dom(), 0), t;
4435 })
4436 );
4437 })
4438 : S.none();
4439 };
4440 };
4441 return {
4442 deleteRow: r(
4443 fa.eraseRows,
4444 function (e) {
4445 var t = Wo(e);
4446 return !1 === n(f) || 1 < t.rows();
4447 },
4448 y,
4449 e,
4450 ),
4451 deleteColumn: r(
4452 fa.eraseColumns,
4453 function (e) {
4454 var t = Wo(e);
4455 return !1 === n(f) || 1 < t.columns();
4456 },
4457 y,
4458 e,
4459 ),
4460 insertRowsBefore: r(fa.insertRowsBefore, l, y, e),
4461 insertRowsAfter: r(fa.insertRowsAfter, l, y, e),
4462 insertColumnsBefore: r(fa.insertColumnsBefore, l, ho, e),
4463 insertColumnsAfter: r(fa.insertColumnsAfter, l, ho, e),
4464 mergeCells: r(fa.mergeCells, l, y, e),
4465 unmergeCells: r(fa.unmergeCells, l, y, e),
4466 pasteRowsBefore: r(fa.pasteRowsBefore, l, y, e),
4467 pasteRowsAfter: r(fa.pasteRowsAfter, l, y, e),
4468 pasteCells: r(fa.pasteCells, l, y, e),
4469 };
4470 },
4471 Ma = function (e, t, r) {
4472 var n = hn(e),
4473 o = wn.generate(n);
4474 return Oi(o, t).map(function (e) {
4475 var t = yi(o, r, !1).slice(e[0].row(), e[e.length - 1].row() + e[e.length - 1].rowspan()),
4476 n = Ti(t, r);
4477 return Ho(n);
4478 });
4479 },
4480 _a = tinymce.util.Tools.resolve('tinymce.util.Tools'),
4481 La = function (e, t, n) {
4482 n && e.formatter.apply('align' + n, {}, t);
4483 },
4484 ja = function (e, t, n) {
4485 n && e.formatter.apply('valign' + n, {}, t);
4486 },
4487 Fa = function (t, n) {
4488 _a.each('left center right'.split(' '), function (e) {
4489 t.formatter.remove('align' + e, {}, n);
4490 });
4491 },
4492 za = function (t, n) {
4493 _a.each('top middle bottom'.split(' '), function (e) {
4494 t.formatter.remove('valign' + e, {}, n);
4495 });
4496 },
4497 Ha = function (o, e, i) {
4498 var t;
4499 return (t = (function (e, t) {
4500 for (var n = 0; n < t.length; n++) {
4501 var r = o.getStyle(t[n], i);
4502 if ((void 0 === e && (e = r), e !== r)) return '';
4503 }
4504 return e;
4505 })(t, o.select('td,th', e)));
4506 },
4507 Ua = function (e, t) {
4508 var n = e.dom,
4509 r = t.control.rootControl,
4510 o = r.toJSON(),
4511 i = n.parseStyle(o.style);
4512 (i['border-style'] = o.borderStyle),
4513 (i['border-color'] = o.borderColor),
4514 (i['background-color'] = o.backgroundColor),
4515 (i.width = o.width ? ha(o.width) : ''),
4516 (i.height = o.height ? ha(o.height) : ''),
4517 r.find('#style').value(n.serializeStyle(n.parseStyle(n.serializeStyle(i))));
4518 },
4519 qa = function (e, t) {
4520 var n = e.dom,
4521 r = t.control.rootControl,
4522 o = r.toJSON(),
4523 i = n.parseStyle(o.style);
4524 r.find('#borderStyle').value(i['border-style'] || ''),
4525 r.find('#borderColor').value(i['border-color'] || ''),
4526 r.find('#backgroundColor').value(i['background-color'] || ''),
4527 r.find('#width').value(i.width || ''),
4528 r.find('#height').value(i.height || '');
4529 },
4530 Va = {
4531 createStyleForm: function (n) {
4532 var e = function () {
4533 var e = n.getParam('color_picker_callback');
4534 if (e)
4535 return function (t) {
4536 return e.call(
4537 n,
4538 function (e) {
4539 t.control.value(e).fire('change');
4540 },
4541 t.control.value(),
4542 );
4543 };
4544 };
4545 return {
4546 title: 'Advanced',
4547 type: 'form',
4548 defaults: { onchange: b(Ua, n) },
4549 items: [
4550 { label: 'Style', name: 'style', type: 'textbox', onchange: b(qa, n) },
4551 {
4552 type: 'form',
4553 padding: 0,
4554 formItemDefaults: { layout: 'grid', alignH: ['start', 'right'] },
4555 defaults: { size: 7 },
4556 items: [
4557 {
4558 label: 'Border style',
4559 type: 'listbox',
4560 name: 'borderStyle',
4561 width: 90,
4562 onselect: b(Ua, n),
4563 values: [
4564 { text: 'Select...', value: '' },
4565 { text: 'Solid', value: 'solid' },
4566 { text: 'Dotted', value: 'dotted' },
4567 { text: 'Dashed', value: 'dashed' },
4568 { text: 'Double', value: 'double' },
4569 { text: 'Groove', value: 'groove' },
4570 { text: 'Ridge', value: 'ridge' },
4571 { text: 'Inset', value: 'inset' },
4572 { text: 'Outset', value: 'outset' },
4573 { text: 'None', value: 'none' },
4574 { text: 'Hidden', value: 'hidden' },
4575 ],
4576 },
4577 { label: 'Border color', type: 'colorbox', name: 'borderColor', onaction: e() },
4578 {
4579 label: 'Background color',
4580 type: 'colorbox',
4581 name: 'backgroundColor',
4582 onaction: e(),
4583 },
4584 ],
4585 },
4586 ],
4587 };
4588 },
4589 buildListItems: function (e, r, t) {
4590 var o = function (e, n) {
4591 return (
4592 (n = n || []),
4593 _a.each(e, function (e) {
4594 var t = { text: e.text || e.title };
4595 e.menu ? (t.menu = o(e.menu)) : ((t.value = e.value), r && r(t)), n.push(t);
4596 }),
4597 n
4598 );
4599 };
4600 return o(e, t || []);
4601 },
4602 updateStyleField: Ua,
4603 extractAdvancedStyles: function (e, t) {
4604 var n = e.parseStyle(e.getAttrib(t, 'style')),
4605 r = {};
4606 return (
4607 n['border-style'] && (r.borderStyle = n['border-style']),
4608 n['border-color'] && (r.borderColor = n['border-color']),
4609 n['background-color'] && (r.backgroundColor = n['background-color']),
4610 (r.style = e.serializeStyle(n)),
4611 r
4612 );
4613 },
4614 updateAdvancedFields: qa,
4615 syncAdvancedStyleFields: function (e, t) {
4616 t.control.rootControl.find('#style')[0].getEl().isEqualNode(m.document.activeElement)
4617 ? qa(e, t)
4618 : Ua(e, t);
4619 },
4620 },
4621 Ga = function (r, o, e) {
4622 var i,
4623 u = r.dom;
4624 function a(e, t, n) {
4625 (1 === o.length || n) && u.setAttrib(e, t, n);
4626 }
4627 function c(e, t, n) {
4628 (1 === o.length || n) && u.setStyle(e, t, n);
4629 }
4630 Sa(r) && Va.syncAdvancedStyleFields(r, e),
4631 (i = e.control.rootControl.toJSON()),
4632 r.undoManager.transact(function () {
4633 _a.each(o, function (e) {
4634 var t, n;
4635 a(e, 'scope', i.scope),
4636 1 === o.length
4637 ? a(e, 'style', i.style)
4638 : ((t = e), (n = i.style), delete t.dataset.mceStyle, (t.style.cssText += ';' + n)),
4639 a(e, 'class', i['class']),
4640 c(e, 'width', ha(i.width)),
4641 c(e, 'height', ha(i.height)),
4642 i.type && e.nodeName.toLowerCase() !== i.type && (e = u.rename(e, i.type)),
4643 1 === o.length && (Fa(r, e), za(r, e)),
4644 i.align && La(r, e, i.align),
4645 i.valign && ja(r, e, i.valign);
4646 }),
4647 r.focus();
4648 });
4649 },
4650 Ya = function (t) {
4651 var e,
4652 n,
4653 r,
4654 o = [];
4655 if (
4656 ((o = t.dom.select('td[data-mce-selected],th[data-mce-selected]')),
4657 (e = t.dom.getParent(t.selection.getStart(), 'td,th')),
4658 !o.length && e && o.push(e),
4659 (e = e || o[0]))
4660 ) {
4661 var i, u, a, c;
4662 1 < o.length
4663 ? (n = {
4664 width: '',
4665 height: '',
4666 scope: '',
4667 class: '',
4668 align: '',
4669 valign: '',
4670 style: '',
4671 type: e.nodeName.toLowerCase(),
4672 })
4673 : ((u = e),
4674 (a = (i = t).dom),
4675 (c = {
4676 width: a.getStyle(u, 'width') || a.getAttrib(u, 'width'),
4677 height: a.getStyle(u, 'height') || a.getAttrib(u, 'height'),
4678 scope: a.getAttrib(u, 'scope'),
4679 class: a.getAttrib(u, 'class'),
4680 type: u.nodeName.toLowerCase(),
4681 style: '',
4682 align: '',
4683 valign: '',
4684 }),
4685 _a.each('left center right'.split(' '), function (e) {
4686 i.formatter.matchNode(u, 'align' + e) && (c.align = e);
4687 }),
4688 _a.each('top middle bottom'.split(' '), function (e) {
4689 i.formatter.matchNode(u, 'valign' + e) && (c.valign = e);
4690 }),
4691 Sa(i) && _a.extend(c, Va.extractAdvancedStyles(a, u)),
4692 (n = c)),
4693 0 < Oa(t).length &&
4694 (r = {
4695 name: 'class',
4696 type: 'listbox',
4697 label: 'Class',
4698 values: Va.buildListItems(Oa(t), function (e) {
4699 e.value &&
4700 (e.textStyle = function () {
4701 return t.formatter.getCssText({ block: 'td', classes: [e.value] });
4702 });
4703 }),
4704 });
4705 var l = {
4706 type: 'form',
4707 layout: 'flex',
4708 direction: 'column',
4709 labelGapCalc: 'children',
4710 padding: 0,
4711 items: [
4712 {
4713 type: 'form',
4714 layout: 'grid',
4715 columns: 2,
4716 labelGapCalc: !1,
4717 padding: 0,
4718 defaults: { type: 'textbox', maxWidth: 50 },
4719 items: [
4720 { label: 'Width', name: 'width', onchange: b(Va.updateStyleField, t) },
4721 { label: 'Height', name: 'height', onchange: b(Va.updateStyleField, t) },
4722 {
4723 label: 'Cell type',
4724 name: 'type',
4725 type: 'listbox',
4726 text: 'None',
4727 minWidth: 90,
4728 maxWidth: null,
4729 values: [
4730 { text: 'Cell', value: 'td' },
4731 { text: 'Header cell', value: 'th' },
4732 ],
4733 },
4734 {
4735 label: 'Scope',
4736 name: 'scope',
4737 type: 'listbox',
4738 text: 'None',
4739 minWidth: 90,
4740 maxWidth: null,
4741 values: [
4742 { text: 'None', value: '' },
4743 { text: 'Row', value: 'row' },
4744 { text: 'Column', value: 'col' },
4745 { text: 'Row group', value: 'rowgroup' },
4746 { text: 'Column group', value: 'colgroup' },
4747 ],
4748 },
4749 {
4750 label: 'H Align',
4751 name: 'align',
4752 type: 'listbox',
4753 text: 'None',
4754 minWidth: 90,
4755 maxWidth: null,
4756 values: [
4757 { text: 'None', value: '' },
4758 { text: 'Left', value: 'left' },
4759 { text: 'Center', value: 'center' },
4760 { text: 'Right', value: 'right' },
4761 ],
4762 },
4763 {
4764 label: 'V Align',
4765 name: 'valign',
4766 type: 'listbox',
4767 text: 'None',
4768 minWidth: 90,
4769 maxWidth: null,
4770 values: [
4771 { text: 'None', value: '' },
4772 { text: 'Top', value: 'top' },
4773 { text: 'Middle', value: 'middle' },
4774 { text: 'Bottom', value: 'bottom' },
4775 ],
4776 },
4777 ],
4778 },
4779 r,
4780 ],
4781 };
4782 Sa(t)
4783 ? t.windowManager.open({
4784 title: 'Cell properties',
4785 bodyType: 'tabpanel',
4786 data: n,
4787 body: [{ title: 'General', type: 'form', items: l }, Va.createStyleForm(t)],
4788 onsubmit: b(Ga, t, o),
4789 })
4790 : t.windowManager.open({
4791 title: 'Cell properties',
4792 data: n,
4793 body: l,
4794 onsubmit: b(Ga, t, o),
4795 });
4796 }
4797 };
4798 function Xa(f, s, d, e) {
4799 var m = f.dom;
4800 function g(e, t, n) {
4801 (1 === s.length || n) && m.setAttrib(e, t, n);
4802 }
4803 Ra(f) && Va.syncAdvancedStyleFields(f, e);
4804 var h = e.control.rootControl.toJSON();
4805 f.undoManager.transact(function () {
4806 _a.each(s, function (e) {
4807 var t, n, r, o, i, u, a, c, l;
4808 g(e, 'scope', h.scope),
4809 g(e, 'style', h.style),
4810 g(e, 'class', h['class']),
4811 (t = e),
4812 (n = 'height'),
4813 (r = ha(h.height)),
4814 (1 === s.length || r) && m.setStyle(t, n, r),
4815 h.type !== e.parentNode.nodeName.toLowerCase() &&
4816 ((o = f.dom),
4817 (i = e),
4818 (u = h.type),
4819 (a = o.getParent(i, 'table')),
4820 (c = i.parentNode),
4821 (l = o.select(u, a)[0]) ||
4822 ((l = o.create(u)),
4823 a.firstChild
4824 ? 'CAPTION' === a.firstChild.nodeName
4825 ? o.insertAfter(l, a.firstChild)
4826 : a.insertBefore(l, a.firstChild)
4827 : a.appendChild(l)),
4828 l.appendChild(i),
4829 c.hasChildNodes() || o.remove(c)),
4830 h.align !== d.align && (Fa(f, e), La(f, e, h.align));
4831 }),
4832 f.focus();
4833 });
4834 }
4835 var Ka = function (t) {
4836 var e,
4837 n,
4838 r,
4839 o,
4840 i,
4841 u,
4842 a,
4843 c,
4844 l,
4845 f,
4846 s = t.dom,
4847 d = [];
4848 (e = s.getParent(t.selection.getStart(), 'table')),
4849 (n = s.getParent(t.selection.getStart(), 'td,th')),
4850 _a.each(e.rows, function (t) {
4851 _a.each(t.cells, function (e) {
4852 if (s.getAttrib(e, 'data-mce-selected') || e === n) return d.push(t), !1;
4853 });
4854 }),
4855 (r = d[0]) &&
4856 (1 < d.length
4857 ? (i = {
4858 height: '',
4859 scope: '',
4860 style: '',
4861 class: '',
4862 align: '',
4863 type: r.parentNode.nodeName.toLowerCase(),
4864 })
4865 : ((c = r),
4866 (l = (a = t).dom),
4867 (f = {
4868 height: l.getStyle(c, 'height') || l.getAttrib(c, 'height'),
4869 scope: l.getAttrib(c, 'scope'),
4870 class: l.getAttrib(c, 'class'),
4871 align: '',
4872 style: '',
4873 type: c.parentNode.nodeName.toLowerCase(),
4874 }),
4875 _a.each('left center right'.split(' '), function (e) {
4876 a.formatter.matchNode(c, 'align' + e) && (f.align = e);
4877 }),
4878 Ra(a) && _a.extend(f, Va.extractAdvancedStyles(l, c)),
4879 (i = f)),
4880 0 < Na(t).length &&
4881 (o = {
4882 name: 'class',
4883 type: 'listbox',
4884 label: 'Class',
4885 values: Va.buildListItems(Na(t), function (e) {
4886 e.value &&
4887 (e.textStyle = function () {
4888 return t.formatter.getCssText({ block: 'tr', classes: [e.value] });
4889 });
4890 }),
4891 }),
4892 (u = {
4893 type: 'form',
4894 columns: 2,
4895 padding: 0,
4896 defaults: { type: 'textbox' },
4897 items: [
4898 {
4899 type: 'listbox',
4900 name: 'type',
4901 label: 'Row type',
4902 text: 'Header',
4903 maxWidth: null,
4904 values: [
4905 { text: 'Header', value: 'thead' },
4906 { text: 'Body', value: 'tbody' },
4907 { text: 'Footer', value: 'tfoot' },
4908 ],
4909 },
4910 {
4911 type: 'listbox',
4912 name: 'align',
4913 label: 'Alignment',
4914 text: 'None',
4915 maxWidth: null,
4916 values: [
4917 { text: 'None', value: '' },
4918 { text: 'Left', value: 'left' },
4919 { text: 'Center', value: 'center' },
4920 { text: 'Right', value: 'right' },
4921 ],
4922 },
4923 { label: 'Height', name: 'height' },
4924 o,
4925 ],
4926 }),
4927 Ra(t)
4928 ? t.windowManager.open({
4929 title: 'Row properties',
4930 data: i,
4931 bodyType: 'tabpanel',
4932 body: [{ title: 'General', type: 'form', items: u }, Va.createStyleForm(t)],
4933 onsubmit: b(Xa, t, d, i),
4934 })
4935 : t.windowManager.open({
4936 title: 'Row properties',
4937 data: i,
4938 body: u,
4939 onsubmit: b(Xa, t, d, i),
4940 }));
4941 },
4942 Ja = tinymce.util.Tools.resolve('tinymce.Env'),
4943 $a = {
4944 styles: { 'border-collapse': 'collapse', width: '100%' },
4945 attributes: { border: '1' },
4946 percentages: !0,
4947 },
4948 Qa = function (e, t, n, r, o) {
4949 void 0 === o && (o = $a);
4950 var i = De.fromTag('table');
4951 Pe(i, o.styles), ve(i, o.attributes);
4952 var u = De.fromTag('tbody');
4953 kt(i, u);
4954 for (var a = [], c = 0; c < e; c++) {
4955 for (var l = De.fromTag('tr'), f = 0; f < t; f++) {
4956 var s = c < n || f < r ? De.fromTag('th') : De.fromTag('td');
4957 f < r && pe(s, 'scope', 'row'),
4958 c < n && pe(s, 'scope', 'col'),
4959 kt(s, De.fromTag('br')),
4960 o.percentages && ke(s, 'width', 100 / t + '%'),
4961 kt(l, s);
4962 }
4963 a.push(l);
4964 }
4965 return Bt(u, a), i;
4966 },
4967 Za = function (e, t) {
4968 e.selection.select(t.dom(), !0), e.selection.collapse(!0);
4969 },
4970 ec = function (r, e, t) {
4971 var n,
4972 o,
4973 i = r.getParam('table_default_styles', xa, 'object'),
4974 u = {
4975 styles: i,
4976 attributes: ((o = r), o.getParam('table_default_attributes', Ca, 'object')),
4977 percentages: ((n = i.width), w(n) && -1 !== n.indexOf('%') && !Aa(r)),
4978 },
4979 a = Qa(t, e, 0, 0, u);
4980 pe(a, 'data-mce-id', '__mce');
4981 var c,
4982 l,
4983 f,
4984 s =
4985 ((c = a),
4986 (l = De.fromTag('div')),
4987 (f = De.fromDom(c.dom().cloneNode(!0))),
4988 kt(l, f),
4989 l.dom().innerHTML);
4990 return (
4991 r.insertContent(s),
4992 on(sa(r), 'table[data-mce-id="__mce"]')
4993 .map(function (e) {
4994 var t, n;
4995 return (
4996 Aa(r) && ke(e, 'width', Ie(e, 'width')),
4997 ye(e, 'data-mce-id'),
4998 (t = r),
4999 P(Xt(e, 'tr'), function (e) {
5000 ka(t, e.dom()),
5001 P(Xt(e, 'th,td'), function (e) {
5002 Pa(t, e.dom());
5003 });
5004 }),
5005 (n = r),
5006 on(e, 'td,th').each(b(Za, n)),
5007 e.dom()
5008 );
5009 })
5010 .getOr(null)
5011 );
5012 };
5013 function tc(e, t, n, r) {
5014 if ('TD' === t.tagName || 'TH' === t.tagName) e.setStyle(t, n, r);
5015 else if (t.children) for (var o = 0; o < t.children.length; o++) tc(e, t.children[o], n, r);
5016 }
5017 var nc = function (e, t, n) {
5018 var r,
5019 o,
5020 i = e.dom;
5021 Ta(e) && Va.syncAdvancedStyleFields(e, n),
5022 !1 === (o = n.control.rootControl.toJSON())['class'] && delete o['class'],
5023 e.undoManager.transact(function () {
5024 t || (t = ec(e, o.cols || 1, o.rows || 1)),
5025 (function (e, t, n) {
5026 var r,
5027 o = e.dom,
5028 i = {},
5029 u = {};
5030 if (
5031 ((i['class'] = n['class']),
5032 (u.height = ha(n.height)),
5033 o.getAttrib(t, 'width') && !Da(e)
5034 ? (i.width = (r = n.width) ? r.replace(/px$/, '') : '')
5035 : (u.width = ha(n.width)),
5036 Da(e)
5037 ? ((u['border-width'] = ha(n.border)),
5038 (u['border-spacing'] = ha(n.cellspacing)),
5039 _a.extend(i, {
5040 'data-mce-border-color': n.borderColor,
5041 'data-mce-cell-padding': n.cellpadding,
5042 'data-mce-border': n.border,
5043 }))
5044 : _a.extend(i, {
5045 border: n.border,
5046 cellpadding: n.cellpadding,
5047 cellspacing: n.cellspacing,
5048 }),
5049 Da(e) && t.children)
5050 )
5051 for (var a = 0; a < t.children.length; a++)
5052 tc(o, t.children[a], {
5053 'border-width': ha(n.border),
5054 'border-color': n.borderColor,
5055 padding: ha(n.cellpadding),
5056 });
5057 n.style
5058 ? _a.extend(u, o.parseStyle(n.style))
5059 : (u = _a.extend({}, o.parseStyle(o.getAttrib(t, 'style')), u)),
5060 (i.style = o.serializeStyle(u)),
5061 o.setAttribs(t, i);
5062 })(e, t, o),
5063 (r = i.select('caption', t)[0]) && !o.caption && i.remove(r),
5064 !r &&
5065 o.caption &&
5066 (((r = i.create('caption')).innerHTML = Ja.ie ? '\xa0' : '<br data-mce-bogus="1"/>'),
5067 t.insertBefore(r, t.firstChild)),
5068 Fa(e, t),
5069 o.align && La(e, t, o.align),
5070 e.focus(),
5071 e.addVisual();
5072 });
5073 },
5074 rc = function (t, e) {
5075 var n,
5076 r,
5077 o,
5078 i,
5079 u,
5080 a,
5081 c,
5082 l,
5083 f,
5084 s,
5085 d = t.dom,
5086 m = {};
5087 !0 === e
5088 ? (n = d.getParent(t.selection.getStart(), 'table')) &&
5089 ((c = n),
5090 (l = (a = t).dom),
5091 (f = {
5092 width: l.getStyle(c, 'width') || l.getAttrib(c, 'width'),
5093 height: l.getStyle(c, 'height') || l.getAttrib(c, 'height'),
5094 cellspacing: l.getStyle(c, 'border-spacing') || l.getAttrib(c, 'cellspacing'),
5095 cellpadding:
5096 l.getAttrib(c, 'data-mce-cell-padding') ||
5097 l.getAttrib(c, 'cellpadding') ||
5098 Ha(a.dom, c, 'padding'),
5099 border:
5100 l.getAttrib(c, 'data-mce-border') ||
5101 l.getAttrib(c, 'border') ||
5102 Ha(a.dom, c, 'border'),
5103 borderColor: l.getAttrib(c, 'data-mce-border-color'),
5104 caption: !!l.select('caption', c)[0],
5105 class: l.getAttrib(c, 'class'),
5106 }),
5107 _a.each('left center right'.split(' '), function (e) {
5108 a.formatter.matchNode(c, 'align' + e) && (f.align = e);
5109 }),
5110 Ta(a) && _a.extend(f, Va.extractAdvancedStyles(l, c)),
5111 (m = f))
5112 : ((r = { label: 'Cols', name: 'cols' }), (o = { label: 'Rows', name: 'rows' })),
5113 0 < Ea(t).length &&
5114 (m['class'] && (m['class'] = m['class'].replace(/\s*mce\-item\-table\s*/g, '')),
5115 (i = {
5116 name: 'class',
5117 type: 'listbox',
5118 label: 'Class',
5119 values: Va.buildListItems(Ea(t), function (e) {
5120 e.value &&
5121 (e.textStyle = function () {
5122 return t.formatter.getCssText({ block: 'table', classes: [e.value] });
5123 });
5124 }),
5125 })),
5126 (u = {
5127 type: 'form',
5128 layout: 'flex',
5129 direction: 'column',
5130 labelGapCalc: 'children',
5131 padding: 0,
5132 items: [
5133 {
5134 type: 'form',
5135 labelGapCalc: !1,
5136 padding: 0,
5137 layout: 'grid',
5138 columns: 2,
5139 defaults: { type: 'textbox', maxWidth: 50 },
5140 items:
5141 ((s = t),
5142 s.getParam('table_appearance_options', !0, 'boolean')
5143 ? [
5144 r,
5145 o,
5146 { label: 'Width', name: 'width', onchange: b(Va.updateStyleField, t) },
5147 { label: 'Height', name: 'height', onchange: b(Va.updateStyleField, t) },
5148 { label: 'Cell spacing', name: 'cellspacing' },
5149 { label: 'Cell padding', name: 'cellpadding' },
5150 { label: 'Border', name: 'border' },
5151 { label: 'Caption', name: 'caption', type: 'checkbox' },
5152 ]
5153 : [
5154 r,
5155 o,
5156 { label: 'Width', name: 'width', onchange: b(Va.updateStyleField, t) },
5157 { label: 'Height', name: 'height', onchange: b(Va.updateStyleField, t) },
5158 ]),
5159 },
5160 {
5161 label: 'Alignment',
5162 name: 'align',
5163 type: 'listbox',
5164 text: 'None',
5165 values: [
5166 { text: 'None', value: '' },
5167 { text: 'Left', value: 'left' },
5168 { text: 'Center', value: 'center' },
5169 { text: 'Right', value: 'right' },
5170 ],
5171 },
5172 i,
5173 ],
5174 }),
5175 Ta(t)
5176 ? t.windowManager.open({
5177 title: 'Table properties',
5178 data: m,
5179 bodyType: 'tabpanel',
5180 body: [{ title: 'General', type: 'form', items: u }, Va.createStyleForm(t)],
5181 onsubmit: b(nc, t, n),
5182 })
5183 : t.windowManager.open({
5184 title: 'Table properties',
5185 data: m,
5186 body: u,
5187 onsubmit: b(nc, t, n),
5188 });
5189 },
5190 oc = _a.each,
5191 ic = function (a, t, c, l, n) {
5192 var r = ga(a),
5193 e = function (e) {
5194 return function () {
5195 return S.from(a.dom.getParent(a.selection.getStart(), e)).map(De.fromDom);
5196 };
5197 },
5198 o = e('caption'),
5199 f = e('th,td'),
5200 s = function (e) {
5201 return gn.table(e, r);
5202 },
5203 d = function (e) {
5204 return { width: da(e.dom()), height: da(e.dom()) };
5205 },
5206 i = function (n) {
5207 f().each(function (t) {
5208 s(t).each(function (i) {
5209 var e = Gr.forMenu(l, i, t),
5210 u = d(i);
5211 n(i, e).each(function (e) {
5212 var t, n, r, o;
5213 (t = a),
5214 (n = u),
5215 (o = d((r = i))),
5216 (n.width === o.width && n.height === o.height) ||
5217 (Ia(t, r.dom(), n.width, n.height), Ba(t, r.dom(), o.width, o.height)),
5218 a.selection.setRng(e),
5219 a.focus(),
5220 c.clear(i),
5221 pa(i);
5222 });
5223 });
5224 });
5225 },
5226 u = function (e) {
5227 return f().bind(function (o) {
5228 return s(o).bind(function (e) {
5229 var t = De.fromDom(a.getDoc()),
5230 n = Gr.forMenu(l, e, o),
5231 r = Fn(y, t, S.none());
5232 return Ma(e, n, r);
5233 });
5234 });
5235 },
5236 m = function (u) {
5237 n.get().each(function (e) {
5238 var i = k(e, function (e) {
5239 return Bn(e);
5240 });
5241 f().each(function (o) {
5242 s(o).each(function (t) {
5243 var e = De.fromDom(a.getDoc()),
5244 n = zn(e),
5245 r = Gr.pasteRows(l, t, o, i, n);
5246 u(t, r).each(function (e) {
5247 a.selection.setRng(e), a.focus(), c.clear(t);
5248 });
5249 });
5250 });
5251 });
5252 };
5253 oc(
5254 {
5255 mceTableSplitCells: function () {
5256 i(t.unmergeCells);
5257 },
5258 mceTableMergeCells: function () {
5259 i(t.mergeCells);
5260 },
5261 mceTableInsertRowBefore: function () {
5262 i(t.insertRowsBefore);
5263 },
5264 mceTableInsertRowAfter: function () {
5265 i(t.insertRowsAfter);
5266 },
5267 mceTableInsertColBefore: function () {
5268 i(t.insertColumnsBefore);
5269 },
5270 mceTableInsertColAfter: function () {
5271 i(t.insertColumnsAfter);
5272 },
5273 mceTableDeleteCol: function () {
5274 i(t.deleteColumn);
5275 },
5276 mceTableDeleteRow: function () {
5277 i(t.deleteRow);
5278 },
5279 mceTableCutRow: function (e) {
5280 n.set(u()), i(t.deleteRow);
5281 },
5282 mceTableCopyRow: function (e) {
5283 n.set(u());
5284 },
5285 mceTablePasteRowBefore: function (e) {
5286 m(t.pasteRowsBefore);
5287 },
5288 mceTablePasteRowAfter: function (e) {
5289 m(t.pasteRowsAfter);
5290 },
5291 mceTableDelete: function () {
5292 f()
5293 .orThunk(o)
5294 .each(function (e) {
5295 gn.table(e, r)
5296 .filter(g(r))
5297 .each(function (e) {
5298 var t = De.fromText('');
5299 Et(e, t), Mt(e);
5300 var n = a.dom.createRng();
5301 n.setStart(t.dom(), 0), n.setEnd(t.dom(), 0), a.selection.setRng(n);
5302 });
5303 });
5304 },
5305 },
5306 function (e, t) {
5307 a.addCommand(t, e);
5308 },
5309 ),
5310 oc(
5311 {
5312 mceInsertTable: b(rc, a),
5313 mceTableProps: b(rc, a, !0),
5314 mceTableRowProps: b(Ka, a),
5315 mceTableCellProps: b(Ya, a),
5316 },
5317 function (n, e) {
5318 a.addCommand(e, function (e, t) {
5319 n(t);
5320 });
5321 },
5322 );
5323 },
5324 uc = function (e) {
5325 var t = S.from(e.dom().documentElement).map(De.fromDom).getOr(e);
5326 return { parent: C(t), view: C(e), origin: C(vo(0, 0)) };
5327 },
5328 ac = function (e, t) {
5329 return { parent: C(t), view: C(e), origin: C(vo(0, 0)) };
5330 };
5331 function cc(e) {
5332 var n = $.apply(null, e),
5333 r = [];
5334 return {
5335 bind: function (e) {
5336 if (e === undefined) throw 'Event bind error: undefined handler';
5337 r.push(e);
5338 },
5339 unbind: function (t) {
5340 r = I(r, function (e) {
5341 return e !== t;
5342 });
5343 },
5344 trigger: function () {
5345 var t = n.apply(null, arguments);
5346 P(r, function (e) {
5347 e(t);
5348 });
5349 },
5350 };
5351 }
5352 var lc = {
5353 create: function (e) {
5354 return {
5355 registry: K(e, function (e) {
5356 return { bind: e.bind, unbind: e.unbind };
5357 }),
5358 trigger: K(e, function (e) {
5359 return e.trigger;
5360 }),
5361 };
5362 },
5363 },
5364 fc = {
5365 mode: _u(['compare', 'extract', 'mutate', 'sink']),
5366 sink: _u(['element', 'start', 'stop', 'destroy']),
5367 api: _u(['forceDrop', 'drop', 'move', 'delayDrop']),
5368 },
5369 sc = { resolve: ni('ephox-dragster').resolve },
5370 dc = function (m, g) {
5371 return function (e) {
5372 if (m(e)) {
5373 var t,
5374 n,
5375 r,
5376 o,
5377 i,
5378 u,
5379 a,
5380 c = De.fromDom(e.target),
5381 l = function () {
5382 e.stopPropagation();
5383 },
5384 f = function () {
5385 e.preventDefault();
5386 },
5387 s = x(f, l),
5388 d =
5389 ((t = c),
5390 (n = e.clientX),
5391 (r = e.clientY),
5392 (o = l),
5393 (i = f),
5394 (u = s),
5395 (a = e),
5396 { target: C(t), x: C(n), y: C(r), stop: o, prevent: i, kill: u, raw: C(a) });
5397 g(d);
5398 }
5399 };
5400 },
5401 mc = function (e, t, n, r) {
5402 return (
5403 (o = e),
5404 (i = t),
5405 (u = !1),
5406 (a = dc(n, r)),
5407 o.dom().addEventListener(i, a, u),
5408 { unbind: b(gc, o, i, a, u) }
5409 );
5410 var o, i, u, a;
5411 },
5412 gc = function (e, t, n, r) {
5413 e.dom().removeEventListener(t, n, r);
5414 },
5415 hc = C(!0),
5416 pc = function (e, t, n) {
5417 return mc(e, t, hc, n);
5418 },
5419 vc = fc.mode({
5420 compare: function (e, t) {
5421 return vo(t.left() - e.left(), t.top() - e.top());
5422 },
5423 extract: function (e) {
5424 return S.some(vo(e.x(), e.y()));
5425 },
5426 sink: function (e, t) {
5427 var n,
5428 r,
5429 o,
5430 i =
5431 ((n = t),
5432 (r = _o({ layerClass: sc.resolve('blocker') }, n)),
5433 (o = De.fromTag('div')),
5434 pe(o, 'role', 'presentation'),
5435 Pe(o, { position: 'fixed', left: '0px', top: '0px', width: '100%', height: '100%' }),
5436 Yo(o, sc.resolve('blocker')),
5437 Yo(o, r.layerClass),
5438 {
5439 element: function () {
5440 return o;
5441 },
5442 destroy: function () {
5443 Mt(o);
5444 },
5445 }),
5446 u = pc(i.element(), 'mousedown', e.forceDrop),
5447 a = pc(i.element(), 'mouseup', e.drop),
5448 c = pc(i.element(), 'mousemove', e.move),
5449 l = pc(i.element(), 'mouseout', e.delayDrop);
5450 return fc.sink({
5451 element: i.element,
5452 start: function (e) {
5453 kt(e, i.element());
5454 },
5455 stop: function () {
5456 Mt(i.element());
5457 },
5458 destroy: function () {
5459 i.destroy(), a.unbind(), c.unbind(), l.unbind(), u.unbind();
5460 },
5461 });
5462 },
5463 mutate: function (e, t) {
5464 e.mutate(t.left(), t.top());
5465 },
5466 });
5467 function bc() {
5468 var i = S.none(),
5469 u = lc.create({ move: cc(['info']) });
5470 return {
5471 onEvent: function (e, o) {
5472 o.extract(e).each(function (e) {
5473 var t, n, r;
5474 ((t = o),
5475 (n = e),
5476 (r = i.map(function (e) {
5477 return t.compare(e, n);
5478 })),
5479 (i = S.some(n)),
5480 r).each(function (e) {
5481 u.trigger.move(e);
5482 });
5483 });
5484 },
5485 reset: function () {
5486 i = S.none();
5487 },
5488 events: u.registry,
5489 };
5490 }
5491 function wc() {
5492 var e = { onEvent: function (e, t) {}, reset: y },
5493 t = bc(),
5494 n = e;
5495 return {
5496 on: function () {
5497 n.reset(), (n = t);
5498 },
5499 off: function () {
5500 n.reset(), (n = e);
5501 },
5502 isOn: function () {
5503 return n === t;
5504 },
5505 onEvent: function (e, t) {
5506 n.onEvent(e, t);
5507 },
5508 events: t.events,
5509 };
5510 }
5511 var yc = function (t, n, e) {
5512 var r,
5513 o,
5514 i,
5515 u = !1,
5516 a = lc.create({ start: cc([]), stop: cc([]) }),
5517 c = wc(),
5518 l = function () {
5519 d.stop(), c.isOn() && (c.off(), a.trigger.stop());
5520 },
5521 f =
5522 ((r = l),
5523 (o = 200),
5524 (i = null),
5525 {
5526 cancel: function () {
5527 null !== i && (m.clearTimeout(i), (i = null));
5528 },
5529 throttle: function () {
5530 for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
5531 null !== i && m.clearTimeout(i),
5532 (i = m.setTimeout(function () {
5533 r.apply(null, e), (i = null);
5534 }, o));
5535 },
5536 });
5537 c.events.move.bind(function (e) {
5538 n.mutate(t, e.info());
5539 });
5540 var s = function (t) {
5541 return function () {
5542 var e = Array.prototype.slice.call(arguments, 0);
5543 if (u) return t.apply(null, e);
5544 };
5545 },
5546 d = n.sink(
5547 fc.api({
5548 forceDrop: l,
5549 drop: s(l),
5550 move: s(function (e, t) {
5551 f.cancel(), c.onEvent(e, n);
5552 }),
5553 delayDrop: s(f.throttle),
5554 }),
5555 e,
5556 );
5557 return {
5558 element: d.element,
5559 go: function (e) {
5560 d.start(e), c.on(), a.trigger.start();
5561 },
5562 on: function () {
5563 u = !0;
5564 },
5565 off: function () {
5566 u = !1;
5567 },
5568 destroy: function () {
5569 d.destroy();
5570 },
5571 events: a.registry,
5572 };
5573 },
5574 xc = {
5575 transform: function (e, t) {
5576 var n = t !== undefined ? t : {},
5577 r = n.mode !== undefined ? n.mode : vc;
5578 return yc(e, r, t);
5579 },
5580 },
5581 Cc = function (e, t, n) {
5582 return un(e, t, n).isSome();
5583 };
5584 function Sc() {
5585 var n,
5586 r = lc.create({ drag: cc(['xDelta', 'yDelta', 'target']) }),
5587 o = S.none(),
5588 e = {
5589 mutate: function (e, t) {
5590 n.trigger.drag(e, t);
5591 },
5592 events: (n = lc.create({ drag: cc(['xDelta', 'yDelta']) })).registry,
5593 };
5594 return (
5595 e.events.drag.bind(function (t) {
5596 o.each(function (e) {
5597 r.trigger.drag(t.xDelta(), t.yDelta(), e);
5598 });
5599 }),
5600 {
5601 assign: function (e) {
5602 o = S.some(e);
5603 },
5604 get: function () {
5605 return o;
5606 },
5607 mutate: e.mutate,
5608 events: r.registry,
5609 }
5610 );
5611 }
5612 var Rc = ri.resolve('resizer-bar-dragging');
5613 function Tc(e, n) {
5614 var r = ko.height,
5615 t = (function (o, t, i) {
5616 var n = Sc(),
5617 r = xc.transform(n, {}),
5618 u = S.none(),
5619 e = function (e, t) {
5620 return S.from(be(e, t));
5621 };
5622 n.events.drag.bind(function (n) {
5623 e(n.target(), 'data-row').each(function (e) {
5624 var t = gu.getInt(n.target(), 'top');
5625 ke(n.target(), 'top', t + n.yDelta() + 'px');
5626 }),
5627 e(n.target(), 'data-column').each(function (e) {
5628 var t = gu.getInt(n.target(), 'left');
5629 ke(n.target(), 'left', t + n.xDelta() + 'px');
5630 });
5631 });
5632 var a = function (e, t) {
5633 return gu.getInt(e, t) - parseInt(be(e, 'data-initial-' + t), 10);
5634 };
5635 r.events.stop.bind(function () {
5636 n.get().each(function (r) {
5637 u.each(function (n) {
5638 e(r, 'data-row').each(function (e) {
5639 var t = a(r, 'top');
5640 ye(r, 'data-initial-top'), d.trigger.adjustHeight(n, t, parseInt(e, 10));
5641 }),
5642 e(r, 'data-column').each(function (e) {
5643 var t = a(r, 'left');
5644 ye(r, 'data-initial-left'), d.trigger.adjustWidth(n, t, parseInt(e, 10));
5645 }),
5646 mi.refresh(o, n, i, t);
5647 });
5648 });
5649 });
5650 var c = function (e, t) {
5651 d.trigger.startAdjust(),
5652 n.assign(e),
5653 pe(e, 'data-initial-' + t, parseInt(Ie(e, t), 10)),
5654 Yo(e, Rc),
5655 ke(e, 'opacity', '0.2'),
5656 r.go(o.parent());
5657 },
5658 l = pc(o.parent(), 'mousedown', function (e) {
5659 mi.isRowBar(e.target()) && c(e.target(), 'top'),
5660 mi.isColBar(e.target()) && c(e.target(), 'left');
5661 }),
5662 f = function (e) {
5663 return bt(e, o.view());
5664 },
5665 s = pc(o.view(), 'mouseover', function (e) {
5666 'table' === ce(e.target()) || Cc(e.target(), 'table', f)
5667 ? (u =
5668 'table' === ce(e.target())
5669 ? S.some(e.target())
5670 : nn(e.target(), 'table', f)).each(function (e) {
5671 mi.refresh(o, e, i, t);
5672 })
5673 : Oe(e.target()) && mi.destroy(o);
5674 }),
5675 d = lc.create({
5676 adjustHeight: cc(['table', 'delta', 'row']),
5677 adjustWidth: cc(['table', 'delta', 'column']),
5678 startAdjust: cc([]),
5679 });
5680 return {
5681 destroy: function () {
5682 l.unbind(), s.unbind(), r.destroy(), mi.destroy(o);
5683 },
5684 refresh: function (e) {
5685 mi.refresh(o, e, i, t);
5686 },
5687 on: r.on,
5688 off: r.off,
5689 hideBars: b(mi.hide, o),
5690 showBars: b(mi.show, o),
5691 events: d.registry,
5692 };
5693 })(e, n, r),
5694 o = lc.create({ beforeResize: cc(['table']), afterResize: cc(['table']), startDrag: cc([]) });
5695 return (
5696 t.events.adjustHeight.bind(function (e) {
5697 o.trigger.beforeResize(e.table());
5698 var t = r.delta(e.delta());
5699 Pu(e.table(), t, e.row(), r), o.trigger.afterResize(e.table());
5700 }),
5701 t.events.startAdjust.bind(function (e) {
5702 o.trigger.startDrag();
5703 }),
5704 t.events.adjustWidth.bind(function (e) {
5705 o.trigger.beforeResize(e.table());
5706 var t = n.delta(e.delta(), e.table());
5707 ku(e.table(), t, e.column(), n), o.trigger.afterResize(e.table());
5708 }),
5709 {
5710 on: t.on,
5711 off: t.off,
5712 hideBars: t.hideBars,
5713 showBars: t.showBars,
5714 destroy: t.destroy,
5715 events: o.registry,
5716 }
5717 );
5718 }
5719 var Dc = function (e, t) {
5720 return e.inline
5721 ? ac(
5722 sa(e),
5723 ((n = De.fromTag('div')),
5724 Pe(n, {
5725 position: 'static',
5726 height: '0',
5727 width: '0',
5728 padding: '0',
5729 margin: '0',
5730 border: '0',
5731 }),
5732 kt(Ne(), n),
5733 n),
5734 )
5735 : uc(De.fromDom(e.getDoc()));
5736 var n;
5737 },
5738 Oc = function (e, t) {
5739 e.inline && Mt(t.parent());
5740 },
5741 Nc = function (u) {
5742 var a,
5743 c,
5744 o = S.none(),
5745 i = S.none(),
5746 l = S.none(),
5747 f = /(\d+(\.\d+)?)%/,
5748 s = function (e) {
5749 return 'TABLE' === e.nodeName;
5750 };
5751 return (
5752 u.on('init', function () {
5753 var e,
5754 t = Io(wa.directionAt),
5755 n = Dc(u);
5756 if (
5757 ((l = S.some(n)),
5758 ('table' === (e = u.getParam('object_resizing', !0)) || e) &&
5759 u.getParam('table_resize_bars', !0, 'boolean'))
5760 ) {
5761 var r = Tc(n, t);
5762 r.on(),
5763 r.events.startDrag.bind(function (e) {
5764 o = S.some(u.selection.getRng());
5765 }),
5766 r.events.beforeResize.bind(function (e) {
5767 var t = e.table().dom();
5768 Ia(u, t, da(t), ma(t));
5769 }),
5770 r.events.afterResize.bind(function (e) {
5771 var t = e.table(),
5772 n = t.dom();
5773 pa(t),
5774 o.each(function (e) {
5775 u.selection.setRng(e), u.focus();
5776 }),
5777 Ba(u, n, da(n), ma(n)),
5778 u.undoManager.add();
5779 }),
5780 (i = S.some(r));
5781 }
5782 }),
5783 u.on('ObjectResizeStart', function (e) {
5784 var t,
5785 n = e.target;
5786 s(n) &&
5787 ((a = e.width),
5788 (t = n),
5789 (c = u.dom.getStyle(t, 'width') || u.dom.getAttrib(t, 'width')));
5790 }),
5791 u.on('ObjectResized', function (e) {
5792 var t = e.target;
5793 if (s(t)) {
5794 var n = t;
5795 if (f.test(c)) {
5796 var r = parseFloat(f.exec(c)[1]),
5797 o = (e.width * r) / a;
5798 u.dom.setStyle(n, 'width', o + '%');
5799 } else {
5800 var i = [];
5801 _a.each(n.rows, function (e) {
5802 _a.each(e.cells, function (e) {
5803 var t = u.dom.getStyle(e, 'width', !0);
5804 i.push({ cell: e, width: t });
5805 });
5806 }),
5807 _a.each(i, function (e) {
5808 u.dom.setStyle(e.cell, 'width', e.width), u.dom.setAttrib(e.cell, 'width', null);
5809 });
5810 }
5811 }
5812 }),
5813 {
5814 lazyResize: function () {
5815 return i;
5816 },
5817 lazyWire: function () {
5818 return l.getOr(uc(De.fromDom(u.getBody())));
5819 },
5820 destroy: function () {
5821 i.each(function (e) {
5822 e.destroy();
5823 }),
5824 l.each(function (e) {
5825 Oc(u, e);
5826 });
5827 },
5828 }
5829 );
5830 },
5831 Ec = function (e) {
5832 return { fold: e };
5833 },
5834 Ac = function (o) {
5835 return Ec(function (e, t, n, r) {
5836 return e(o);
5837 });
5838 },
5839 kc = function (o) {
5840 return Ec(function (e, t, n, r) {
5841 return t(o);
5842 });
5843 },
5844 Pc = function (o, i) {
5845 return Ec(function (e, t, n, r) {
5846 return n(o, i);
5847 });
5848 },
5849 Ic = function (o) {
5850 return Ec(function (e, t, n, r) {
5851 return r(o);
5852 });
5853 },
5854 Bc = function (n, e) {
5855 return gn.table(n, e).bind(function (e) {
5856 var t = gn.cells(e);
5857 return L(t, function (e) {
5858 return bt(n, e);
5859 }).map(function (e) {
5860 return { index: C(e), all: C(t) };
5861 });
5862 });
5863 },
5864 Wc = function (t, e) {
5865 return Bc(t, e).fold(
5866 function () {
5867 return Ac(t);
5868 },
5869 function (e) {
5870 return e.index() + 1 < e.all().length ? Pc(t, e.all()[e.index() + 1]) : Ic(t);
5871 },
5872 );
5873 },
5874 Mc = function (t, e) {
5875 return Bc(t, e).fold(
5876 function () {
5877 return Ac();
5878 },
5879 function (e) {
5880 return 0 <= e.index() - 1 ? Pc(t, e.all()[e.index() - 1]) : kc(t);
5881 },
5882 );
5883 },
5884 _c = _r([{ before: ['element'] }, { on: ['element', 'offset'] }, { after: ['element'] }]),
5885 Lc = {
5886 before: _c.before,
5887 on: _c.on,
5888 after: _c.after,
5889 cata: function (e, t, n, r) {
5890 return e.fold(t, n, r);
5891 },
5892 getStart: function (e) {
5893 return e.fold(o, o, o);
5894 },
5895 },
5896 jc = _r([
5897 { domRange: ['rng'] },
5898 { relative: ['startSitu', 'finishSitu'] },
5899 { exact: ['start', 'soffset', 'finish', 'foffset'] },
5900 ]),
5901 Fc = $('start', 'soffset', 'finish', 'foffset'),
5902 zc = function (e) {
5903 var t,
5904 n = e.match({
5905 domRange: function (e) {
5906 return De.fromDom(e.startContainer);
5907 },
5908 relative: function (e, t) {
5909 return Lc.getStart(e);
5910 },
5911 exact: function (e, t, n, r) {
5912 return e;
5913 },
5914 });
5915 return (t = n.dom().ownerDocument.defaultView), De.fromDom(t);
5916 },
5917 Hc = jc.relative,
5918 Uc = jc.exact,
5919 qc = function (e, t, n, r) {
5920 var o,
5921 i,
5922 u,
5923 a,
5924 c,
5925 l =
5926 ((i = t),
5927 (u = n),
5928 (a = r),
5929 (c = xt((o = e))
5930 .dom()
5931 .createRange()).setStart(o.dom(), i),
5932 c.setEnd(u.dom(), a),
5933 c),
5934 f = bt(e, n) && t === r;
5935 return l.collapsed && !f;
5936 },
5937 Vc = function (e, t) {
5938 e.selectNodeContents(t.dom());
5939 },
5940 Gc = function (e, t, n) {
5941 var r,
5942 o,
5943 i = e.document.createRange();
5944 return (
5945 (r = i),
5946 t.fold(
5947 function (e) {
5948 r.setStartBefore(e.dom());
5949 },
5950 function (e, t) {
5951 r.setStart(e.dom(), t);
5952 },
5953 function (e) {
5954 r.setStartAfter(e.dom());
5955 },
5956 ),
5957 (o = i),
5958 n.fold(
5959 function (e) {
5960 o.setEndBefore(e.dom());
5961 },
5962 function (e, t) {
5963 o.setEnd(e.dom(), t);
5964 },
5965 function (e) {
5966 o.setEndAfter(e.dom());
5967 },
5968 ),
5969 i
5970 );
5971 },
5972 Yc = function (e, t, n, r, o) {
5973 var i = e.document.createRange();
5974 return i.setStart(t.dom(), n), i.setEnd(r.dom(), o), i;
5975 },
5976 Xc = function (e) {
5977 return {
5978 left: C(e.left),
5979 top: C(e.top),
5980 right: C(e.right),
5981 bottom: C(e.bottom),
5982 width: C(e.width),
5983 height: C(e.height),
5984 };
5985 },
5986 Kc = _r([
5987 { ltr: ['start', 'soffset', 'finish', 'foffset'] },
5988 { rtl: ['start', 'soffset', 'finish', 'foffset'] },
5989 ]),
5990 Jc = function (e, t, n) {
5991 return t(
5992 De.fromDom(n.startContainer),
5993 n.startOffset,
5994 De.fromDom(n.endContainer),
5995 n.endOffset,
5996 );
5997 },
5998 $c = function (e, t) {
5999 var o,
6000 n,
6001 r,
6002 i =
6003 ((o = e),
6004 t.match({
6005 domRange: function (e) {
6006 return { ltr: C(e), rtl: S.none };
6007 },
6008 relative: function (e, t) {
6009 return {
6010 ltr: Re(function () {
6011 return Gc(o, e, t);
6012 }),
6013 rtl: Re(function () {
6014 return S.some(Gc(o, t, e));
6015 }),
6016 };
6017 },
6018 exact: function (e, t, n, r) {
6019 return {
6020 ltr: Re(function () {
6021 return Yc(o, e, t, n, r);
6022 }),
6023 rtl: Re(function () {
6024 return S.some(Yc(o, n, r, e, t));
6025 }),
6026 };
6027 },
6028 }));
6029 return (r = (n = i).ltr()).collapsed
6030 ? n
6031 .rtl()
6032 .filter(function (e) {
6033 return !1 === e.collapsed;
6034 })
6035 .map(function (e) {
6036 return Kc.rtl(
6037 De.fromDom(e.endContainer),
6038 e.endOffset,
6039 De.fromDom(e.startContainer),
6040 e.startOffset,
6041 );
6042 })
6043 .getOrThunk(function () {
6044 return Jc(0, Kc.ltr, r);
6045 })
6046 : Jc(0, Kc.ltr, r);
6047 },
6048 Qc = function (i, e) {
6049 return $c(i, e).match({
6050 ltr: function (e, t, n, r) {
6051 var o = i.document.createRange();
6052 return o.setStart(e.dom(), t), o.setEnd(n.dom(), r), o;
6053 },
6054 rtl: function (e, t, n, r) {
6055 var o = i.document.createRange();
6056 return o.setStart(n.dom(), r), o.setEnd(e.dom(), t), o;
6057 },
6058 });
6059 },
6060 Zc = function (e, t, n) {
6061 return t >= e.left && t <= e.right && n >= e.top && n <= e.bottom;
6062 },
6063 el = function (n, r, e, t, o) {
6064 var i = function (e) {
6065 var t = n.dom().createRange();
6066 return t.setStart(r.dom(), e), t.collapse(!0), t;
6067 },
6068 u = Sn(r).length,
6069 a = (function (e, t, n, r, o) {
6070 if (0 === o) return 0;
6071 if (t === r) return o - 1;
6072 for (var i = r, u = 1; u < o; u++) {
6073 var a = e(u),
6074 c = Math.abs(t - a.left);
6075 if (n <= a.bottom) {
6076 if (n < a.top || i < c) return u - 1;
6077 i = c;
6078 }
6079 }
6080 return 0;
6081 })(
6082 function (e) {
6083 return i(e).getBoundingClientRect();
6084 },
6085 e,
6086 t,
6087 o.right,
6088 u,
6089 );
6090 return i(a);
6091 },
6092 tl = function (t, n, r, o) {
6093 var e = t.dom().createRange();
6094 e.selectNode(n.dom());
6095 var i = e.getClientRects();
6096 return jo(i, function (e) {
6097 return Zc(e, r, o) ? S.some(e) : S.none();
6098 }).map(function (e) {
6099 return el(t, n, r, o, e);
6100 });
6101 },
6102 nl = function (t, e, n, r) {
6103 var o = t.dom().createRange(),
6104 i = Dt(e);
6105 return jo(i, function (e) {
6106 return (
6107 o.selectNode(e.dom()), Zc(o.getBoundingClientRect(), n, r) ? rl(t, e, n, r) : S.none()
6108 );
6109 });
6110 },
6111 rl = function (e, t, n, r) {
6112 return (me(t) ? tl : nl)(e, t, n, r);
6113 },
6114 ol = function (e, t) {
6115 return t - e.left < e.right - t;
6116 },
6117 il = function (e, t, n) {
6118 var r = e.dom().createRange();
6119 return r.selectNode(t.dom()), r.collapse(n), r;
6120 },
6121 ul = function (t, e, n) {
6122 var r = t.dom().createRange();
6123 r.selectNode(e.dom());
6124 var o = r.getBoundingClientRect(),
6125 i = ol(o, n);
6126 return (!0 === i ? En : An)(e).map(function (e) {
6127 return il(t, e, i);
6128 });
6129 },
6130 al = function (e, t, n) {
6131 var r = t.dom().getBoundingClientRect(),
6132 o = ol(r, n);
6133 return S.some(il(e, t, o));
6134 },
6135 cl = function (e, t, n, r) {
6136 var o = e.dom().createRange();
6137 o.selectNode(t.dom());
6138 var i = o.getBoundingClientRect();
6139 return (function (e, t, n, r) {
6140 var o = e.dom().createRange();
6141 o.selectNode(t.dom());
6142 var i = o.getBoundingClientRect(),
6143 u = Math.max(i.left, Math.min(i.right, n)),
6144 a = Math.max(i.top, Math.min(i.bottom, r));
6145 return rl(e, t, u, a);
6146 })(e, t, Math.max(i.left, Math.min(i.right, n)), Math.max(i.top, Math.min(i.bottom, r)));
6147 },
6148 ll = document.caretPositionFromPoint
6149 ? function (n, e, t) {
6150 return S.from(n.dom().caretPositionFromPoint(e, t)).bind(function (e) {
6151 if (null === e.offsetNode) return S.none();
6152 var t = n.dom().createRange();
6153 return t.setStart(e.offsetNode, e.offset), t.collapse(), S.some(t);
6154 });
6155 }
6156 : document.caretRangeFromPoint
6157 ? function (e, t, n) {
6158 return S.from(e.dom().caretRangeFromPoint(t, n));
6159 }
6160 : function (o, i, t) {
6161 return De.fromPoint(o, i, t).bind(function (r) {
6162 var e = function () {
6163 return (e = o), (n = i), (0 === Dt((t = r)).length ? al : ul)(e, t, n);
6164 var e, t, n;
6165 };
6166 return 0 === Dt(r).length ? e() : cl(o, r, i, t).orThunk(e);
6167 });
6168 },
6169 fl = function (e, t) {
6170 var n = ce(e);
6171 return 'input' === n
6172 ? Lc.after(e)
6173 : E(['br', 'img'], n)
6174 ? 0 === t
6175 ? Lc.before(e)
6176 : Lc.after(e)
6177 : Lc.on(e, t);
6178 },
6179 sl = function (e, t) {
6180 var n = e.fold(Lc.before, fl, Lc.after),
6181 r = t.fold(Lc.before, fl, Lc.after);
6182 return Hc(n, r);
6183 },
6184 dl = function (e, t, n, r) {
6185 var o = fl(e, t),
6186 i = fl(n, r);
6187 return Hc(o, i);
6188 },
6189 ml = function (e, t) {
6190 S.from(e.getSelection()).each(function (e) {
6191 e.removeAllRanges(), e.addRange(t);
6192 });
6193 },
6194 gl = function (e, t, n, r, o) {
6195 var i = Yc(e, t, n, r, o);
6196 ml(e, i);
6197 },
6198 hl = function (s, e) {
6199 return $c(s, e).match({
6200 ltr: function (e, t, n, r) {
6201 gl(s, e, t, n, r);
6202 },
6203 rtl: function (e, t, n, r) {
6204 var o,
6205 i,
6206 u,
6207 a,
6208 c,
6209 l = s.getSelection();
6210 if (l.setBaseAndExtent) l.setBaseAndExtent(e.dom(), t, n.dom(), r);
6211 else if (l.extend)
6212 try {
6213 (i = e),
6214 (u = t),
6215 (a = n),
6216 (c = r),
6217 (o = l).collapse(i.dom(), u),
6218 o.extend(a.dom(), c);
6219 } catch (f) {
6220 gl(s, n, r, e, t);
6221 }
6222 else gl(s, n, r, e, t);
6223 },
6224 });
6225 },
6226 pl = function (e) {
6227 var o = zc(e).dom(),
6228 t = function (e, t, n, r) {
6229 return Yc(o, e, t, n, r);
6230 },
6231 n = e.match({
6232 domRange: function (e) {
6233 var t = De.fromDom(e.startContainer),
6234 n = De.fromDom(e.endContainer);
6235 return dl(t, e.startOffset, n, e.endOffset);
6236 },
6237 relative: sl,
6238 exact: dl,
6239 });
6240 return $c(o, n).match({ ltr: t, rtl: t });
6241 },
6242 vl = function (e) {
6243 var t = De.fromDom(e.anchorNode),
6244 n = De.fromDom(e.focusNode);
6245 return qc(t, e.anchorOffset, n, e.focusOffset)
6246 ? S.some(Fc(t, e.anchorOffset, n, e.focusOffset))
6247 : (function (e) {
6248 if (0 < e.rangeCount) {
6249 var t = e.getRangeAt(0),
6250 n = e.getRangeAt(e.rangeCount - 1);
6251 return S.some(
6252 Fc(
6253 De.fromDom(t.startContainer),
6254 t.startOffset,
6255 De.fromDom(n.endContainer),
6256 n.endOffset,
6257 ),
6258 );
6259 }
6260 return S.none();
6261 })(e);
6262 },
6263 bl = function (e, t) {
6264 var n,
6265 r,
6266 o = ((n = t), (r = e.document.createRange()), Vc(r, n), r);
6267 ml(e, o);
6268 },
6269 wl = function (e) {
6270 return ((t = e),
6271 S.from(t.getSelection())
6272 .filter(function (e) {
6273 return 0 < e.rangeCount;
6274 })
6275 .bind(vl)).map(function (e) {
6276 return Uc(e.start(), e.soffset(), e.finish(), e.foffset());
6277 });
6278 var t;
6279 },
6280 yl = function (e, t) {
6281 var n,
6282 r,
6283 o,
6284 i = Qc(e, t);
6285 return (
6286 (r = (n = i).getClientRects()),
6287 0 < (o = 0 < r.length ? r[0] : n.getBoundingClientRect()).width || 0 < o.height
6288 ? S.some(o).map(Xc)
6289 : S.none()
6290 );
6291 },
6292 xl = function (e, t, n) {
6293 return (
6294 (r = e),
6295 (o = t),
6296 (i = n),
6297 (u = De.fromDom(r.document)),
6298 ll(u, o, i).map(function (e) {
6299 return Fc(
6300 De.fromDom(e.startContainer),
6301 e.startOffset,
6302 De.fromDom(e.endContainer),
6303 e.endOffset,
6304 );
6305 })
6306 );
6307 var r, o, i, u;
6308 },
6309 Cl = tinymce.util.Tools.resolve('tinymce.util.VK'),
6310 Sl = function (e, t, n, r) {
6311 return Ol(e, t, Wc(n), r);
6312 },
6313 Rl = function (e, t, n, r) {
6314 return Ol(e, t, Mc(n), r);
6315 },
6316 Tl = function (e, t) {
6317 var n = Uc(t, 0, t, 0);
6318 return pl(n);
6319 },
6320 Dl = function (e, t) {
6321 var n,
6322 r = Xt(t, 'tr');
6323 return ((n = r), 0 === n.length ? S.none() : S.some(n[n.length - 1])).bind(function (e) {
6324 return on(e, 'td,th').map(function (e) {
6325 return Tl(0, e);
6326 });
6327 });
6328 },
6329 Ol = function (r, e, t, o, n) {
6330 return t.fold(
6331 S.none,
6332 S.none,
6333 function (e, t) {
6334 return En(t).map(function (e) {
6335 return Tl(0, e);
6336 });
6337 },
6338 function (n) {
6339 return gn.table(n, e).bind(function (e) {
6340 var t = Gr.noMenu(n);
6341 return (
6342 r.undoManager.transact(function () {
6343 o.insertRowsAfter(e, t);
6344 }),
6345 Dl(0, e)
6346 );
6347 });
6348 },
6349 );
6350 },
6351 Nl = ['table', 'li', 'dl'],
6352 El = function (t, n, r, o) {
6353 if (t.keyCode === Cl.TAB) {
6354 var i = sa(n),
6355 u = function (e) {
6356 var t = ce(e);
6357 return bt(e, i) || E(Nl, t);
6358 },
6359 e = n.selection.getRng();
6360 if (e.collapsed) {
6361 var a = De.fromDom(e.startContainer);
6362 gn.cell(a, u).each(function (e) {
6363 t.preventDefault(),
6364 (t.shiftKey ? Rl : Sl)(n, u, e, r, o).each(function (e) {
6365 n.selection.setRng(e);
6366 });
6367 });
6368 }
6369 }
6370 },
6371 Al = { response: $('selection', 'kill') },
6372 kl = function (t) {
6373 return function (e) {
6374 return e === t;
6375 };
6376 },
6377 Pl = kl(38),
6378 Il = kl(40),
6379 Bl = {
6380 ltr: { isBackward: kl(37), isForward: kl(39) },
6381 rtl: { isBackward: kl(39), isForward: kl(37) },
6382 isUp: Pl,
6383 isDown: Il,
6384 isNavigation: function (e) {
6385 return 37 <= e && e <= 40;
6386 },
6387 },
6388 Wl = function (e, t) {
6389 var n = Qc(e, t);
6390 return {
6391 start: C(De.fromDom(n.startContainer)),
6392 soffset: C(n.startOffset),
6393 finish: C(De.fromDom(n.endContainer)),
6394 foffset: C(n.endOffset),
6395 };
6396 },
6397 Ml = function (e, t, n, r) {
6398 return { start: C(Lc.on(e, t)), finish: C(Lc.on(n, r)) };
6399 };
6400 function _l(a) {
6401 return {
6402 elementFromPoint: function (e, t) {
6403 return De.fromPoint(De.fromDom(a.document), e, t);
6404 },
6405 getRect: function (e) {
6406 return e.dom().getBoundingClientRect();
6407 },
6408 getRangedRect: function (e, t, n, r) {
6409 var o = Uc(e, t, n, r);
6410 return yl(a, o).map(function (e) {
6411 return K(e, c);
6412 });
6413 },
6414 getSelection: function () {
6415 return wl(a).map(function (e) {
6416 return Wl(a, e);
6417 });
6418 },
6419 fromSitus: function (e) {
6420 var t = Hc(e.start(), e.finish());
6421 return Wl(a, t);
6422 },
6423 situsFromPoint: function (e, t) {
6424 return xl(a, e, t).map(function (e) {
6425 return {
6426 start: C(Lc.on(e.start(), e.soffset())),
6427 finish: C(Lc.on(e.finish(), e.foffset())),
6428 };
6429 });
6430 },
6431 clearSelection: function () {
6432 a.getSelection().removeAllRanges();
6433 },
6434 setSelection: function (e) {
6435 var t, n, r, o, i, u;
6436 (t = a),
6437 (n = e.start()),
6438 (r = e.soffset()),
6439 (o = e.finish()),
6440 (i = e.foffset()),
6441 (u = dl(n, r, o, i)),
6442 hl(t, u);
6443 },
6444 setRelativeSelection: function (e, t) {
6445 var n, r;
6446 (n = a), (r = sl(e, t)), hl(n, r);
6447 },
6448 selectContents: function (e) {
6449 bl(a, e);
6450 },
6451 getInnerHeight: function () {
6452 return a.innerHeight;
6453 },
6454 getScrollY: function () {
6455 var e, t, n, r;
6456 return ((e = De.fromDom(a.document)),
6457 (t = e !== undefined ? e.dom() : m.document),
6458 (n = t.body.scrollLeft || t.documentElement.scrollLeft),
6459 (r = t.body.scrollTop || t.documentElement.scrollTop),
6460 vo(n, r)).top();
6461 },
6462 scrollBy: function (e, t) {
6463 var n, r, o;
6464 (n = e),
6465 (r = t),
6466 ((o = De.fromDom(a.document)) !== undefined ? o.dom() : m.document).defaultView.scrollBy(
6467 n,
6468 r,
6469 );
6470 },
6471 };
6472 }
6473 mt.detect().browser.isSafari();
6474 var Ll = function (n, e, r, t, o) {
6475 return bt(r, t)
6476 ? S.none()
6477 : Or(r, t, e).bind(function (e) {
6478 var t = e.boxes().getOr([]);
6479 return 0 < t.length
6480 ? (o(n, t, e.start(), e.finish()),
6481 S.some(Al.response(S.some(Ml(r, 0, r, Dn(r))), !0)))
6482 : S.none();
6483 });
6484 },
6485 jl = {
6486 sync: function (n, r, e, t, o, i, u) {
6487 return bt(e, o) && t === i
6488 ? S.none()
6489 : un(e, 'td,th', r).bind(function (t) {
6490 return un(o, 'td,th', r).bind(function (e) {
6491 return Ll(n, r, t, e, u);
6492 });
6493 });
6494 },
6495 detect: Ll,
6496 update: function (e, t, n, r, o) {
6497 return Er(r, e, t, o.firstSelectedSelector(), o.lastSelectedSelector()).map(function (e) {
6498 return o.clear(n), o.selectRange(n, e.boxes(), e.start(), e.finish()), e.boxes();
6499 });
6500 },
6501 },
6502 Fl = re(['left', 'top', 'right', 'bottom'], []),
6503 zl = {
6504 nu: Fl,
6505 moveUp: function (e, t) {
6506 return Fl({ left: e.left(), top: e.top() - t, right: e.right(), bottom: e.bottom() - t });
6507 },
6508 moveDown: function (e, t) {
6509 return Fl({ left: e.left(), top: e.top() + t, right: e.right(), bottom: e.bottom() + t });
6510 },
6511 moveBottomTo: function (e, t) {
6512 var n = e.bottom() - e.top();
6513 return Fl({ left: e.left(), top: t - n, right: e.right(), bottom: t });
6514 },
6515 moveTopTo: function (e, t) {
6516 var n = e.bottom() - e.top();
6517 return Fl({ left: e.left(), top: t, right: e.right(), bottom: t + n });
6518 },
6519 getTop: function (e) {
6520 return e.top();
6521 },
6522 getBottom: function (e) {
6523 return e.bottom();
6524 },
6525 translate: function (e, t, n) {
6526 return Fl({
6527 left: e.left() + t,
6528 top: e.top() + n,
6529 right: e.right() + t,
6530 bottom: e.bottom() + n,
6531 });
6532 },
6533 toString: function (e) {
6534 return '(' + e.left() + ', ' + e.top() + ') -> (' + e.right() + ', ' + e.bottom() + ')';
6535 },
6536 },
6537 Hl = function (e) {
6538 return zl.nu({ left: e.left, top: e.top, right: e.right, bottom: e.bottom });
6539 },
6540 Ul = function (e, t) {
6541 return S.some(e.getRect(t));
6542 },
6543 ql = function (e, t, n) {
6544 return de(t)
6545 ? Ul(e, t).map(Hl)
6546 : me(t)
6547 ? ((r = e),
6548 (o = t),
6549 (i = n),
6550 0 <= i && i < Dn(o)
6551 ? r.getRangedRect(o, i, o, i + 1)
6552 : 0 < i
6553 ? r.getRangedRect(o, i - 1, o, i)
6554 : S.none()).map(Hl)
6555 : S.none();
6556 var r, o, i;
6557 },
6558 Vl = function (e, t) {
6559 return de(t) ? Ul(e, t).map(Hl) : me(t) ? e.getRangedRect(t, 0, t, Dn(t)).map(Hl) : S.none();
6560 },
6561 Gl = $('item', 'mode'),
6562 Yl = function (e, t, n, r) {
6563 return (
6564 void 0 === r && (r = Xl),
6565 e
6566 .property()
6567 .parent(t)
6568 .map(function (e) {
6569 return Gl(e, r);
6570 })
6571 );
6572 },
6573 Xl = function (e, t, n, r) {
6574 return (
6575 void 0 === r && (r = Kl),
6576 n.sibling(e, t).map(function (e) {
6577 return Gl(e, r);
6578 })
6579 );
6580 },
6581 Kl = function (e, t, n, r) {
6582 void 0 === r && (r = Kl);
6583 var o = e.property().children(t);
6584 return n.first(o).map(function (e) {
6585 return Gl(e, r);
6586 });
6587 },
6588 Jl = [
6589 { current: Yl, next: Xl, fallback: S.none() },
6590 { current: Xl, next: Kl, fallback: S.some(Yl) },
6591 { current: Kl, next: Kl, fallback: S.some(Xl) },
6592 ],
6593 $l = function (t, n, r, o, e) {
6594 return (
6595 void 0 === e && (e = Jl),
6596 _(e, function (e) {
6597 return e.current === r;
6598 }).bind(function (e) {
6599 return e.current(t, n, o, e.next).orThunk(function () {
6600 return e.fallback.bind(function (e) {
6601 return $l(t, n, e, o);
6602 });
6603 });
6604 })
6605 );
6606 },
6607 Ql = function () {
6608 return {
6609 sibling: function (e, t) {
6610 return e.query().prevSibling(t);
6611 },
6612 first: function (e) {
6613 return 0 < e.length ? S.some(e[e.length - 1]) : S.none();
6614 },
6615 };
6616 },
6617 Zl = function () {
6618 return {
6619 sibling: function (e, t) {
6620 return e.query().nextSibling(t);
6621 },
6622 first: function (e) {
6623 return 0 < e.length ? S.some(e[0]) : S.none();
6624 },
6625 };
6626 },
6627 ef = function (t, e, n, r, o, i) {
6628 return $l(t, e, r, o).bind(function (e) {
6629 return i(e.item())
6630 ? S.none()
6631 : n(e.item())
6632 ? S.some(e.item())
6633 : ef(t, e.item(), n, e.mode(), o, i);
6634 });
6635 },
6636 tf = function (t) {
6637 return function (e) {
6638 return 0 === t.property().children(e).length;
6639 };
6640 },
6641 nf = function (e, t, n, r) {
6642 return ef(e, t, n, Xl, Ql(), r);
6643 },
6644 rf = function (e, t, n, r) {
6645 return ef(e, t, n, Xl, Zl(), r);
6646 },
6647 of = Un(),
6648 uf = function (e, t) {
6649 return (r = t), nf((n = of), e, tf(n), r);
6650 var n, r;
6651 },
6652 af = function (e, t) {
6653 return (r = t), rf((n = of), e, tf(n), r);
6654 var n, r;
6655 },
6656 cf = _r([{ none: [] }, { retry: ['caret'] }]),
6657 lf = function (t, e, r) {
6658 return ((n = e),
6659 (o = Ju),
6660 Kt(
6661 function (e) {
6662 return o(e);
6663 },
6664 tn,
6665 n,
6666 o,
6667 i,
6668 )).fold(C(!1), function (e) {
6669 return Vl(t, e).exists(function (e) {
6670 return (
6671 (n = e),
6672 (t = r).left() < n.left() || Math.abs(n.right() - t.left()) < 1 || t.left() > n.right()
6673 );
6674 var t, n;
6675 });
6676 });
6677 var n, o, i;
6678 },
6679 ff = {
6680 point: zl.getTop,
6681 adjuster: function (e, t, n, r, o) {
6682 var i = zl.moveUp(o, 5);
6683 return Math.abs(n.top() - r.top()) < 1
6684 ? cf.retry(i)
6685 : n.bottom() < o.top()
6686 ? cf.retry(i)
6687 : n.bottom() === o.top()
6688 ? cf.retry(zl.moveUp(o, 1))
6689 : lf(e, t, o)
6690 ? cf.retry(zl.translate(i, 5, 0))
6691 : cf.none();
6692 },
6693 move: zl.moveUp,
6694 gather: uf,
6695 },
6696 sf = {
6697 point: zl.getBottom,
6698 adjuster: function (e, t, n, r, o) {
6699 var i = zl.moveDown(o, 5);
6700 return Math.abs(n.bottom() - r.bottom()) < 1
6701 ? cf.retry(i)
6702 : n.top() > o.bottom()
6703 ? cf.retry(i)
6704 : n.top() === o.bottom()
6705 ? cf.retry(zl.moveDown(o, 1))
6706 : lf(e, t, o)
6707 ? cf.retry(zl.translate(i, 5, 0))
6708 : cf.none();
6709 },
6710 move: zl.moveDown,
6711 gather: af,
6712 },
6713 df = function (n, r, o, i, u) {
6714 return 0 === u
6715 ? S.some(i)
6716 : ((c = n),
6717 (l = i.left()),
6718 (f = r.point(i)),
6719 c
6720 .elementFromPoint(l, f)
6721 .filter(function (e) {
6722 return 'table' === ce(e);
6723 })
6724 .isSome()
6725 ? ((t = i), (a = u - 1), df(n, (e = r), o, e.move(t, 5), a))
6726 : n.situsFromPoint(i.left(), r.point(i)).bind(function (e) {
6727 return e.start().fold(
6728 S.none,
6729 function (t, e) {
6730 return Vl(n, t, e)
6731 .bind(function (e) {
6732 return r.adjuster(n, t, e, o, i).fold(S.none, function (e) {
6733 return df(n, r, o, e, u - 1);
6734 });
6735 })
6736 .orThunk(function () {
6737 return S.some(i);
6738 });
6739 },
6740 S.none,
6741 );
6742 }));
6743 var e, t, a, c, l, f;
6744 },
6745 mf = function (t, n, e) {
6746 var r,
6747 o,
6748 i,
6749 u = t.move(e, 5),
6750 a = df(n, t, e, u, 100).getOr(u);
6751 return ((r = t),
6752 (o = a),
6753 (i = n),
6754 r.point(o) > i.getInnerHeight()
6755 ? S.some(r.point(o) - i.getInnerHeight())
6756 : r.point(o) < 0
6757 ? S.some(-r.point(o))
6758 : S.none()).fold(
6759 function () {
6760 return n.situsFromPoint(a.left(), t.point(a));
6761 },
6762 function (e) {
6763 return n.scrollBy(0, e), n.situsFromPoint(a.left(), t.point(a) - e);
6764 },
6765 );
6766 },
6767 gf = {
6768 tryUp: b(mf, ff),
6769 tryDown: b(mf, sf),
6770 ieTryUp: function (e, t) {
6771 return e.situsFromPoint(t.left(), t.top() - 5);
6772 },
6773 ieTryDown: function (e, t) {
6774 return e.situsFromPoint(t.left(), t.bottom() + 5);
6775 },
6776 getJumpSize: C(5),
6777 },
6778 hf = _r([
6779 { none: ['message'] },
6780 { success: [] },
6781 { failedUp: ['cell'] },
6782 { failedDown: ['cell'] },
6783 ]),
6784 pf = function (e) {
6785 return un(e, 'tr');
6786 },
6787 vf = {
6788 verify: function (a, e, t, n, r, c, o) {
6789 return un(n, 'td,th', o)
6790 .bind(function (u) {
6791 return un(e, 'td,th', o).map(function (i) {
6792 return bt(u, i)
6793 ? bt(n, u) && Dn(u) === r
6794 ? c(i)
6795 : hf.none('in same cell')
6796 : lr.sharedOne(pf, [u, i]).fold(
6797 function () {
6798 return (
6799 (t = i),
6800 (n = u),
6801 (r = (e = a).getRect(t)),
6802 (o = e.getRect(n)).right > r.left && o.left < r.right ? hf.success() : c(i)
6803 );
6804 var e, t, n, r, o;
6805 },
6806 function (e) {
6807 return c(i);
6808 },
6809 );
6810 });
6811 })
6812 .getOr(hf.none('default'));
6813 },
6814 cata: function (e, t, n, r, o) {
6815 return e.fold(t, n, r, o);
6816 },
6817 adt: hf,
6818 },
6819 bf = $('element', 'offset'),
6820 wf =
6821 ($('element', 'deltaOffset'),
6822 $('element', 'start', 'finish'),
6823 $('begin', 'end'),
6824 $('element', 'text'),
6825 $('ancestor', 'descendants', 'element', 'index'),
6826 $('parent', 'children', 'element', 'index')),
6827 yf = function (e, t) {
6828 return L(e, b(bt, t));
6829 },
6830 xf = function (e) {
6831 return 'br' === ce(e);
6832 },
6833 Cf = function (e, t, n) {
6834 return t(e, n).bind(function (e) {
6835 return me(e) && 0 === Sn(e).trim().length ? Cf(e, t, n) : S.some(e);
6836 });
6837 },
6838 Sf = function (t, e, n, r) {
6839 return ((o = e),
6840 (i = n),
6841 Ot(o, i)
6842 .filter(xf)
6843 .orThunk(function () {
6844 return Ot(o, i - 1).filter(xf);
6845 })).bind(function (e) {
6846 return r.traverse(e).fold(
6847 function () {
6848 return Cf(e, r.gather, t).map(r.relative);
6849 },
6850 function (e) {
6851 return ((r = e),
6852 Ct(r).bind(function (t) {
6853 var n = Dt(t);
6854 return yf(n, r).map(function (e) {
6855 return wf(t, n, r, e);
6856 });
6857 })).map(function (e) {
6858 return Lc.on(e.parent(), e.index());
6859 });
6860 var r;
6861 },
6862 );
6863 });
6864 var o, i;
6865 },
6866 Rf = function (e, t, n, r) {
6867 var o, i, u;
6868 return (
6869 xf(t)
6870 ? ((o = e),
6871 (i = t),
6872 (u = r)
6873 .traverse(i)
6874 .orThunk(function () {
6875 return Cf(i, u.gather, o);
6876 })
6877 .map(u.relative))
6878 : Sf(e, t, n, r)
6879 ).map(function (e) {
6880 return { start: C(e), finish: C(e) };
6881 });
6882 },
6883 Tf = function (e) {
6884 return vf.cata(
6885 e,
6886 function (e) {
6887 return S.none();
6888 },
6889 function () {
6890 return S.none();
6891 },
6892 function (e) {
6893 return S.some(bf(e, 0));
6894 },
6895 function (e) {
6896 return S.some(bf(e, Dn(e)));
6897 },
6898 );
6899 },
6900 Df = mt.detect(),
6901 Of = function (r, o, i, u, a, c) {
6902 return 0 === c
6903 ? S.none()
6904 : Af(r, o, i, u, a).bind(function (e) {
6905 var t = r.fromSitus(e),
6906 n = vf.verify(r, i, u, t.finish(), t.foffset(), a.failure, o);
6907 return vf.cata(
6908 n,
6909 function () {
6910 return S.none();
6911 },
6912 function () {
6913 return S.some(e);
6914 },
6915 function (e) {
6916 return bt(i, e) && 0 === u ? Nf(r, i, u, zl.moveUp, a) : Of(r, o, e, 0, a, c - 1);
6917 },
6918 function (e) {
6919 return bt(i, e) && u === Dn(e)
6920 ? Nf(r, i, u, zl.moveDown, a)
6921 : Of(r, o, e, Dn(e), a, c - 1);
6922 },
6923 );
6924 });
6925 },
6926 Nf = function (t, e, n, r, o) {
6927 return ql(t, e, n).bind(function (e) {
6928 return Ef(t, o, r(e, gf.getJumpSize()));
6929 });
6930 },
6931 Ef = function (e, t, n) {
6932 return Df.browser.isChrome() ||
6933 Df.browser.isSafari() ||
6934 Df.browser.isFirefox() ||
6935 Df.browser.isEdge()
6936 ? t.otherRetry(e, n)
6937 : Df.browser.isIE()
6938 ? t.ieRetry(e, n)
6939 : S.none();
6940 },
6941 Af = function (t, e, n, r, o) {
6942 return ql(t, n, r).bind(function (e) {
6943 return Ef(t, o, e);
6944 });
6945 },
6946 kf = function (t, n, r) {
6947 return ((o = t),
6948 (i = n),
6949 (u = r),
6950 o.getSelection().bind(function (r) {
6951 return Rf(i, r.finish(), r.foffset(), u).fold(
6952 function () {
6953 return S.some(bf(r.finish(), r.foffset()));
6954 },
6955 function (e) {
6956 var t = o.fromSitus(e),
6957 n = vf.verify(o, r.finish(), r.foffset(), t.finish(), t.foffset(), u.failure, i);
6958 return Tf(n);
6959 },
6960 );
6961 })).bind(function (e) {
6962 return Of(t, n, e.element(), e.offset(), r, 20).map(t.fromSitus);
6963 });
6964 var o, i, u;
6965 },
6966 Pf = mt.detect(),
6967 If = function (e, t) {
6968 return tn(
6969 e,
6970 function (e) {
6971 return Ct(e).exists(function (e) {
6972 return bt(e, t);
6973 });
6974 },
6975 n,
6976 ).isSome();
6977 var n;
6978 },
6979 Bf = function (t, r, o, e, i) {
6980 return un(e, 'td,th', r).bind(function (n) {
6981 return un(n, 'table', r).bind(function (e) {
6982 return If(i, e)
6983 ? kf(t, r, o).bind(function (t) {
6984 return un(t.finish(), 'td,th', r).map(function (e) {
6985 return { start: C(n), finish: C(e), range: C(t) };
6986 });
6987 })
6988 : S.none();
6989 });
6990 });
6991 },
6992 Wf = function (e, t, n, r, o, i) {
6993 return Pf.browser.isIE()
6994 ? S.none()
6995 : i(r, t).orThunk(function () {
6996 return Bf(e, t, n, r, o).map(function (e) {
6997 var t = e.range();
6998 return Al.response(S.some(Ml(t.start(), t.soffset(), t.finish(), t.foffset())), !0);
6999 });
7000 });
7001 },
7002 Mf = function (e, t, n, r, o, i, u) {
7003 return Bf(e, n, r, o, i).bind(function (e) {
7004 return jl.detect(t, n, e.start(), e.finish(), u);
7005 });
7006 },
7007 _f = function (e, u) {
7008 return un(e, 'tr', u).bind(function (i) {
7009 return un(i, 'table', u).bind(function (e) {
7010 var t,
7011 n,
7012 r,
7013 o = Xt(e, 'tr');
7014 return bt(i, o[0])
7015 ? ((t = e),
7016 (n = function (e) {
7017 return An(e).isSome();
7018 }),
7019 (r = u),
7020 nf(of, t, n, r)).map(function (e) {
7021 var t = Dn(e);
7022 return Al.response(S.some(Ml(e, t, e, t)), !0);
7023 })
7024 : S.none();
7025 });
7026 });
7027 },
7028 Lf = function (e, u) {
7029 return un(e, 'tr', u).bind(function (i) {
7030 return un(i, 'table', u).bind(function (e) {
7031 var t,
7032 n,
7033 r,
7034 o = Xt(e, 'tr');
7035 return bt(i, o[o.length - 1])
7036 ? ((t = e),
7037 (n = function (e) {
7038 return En(e).isSome();
7039 }),
7040 (r = u),
7041 rf(of, t, n, r)).map(function (e) {
7042 return Al.response(S.some(Ml(e, 0, e, 0)), !0);
7043 })
7044 : S.none();
7045 });
7046 });
7047 },
7048 jf = function (e, t) {
7049 return un(e, 'td,th', t);
7050 },
7051 Ff = {
7052 down: {
7053 traverse: Tt,
7054 gather: af,
7055 relative: Lc.before,
7056 otherRetry: gf.tryDown,
7057 ieRetry: gf.ieTryDown,
7058 failure: vf.adt.failedDown,
7059 },
7060 up: {
7061 traverse: Rt,
7062 gather: uf,
7063 relative: Lc.before,
7064 otherRetry: gf.tryUp,
7065 ieRetry: gf.ieTryUp,
7066 failure: vf.adt.failedUp,
7067 },
7068 },
7069 zf = $('rows', 'cols'),
7070 Hf = {
7071 mouse: function (e, t, n, r) {
7072 var o,
7073 i,
7074 u,
7075 a,
7076 c,
7077 l,
7078 f = _l(e),
7079 s =
7080 ((o = f),
7081 (i = t),
7082 (u = n),
7083 (a = r),
7084 (c = S.none()),
7085 (l = function () {
7086 c = S.none();
7087 }),
7088 {
7089 mousedown: function (e) {
7090 a.clear(i), (c = jf(e.target(), u));
7091 },
7092 mouseover: function (e) {
7093 c.each(function (r) {
7094 a.clear(i),
7095 jf(e.target(), u).each(function (n) {
7096 Or(r, n, u).each(function (e) {
7097 var t = e.boxes().getOr([]);
7098 (1 < t.length || (1 === t.length && !bt(r, n))) &&
7099 (a.selectRange(i, t, e.start(), e.finish()), o.selectContents(n));
7100 });
7101 });
7102 });
7103 },
7104 mouseup: function () {
7105 c.each(l);
7106 },
7107 });
7108 return { mousedown: s.mousedown, mouseover: s.mouseover, mouseup: s.mouseup };
7109 },
7110 keyboard: function (e, c, l, f) {
7111 var s = _l(e),
7112 d = function () {
7113 return f.clear(c), S.none();
7114 };
7115 return {
7116 keydown: function (e, t, n, r, o, i) {
7117 var u = e.raw().which,
7118 a = !0 === e.raw().shiftKey;
7119 return Nr(c, f.selectedSelector()).fold(
7120 function () {
7121 return Bl.isDown(u) && a
7122 ? b(Mf, s, c, l, Ff.down, r, t, f.selectRange)
7123 : Bl.isUp(u) && a
7124 ? b(Mf, s, c, l, Ff.up, r, t, f.selectRange)
7125 : Bl.isDown(u)
7126 ? b(Wf, s, l, Ff.down, r, t, Lf)
7127 : Bl.isUp(u)
7128 ? b(Wf, s, l, Ff.up, r, t, _f)
7129 : S.none;
7130 },
7131 function (t) {
7132 var e = function (e) {
7133 return function () {
7134 return jo(e, function (e) {
7135 return jl.update(e.rows(), e.cols(), c, t, f);
7136 }).fold(
7137 function () {
7138 return Ar(c, f.firstSelectedSelector(), f.lastSelectedSelector()).map(
7139 function (e) {
7140 var t = Bl.isDown(u) || i.isForward(u) ? Lc.after : Lc.before;
7141 return (
7142 s.setRelativeSelection(Lc.on(e.first(), 0), t(e.table())),
7143 f.clear(c),
7144 Al.response(S.none(), !0)
7145 );
7146 },
7147 );
7148 },
7149 function (e) {
7150 return S.some(Al.response(S.none(), !0));
7151 },
7152 );
7153 };
7154 };
7155 return Bl.isDown(u) && a
7156 ? e([zf(1, 0)])
7157 : Bl.isUp(u) && a
7158 ? e([zf(-1, 0)])
7159 : i.isBackward(u) && a
7160 ? e([zf(0, -1), zf(-1, 0)])
7161 : i.isForward(u) && a
7162 ? e([zf(0, 1), zf(1, 0)])
7163 : Bl.isNavigation(u) && !1 === a
7164 ? d
7165 : S.none;
7166 },
7167 )();
7168 },
7169 keyup: function (t, n, r, o, i) {
7170 return Nr(c, f.selectedSelector()).fold(function () {
7171 var e = t.raw().which;
7172 return 0 == (!0 === t.raw().shiftKey)
7173 ? S.none()
7174 : Bl.isNavigation(e)
7175 ? jl.sync(c, l, n, r, o, i, f.selectRange)
7176 : S.none();
7177 }, S.none);
7178 },
7179 };
7180 },
7181 },
7182 Uf = function (r, e) {
7183 P(e, function (e) {
7184 var t, n;
7185 (n = e), qo((t = r)) ? t.dom().classList.remove(n) : Go(t, n), Xo(t);
7186 });
7187 },
7188 qf = {
7189 byClass: function (o) {
7190 var t,
7191 n,
7192 i =
7193 ((t = o.selected()),
7194 function (e) {
7195 Yo(e, t);
7196 }),
7197 r =
7198 ((n = [o.selected(), o.lastSelected(), o.firstSelected()]),
7199 function (e) {
7200 Uf(e, n);
7201 }),
7202 u = function (e) {
7203 var t = Xt(e, o.selectedSelector());
7204 P(t, r);
7205 };
7206 return {
7207 clear: u,
7208 selectRange: function (e, t, n, r) {
7209 u(e), P(t, i), Yo(n, o.firstSelected()), Yo(r, o.lastSelected());
7210 },
7211 selectedSelector: o.selectedSelector,
7212 firstSelectedSelector: o.firstSelectedSelector,
7213 lastSelectedSelector: o.lastSelectedSelector,
7214 };
7215 },
7216 byAttr: function (o) {
7217 var n = function (e) {
7218 ye(e, o.selected()), ye(e, o.firstSelected()), ye(e, o.lastSelected());
7219 },
7220 i = function (e) {
7221 pe(e, o.selected(), '1');
7222 },
7223 u = function (e) {
7224 var t = Xt(e, o.selectedSelector());
7225 P(t, n);
7226 };
7227 return {
7228 clear: u,
7229 selectRange: function (e, t, n, r) {
7230 u(e), P(t, i), pe(n, o.firstSelected(), '1'), pe(r, o.lastSelected(), '1');
7231 },
7232 selectedSelector: o.selectedSelector,
7233 firstSelectedSelector: o.firstSelectedSelector,
7234 lastSelectedSelector: o.lastSelectedSelector,
7235 };
7236 },
7237 },
7238 Vf = function (e) {
7239 return !1 === Ko(De.fromDom(e.target), 'ephox-snooker-resizer-bar');
7240 };
7241 function Gf(h, p) {
7242 var v = re(['mousedown', 'mouseover', 'mouseup', 'keyup', 'keydown'], []),
7243 b = S.none(),
7244 w = qf.byAttr(Mr);
7245 return (
7246 h.on('init', function (e) {
7247 var r = h.getWin(),
7248 o = sa(h),
7249 t = ga(h),
7250 n = Hf.mouse(r, o, t, w),
7251 a = Hf.keyboard(r, o, t, w),
7252 c = function (e, t) {
7253 !0 === e.raw().shiftKey &&
7254 (t.kill() && e.kill(),
7255 t.selection().each(function (e) {
7256 var t = Hc(e.start(), e.finish()),
7257 n = Qc(r, t);
7258 h.selection.setRng(n);
7259 }));
7260 },
7261 i = function (e) {
7262 var t = f(e);
7263 if (t.raw().shiftKey && Bl.isNavigation(t.raw().which)) {
7264 var n = h.selection.getRng(),
7265 r = De.fromDom(n.startContainer),
7266 o = De.fromDom(n.endContainer);
7267 a.keyup(t, r, n.startOffset, o, n.endOffset).each(function (e) {
7268 c(t, e);
7269 });
7270 }
7271 },
7272 u = function (e) {
7273 var t = f(e);
7274 p().each(function (e) {
7275 e.hideBars();
7276 });
7277 var n = h.selection.getRng(),
7278 r = De.fromDom(h.selection.getStart()),
7279 o = De.fromDom(n.startContainer),
7280 i = De.fromDom(n.endContainer),
7281 u = wa.directionAt(r).isRtl() ? Bl.rtl : Bl.ltr;
7282 a.keydown(t, o, n.startOffset, i, n.endOffset, u).each(function (e) {
7283 c(t, e);
7284 }),
7285 p().each(function (e) {
7286 e.showBars();
7287 });
7288 },
7289 l = function (e) {
7290 return e.hasOwnProperty('x') && e.hasOwnProperty('y');
7291 },
7292 f = function (e) {
7293 var t = De.fromDom(e.target),
7294 n = function () {
7295 e.stopPropagation();
7296 },
7297 r = function () {
7298 e.preventDefault();
7299 },
7300 o = x(r, n);
7301 return {
7302 target: C(t),
7303 x: C(l(e) ? e.x : null),
7304 y: C(l(e) ? e.y : null),
7305 stop: n,
7306 prevent: r,
7307 kill: o,
7308 raw: C(e),
7309 };
7310 },
7311 s = function (e) {
7312 return 0 === e.button;
7313 },
7314 d = function (e) {
7315 s(e) && Vf(e) && n.mousedown(f(e));
7316 },
7317 m = function (e) {
7318 var t;
7319 ((t = e).buttons !== undefined && 0 == (1 & t.buttons)) || !Vf(e) || n.mouseover(f(e));
7320 },
7321 g = function (e) {
7322 s(e) && Vf(e) && n.mouseup(f(e));
7323 };
7324 h.on('mousedown', d),
7325 h.on('mouseover', m),
7326 h.on('mouseup', g),
7327 h.on('keyup', i),
7328 h.on('keydown', u),
7329 h.on('nodechange', function () {
7330 var e = h.selection,
7331 t = De.fromDom(e.getStart()),
7332 n = De.fromDom(e.getEnd());
7333 lr.sharedOne(gn.table, [t, n]).fold(function () {
7334 w.clear(o);
7335 }, y);
7336 }),
7337 (b = S.some(v({ mousedown: d, mouseover: m, mouseup: g, keyup: i, keydown: u })));
7338 }),
7339 {
7340 clear: w.clear,
7341 destroy: function () {
7342 b.each(function (e) {});
7343 },
7344 }
7345 );
7346 }
7347 var Yf = _a.each,
7348 Xf = function (t) {
7349 var n = [];
7350 function e(e) {
7351 return function () {
7352 t.execCommand(e);
7353 };
7354 }
7355 Yf('inserttable tableprops deletetable | cell row column'.split(' '), function (e) {
7356 '|' === e ? n.push({ text: '-' }) : n.push(t.menuItems[e]);
7357 }),
7358 t.addButton('table', { type: 'menubutton', title: 'Table', menu: n }),
7359 t.addButton('tableprops', {
7360 title: 'Table properties',
7361 onclick: e('mceTableProps'),
7362 icon: 'table',
7363 }),
7364 t.addButton('tabledelete', { title: 'Delete table', onclick: e('mceTableDelete') }),
7365 t.addButton('tablecellprops', {
7366 title: 'Cell properties',
7367 onclick: e('mceTableCellProps'),
7368 }),
7369 t.addButton('tablemergecells', { title: 'Merge cells', onclick: e('mceTableMergeCells') }),
7370 t.addButton('tablesplitcells', { title: 'Split cell', onclick: e('mceTableSplitCells') }),
7371 t.addButton('tableinsertrowbefore', {
7372 title: 'Insert row before',
7373 onclick: e('mceTableInsertRowBefore'),
7374 }),
7375 t.addButton('tableinsertrowafter', {
7376 title: 'Insert row after',
7377 onclick: e('mceTableInsertRowAfter'),
7378 }),
7379 t.addButton('tabledeleterow', { title: 'Delete row', onclick: e('mceTableDeleteRow') }),
7380 t.addButton('tablerowprops', { title: 'Row properties', onclick: e('mceTableRowProps') }),
7381 t.addButton('tablecutrow', { title: 'Cut row', onclick: e('mceTableCutRow') }),
7382 t.addButton('tablecopyrow', { title: 'Copy row', onclick: e('mceTableCopyRow') }),
7383 t.addButton('tablepasterowbefore', {
7384 title: 'Paste row before',
7385 onclick: e('mceTablePasteRowBefore'),
7386 }),
7387 t.addButton('tablepasterowafter', {
7388 title: 'Paste row after',
7389 onclick: e('mceTablePasteRowAfter'),
7390 }),
7391 t.addButton('tableinsertcolbefore', {
7392 title: 'Insert column before',
7393 onclick: e('mceTableInsertColBefore'),
7394 }),
7395 t.addButton('tableinsertcolafter', {
7396 title: 'Insert column after',
7397 onclick: e('mceTableInsertColAfter'),
7398 }),
7399 t.addButton('tabledeletecol', { title: 'Delete column', onclick: e('mceTableDeleteCol') });
7400 },
7401 Kf = function (t) {
7402 var e,
7403 n =
7404 '' === (e = t.getParam('table_toolbar', ya)) || !1 === e
7405 ? []
7406 : w(e)
7407 ? e.split(/[ ,]/)
7408 : R(e)
7409 ? e
7410 : [];
7411 0 < n.length &&
7412 t.addContextToolbar(function (e) {
7413 return t.dom.is(e, 'table') && t.getBody().contains(e);
7414 }, n.join(' '));
7415 },
7416 Jf = function (o, n) {
7417 var r = S.none(),
7418 i = [],
7419 u = [],
7420 a = [],
7421 c = [],
7422 l = function (e) {
7423 e.disabled(!0);
7424 },
7425 f = function (e) {
7426 e.disabled(!1);
7427 },
7428 e = function () {
7429 var t = this;
7430 i.push(t),
7431 r.fold(
7432 function () {
7433 l(t);
7434 },
7435 function (e) {
7436 f(t);
7437 },
7438 );
7439 },
7440 t = function () {
7441 var t = this;
7442 u.push(t),
7443 r.fold(
7444 function () {
7445 l(t);
7446 },
7447 function (e) {
7448 f(t);
7449 },
7450 );
7451 };
7452 o.on('init', function () {
7453 o.on('nodechange', function (e) {
7454 var t = S.from(o.dom.getParent(o.selection.getStart(), 'th,td'));
7455 (r = t.bind(function (e) {
7456 var t = De.fromDom(e);
7457 return gn.table(t).map(function (e) {
7458 return Gr.forMenu(n, e, t);
7459 });
7460 })).fold(
7461 function () {
7462 P(i, l), P(u, l), P(a, l), P(c, l);
7463 },
7464 function (t) {
7465 P(i, f),
7466 P(u, f),
7467 P(a, function (e) {
7468 e.disabled(t.mergable().isNone());
7469 }),
7470 P(c, function (e) {
7471 e.disabled(t.unmergable().isNone());
7472 });
7473 },
7474 );
7475 });
7476 });
7477 var s = function (e, t, n, r) {
7478 var o,
7479 i,
7480 u,
7481 a,
7482 c,
7483 l = r.getEl().getElementsByTagName('table')[0],
7484 f = r.isRtl() || 'tl-tr' === r.parent().rel;
7485 for (
7486 l.nextSibling.innerHTML = t + 1 + ' x ' + (n + 1), f && (t = 9 - t), i = 0;
7487 i < 10;
7488 i++
7489 )
7490 for (o = 0; o < 10; o++)
7491 (a = l.rows[i].childNodes[o].firstChild),
7492 (c = (f ? t <= o : o <= t) && i <= n),
7493 e.dom.toggleClass(a, 'mce-active', c),
7494 c && (u = a);
7495 return u.parentNode;
7496 },
7497 d =
7498 !1 === o.getParam('table_grid', !0, 'boolean')
7499 ? { text: 'Table', icon: 'table', context: 'table', onclick: m('mceInsertTable') }
7500 : {
7501 text: 'Table',
7502 icon: 'table',
7503 context: 'table',
7504 ariaHideMenu: !0,
7505 onclick: function (e) {
7506 e.aria &&
7507 (this.parent().hideAll(),
7508 e.stopImmediatePropagation(),
7509 o.execCommand('mceInsertTable'));
7510 },
7511 onshow: function () {
7512 s(o, 0, 0, this.menu.items()[0]);
7513 },
7514 onhide: function () {
7515 var e = this.menu.items()[0].getEl().getElementsByTagName('a');
7516 o.dom.removeClass(e, 'mce-active'), o.dom.addClass(e[0], 'mce-active');
7517 },
7518 menu: [
7519 {
7520 type: 'container',
7521 html: (function () {
7522 var e = '';
7523 e =
7524 '<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';
7525 for (var t = 0; t < 10; t++) {
7526 e += '<tr>';
7527 for (var n = 0; n < 10; n++)
7528 e +=
7529 '<td role="gridcell" tabindex="-1"><a id="mcegrid' +
7530 (10 * t + n) +
7531 '" href="#" data-mce-x="' +
7532 n +
7533 '" data-mce-y="' +
7534 t +
7535 '"></a></td>';
7536 e += '</tr>';
7537 }
7538 return (
7539 (e += '</table>'),
7540 (e += '<div class="mce-text-center" role="presentation">1 x 1</div>')
7541 );
7542 })(),
7543 onPostRender: function () {
7544 this.lastX = this.lastY = 0;
7545 },
7546 onmousemove: function (e) {
7547 var t,
7548 n,
7549 r = e.target;
7550 'A' === r.tagName.toUpperCase() &&
7551 ((t = parseInt(r.getAttribute('data-mce-x'), 10)),
7552 (n = parseInt(r.getAttribute('data-mce-y'), 10)),
7553 (this.isRtl() || 'tl-tr' === this.parent().rel) && (t = 9 - t),
7554 (t === this.lastX && n === this.lastY) ||
7555 (s(o, t, n, e.control), (this.lastX = t), (this.lastY = n)));
7556 },
7557 onclick: function (e) {
7558 var t = this;
7559 'A' === e.target.tagName.toUpperCase() &&
7560 (e.preventDefault(),
7561 e.stopPropagation(),
7562 t.parent().cancel(),
7563 o.undoManager.transact(function () {
7564 ec(o, t.lastX + 1, t.lastY + 1);
7565 }),
7566 o.addVisual());
7567 },
7568 },
7569 ],
7570 };
7571 function m(e) {
7572 return function () {
7573 o.execCommand(e);
7574 };
7575 }
7576 var g = {
7577 text: 'Table properties',
7578 context: 'table',
7579 onPostRender: e,
7580 onclick: m('mceTableProps'),
7581 },
7582 h = { text: 'Delete table', context: 'table', onPostRender: e, cmd: 'mceTableDelete' },
7583 p = {
7584 text: 'Row',
7585 context: 'table',
7586 menu: [
7587 { text: 'Insert row before', onclick: m('mceTableInsertRowBefore'), onPostRender: t },
7588 { text: 'Insert row after', onclick: m('mceTableInsertRowAfter'), onPostRender: t },
7589 { text: 'Delete row', onclick: m('mceTableDeleteRow'), onPostRender: t },
7590 { text: 'Row properties', onclick: m('mceTableRowProps'), onPostRender: t },
7591 { text: '-' },
7592 { text: 'Cut row', onclick: m('mceTableCutRow'), onPostRender: t },
7593 { text: 'Copy row', onclick: m('mceTableCopyRow'), onPostRender: t },
7594 { text: 'Paste row before', onclick: m('mceTablePasteRowBefore'), onPostRender: t },
7595 { text: 'Paste row after', onclick: m('mceTablePasteRowAfter'), onPostRender: t },
7596 ],
7597 },
7598 v = {
7599 text: 'Column',
7600 context: 'table',
7601 menu: [
7602 {
7603 text: 'Insert column before',
7604 onclick: m('mceTableInsertColBefore'),
7605 onPostRender: t,
7606 },
7607 { text: 'Insert column after', onclick: m('mceTableInsertColAfter'), onPostRender: t },
7608 { text: 'Delete column', onclick: m('mceTableDeleteCol'), onPostRender: t },
7609 ],
7610 },
7611 b = {
7612 separator: 'before',
7613 text: 'Cell',
7614 context: 'table',
7615 menu: [
7616 { text: 'Cell properties', onclick: m('mceTableCellProps'), onPostRender: t },
7617 {
7618 text: 'Merge cells',
7619 onclick: m('mceTableMergeCells'),
7620 onPostRender: function () {
7621 var t = this;
7622 a.push(t),
7623 r.fold(
7624 function () {
7625 l(t);
7626 },
7627 function (e) {
7628 t.disabled(e.mergable().isNone());
7629 },
7630 );
7631 },
7632 },
7633 {
7634 text: 'Split cell',
7635 onclick: m('mceTableSplitCells'),
7636 onPostRender: function () {
7637 var t = this;
7638 c.push(t),
7639 r.fold(
7640 function () {
7641 l(t);
7642 },
7643 function (e) {
7644 t.disabled(e.unmergable().isNone());
7645 },
7646 );
7647 },
7648 },
7649 ],
7650 };
7651 o.addMenuItem('inserttable', d),
7652 o.addMenuItem('tableprops', g),
7653 o.addMenuItem('deletetable', h),
7654 o.addMenuItem('row', p),
7655 o.addMenuItem('column', v),
7656 o.addMenuItem('cell', b);
7657 },
7658 $f = function (n, r) {
7659 return {
7660 insertTable: function (e, t) {
7661 return ec(n, e, t);
7662 },
7663 setClipboardRows: function (e) {
7664 return (t = r), (n = k(e, De.fromDom)), void t.set(S.from(n));
7665 var t, n;
7666 },
7667 getClipboardRows: function () {
7668 return r.get().fold(
7669 function () {},
7670 function (e) {
7671 return k(e, function (e) {
7672 return e.dom();
7673 });
7674 },
7675 );
7676 },
7677 };
7678 };
7679 e.add('table', function (t) {
7680 var n,
7681 r = Nc(t),
7682 e = Gf(t, r.lazyResize),
7683 o = Wa(t, r.lazyWire),
7684 i =
7685 ((n = t),
7686 {
7687 get: function () {
7688 var e = sa(n);
7689 return kr(e, Mr.selectedSelector()).fold(
7690 function () {
7691 return n.selection.getStart() === undefined ? jr.none() : jr.single(n.selection);
7692 },
7693 function (e) {
7694 return jr.multiple(e);
7695 },
7696 );
7697 },
7698 }),
7699 u = Bu(S.none());
7700 return (
7701 ic(t, o, e, i, u),
7702 Yr(t, i, o, e),
7703 Jf(t, i),
7704 Xf(t),
7705 Kf(t),
7706 t.on('PreInit', function () {
7707 t.serializer.addTempAttr(Mr.firstSelected()), t.serializer.addTempAttr(Mr.lastSelected());
7708 }),
7709 t.getParam('table_tab_navigation', !0, 'boolean') &&
7710 t.on('keydown', function (e) {
7711 El(e, t, o, r.lazyWire);
7712 }),
7713 t.on('remove', function () {
7714 r.destroy(), e.destroy();
7715 }),
7716 $f(t, u)
7717 );
7718 });
7719 })(window);
7720