TinyMCE Advanced - Version 4.8.0

Version Description

  • Updated for WordPress 4.9.8 and TinyMCE 4.8.0.
Download this release

Release Info

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

Code changes from version 4.7.11 to 4.8.0

mce/advlist/plugin.js CHANGED
@@ -10,17 +10,17 @@ var advlist = (function () {
10
  var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';
11
  editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });
12
  };
13
- var $_2gx00q7vjfuviwh8 = { applyListFormat: applyListFormat };
14
 
15
  var register = function (editor) {
16
  editor.addCommand('ApplyUnorderedListStyle', function (ui, value) {
17
- $_2gx00q7vjfuviwh8.applyListFormat(editor, 'UL', value['list-style-type']);
18
  });
19
  editor.addCommand('ApplyOrderedListStyle', function (ui, value) {
20
- $_2gx00q7vjfuviwh8.applyListFormat(editor, 'OL', value['list-style-type']);
21
  });
22
  };
23
- var $_djjlld7ujfuviwh7 = { register: register };
24
 
25
  var getNumberStyles = function (editor) {
26
  var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman');
@@ -30,7 +30,7 @@ var advlist = (function () {
30
  var styles = editor.getParam('advlist_bullet_styles', 'default,circle,disc,square');
31
  return styles ? styles.split(/[ ,]/) : [];
32
  };
33
- var $_24vhad7xjfuviwhc = {
34
  getNumberStyles: getNumberStyles,
35
  getBulletStyles: getBulletStyles
36
  };
@@ -50,7 +50,7 @@ var advlist = (function () {
50
  var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');
51
  return editor.dom.getStyle(listElm, 'listStyleType') || '';
52
  };
53
- var $_6puoap7yjfuviwhd = {
54
  isTableCellNode: isTableCellNode,
55
  isListNode: isListNode,
56
  getSelectedStyleType: getSelectedStyleType
@@ -71,7 +71,7 @@ var advlist = (function () {
71
  };
72
  });
73
  };
74
- var $_dq1tfe7zjfuviwhe = { toMenuItems: toMenuItems };
75
 
76
  var findIndex = function (list, predicate) {
77
  for (var index = 0; index < list.length; index++) {
@@ -86,16 +86,16 @@ var advlist = (function () {
86
  return function (e) {
87
  var ctrl = e.control;
88
  editor.on('NodeChange', function (e) {
89
- var tableCellIndex = findIndex(e.parents, $_6puoap7yjfuviwhd.isTableCellNode);
90
  var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
91
- var lists = global$1.grep(parents, $_6puoap7yjfuviwhd.isListNode(editor));
92
  ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
93
  });
94
  };
95
  };
96
  var updateSelection = function (editor) {
97
  return function (e) {
98
- var listStyleType = $_6puoap7yjfuviwhd.getSelectedStyleType(editor);
99
  e.control.items().each(function (ctrl) {
100
  ctrl.active(ctrl.settings.data === listStyleType);
101
  });
@@ -106,11 +106,11 @@ var advlist = (function () {
106
  active: false,
107
  type: 'splitbutton',
108
  tooltip: tooltip,
109
- menu: $_dq1tfe7zjfuviwhe.toMenuItems(styles),
110
  onPostRender: listState(editor, nodeName),
111
  onshow: updateSelection(editor),
112
  onselect: function (e) {
113
- $_2gx00q7vjfuviwh8.applyListFormat(editor, nodeName, e.control.settings.data);
114
  },
115
  onclick: function () {
116
  editor.execCommand(cmd);
@@ -136,10 +136,10 @@ var advlist = (function () {
136
  }
137
  };
138
  var register$1 = function (editor) {
139
- addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', $_24vhad7xjfuviwhc.getNumberStyles(editor));
140
- addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', $_24vhad7xjfuviwhc.getBulletStyles(editor));
141
  };
142
- var $_esepsw7wjfuviwha = { register: register$1 };
143
 
144
  global.add('advlist', function (editor) {
145
  var hasPlugin = function (editor, plugin) {
@@ -147,8 +147,8 @@ var advlist = (function () {
147
  return global$1.inArray(plugins.split(/[ ,]/), plugin) !== -1;
148
  };
149
  if (hasPlugin(editor, 'lists')) {
150
- $_esepsw7wjfuviwha.register(editor);
151
- $_djjlld7ujfuviwh7.register(editor);
152
  }
153
  });
154
  function Plugin () {
10
  var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';
11
  editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });
12
  };
13
+ var $_55i96w8fjjgwebbz = { applyListFormat: applyListFormat };
14
 
15
  var register = function (editor) {
16
  editor.addCommand('ApplyUnorderedListStyle', function (ui, value) {
17
+ $_55i96w8fjjgwebbz.applyListFormat(editor, 'UL', value['list-style-type']);
18
  });
19
  editor.addCommand('ApplyOrderedListStyle', function (ui, value) {
20
+ $_55i96w8fjjgwebbz.applyListFormat(editor, 'OL', value['list-style-type']);
21
  });
22
  };
23
+ var $_46kte48ejjgwebby = { register: register };
24
 
25
  var getNumberStyles = function (editor) {
26
  var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman');
30
  var styles = editor.getParam('advlist_bullet_styles', 'default,circle,disc,square');
31
  return styles ? styles.split(/[ ,]/) : [];
32
  };
33
+ var $_7slyeq8hjjgwebc3 = {
34
  getNumberStyles: getNumberStyles,
35
  getBulletStyles: getBulletStyles
36
  };
50
  var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul');
51
  return editor.dom.getStyle(listElm, 'listStyleType') || '';
52
  };
53
+ var $_brk9p8ijjgwebc5 = {
54
  isTableCellNode: isTableCellNode,
55
  isListNode: isListNode,
56
  getSelectedStyleType: getSelectedStyleType
71
  };
72
  });
73
  };
74
+ var $_7hivrd8jjjgwebc6 = { toMenuItems: toMenuItems };
75
 
76
  var findIndex = function (list, predicate) {
77
  for (var index = 0; index < list.length; index++) {
86
  return function (e) {
87
  var ctrl = e.control;
88
  editor.on('NodeChange', function (e) {
89
+ var tableCellIndex = findIndex(e.parents, $_brk9p8ijjgwebc5.isTableCellNode);
90
  var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
91
+ var lists = global$1.grep(parents, $_brk9p8ijjgwebc5.isListNode(editor));
92
  ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
93
  });
94
  };
95
  };
96
  var updateSelection = function (editor) {
97
  return function (e) {
98
+ var listStyleType = $_brk9p8ijjgwebc5.getSelectedStyleType(editor);
99
  e.control.items().each(function (ctrl) {
100
  ctrl.active(ctrl.settings.data === listStyleType);
101
  });
106
  active: false,
107
  type: 'splitbutton',
108
  tooltip: tooltip,
109
+ menu: $_7hivrd8jjjgwebc6.toMenuItems(styles),
110
  onPostRender: listState(editor, nodeName),
111
  onshow: updateSelection(editor),
112
  onselect: function (e) {
113
+ $_55i96w8fjjgwebbz.applyListFormat(editor, nodeName, e.control.settings.data);
114
  },
115
  onclick: function () {
116
  editor.execCommand(cmd);
136
  }
137
  };
138
  var register$1 = function (editor) {
139
+ addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', $_7slyeq8hjjgwebc3.getNumberStyles(editor));
140
+ addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', $_7slyeq8hjjgwebc3.getBulletStyles(editor));
141
  };
142
+ var $_fnebj78gjjgwebc0 = { register: register$1 };
143
 
144
  global.add('advlist', function (editor) {
145
  var hasPlugin = function (editor, plugin) {
147
  return global$1.inArray(plugins.split(/[ ,]/), plugin) !== -1;
148
  };
149
  if (hasPlugin(editor, 'lists')) {
150
+ $_fnebj78gjjgwebc0.register(editor);
151
+ $_46kte48ejjgwebby.register(editor);
152
  }
153
  });
154
  function Plugin () {
mce/anchor/plugin.js CHANGED
@@ -18,29 +18,30 @@ var anchor = (function () {
18
  if (isAnchor) {
19
  selectedNode.removeAttribute('name');
20
  selectedNode.id = id;
 
21
  } else {
22
  editor.focus();
23
  editor.selection.collapse(true);
24
  editor.execCommand('mceInsertContent', false, editor.dom.createHTML('a', { id: id }));
25
  }
26
  };
27
- var $_4ofr6484jfuviwhx = {
28
  isValidId: isValidId,
29
  getId: getId,
30
  insert: insert
31
  };
32
 
33
  var insertAnchor = function (editor, newId) {
34
- if (!$_4ofr6484jfuviwhx.isValidId(newId)) {
35
  editor.windowManager.alert('Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.');
36
  return true;
37
  } else {
38
- $_4ofr6484jfuviwhx.insert(editor, newId);
39
  return false;
40
  }
41
  };
42
  var open = function (editor) {
43
- var currentId = $_4ofr6484jfuviwhx.getId(editor);
44
  editor.windowManager.open({
45
  title: 'Anchor',
46
  body: {
@@ -58,14 +59,14 @@ var anchor = (function () {
58
  }
59
  });
60
  };
61
- var $_5ybsb183jfuviwhw = { open: open };
62
 
63
  var register = function (editor) {
64
  editor.addCommand('mceAnchor', function () {
65
- $_5ybsb183jfuviwhw.open(editor);
66
  });
67
  };
68
- var $_bu68pd82jfuviwhv = { register: register };
69
 
70
  var isAnchorNode = function (node) {
71
  return !node.attr('href') && (node.attr('id') || node.attr('name')) && !node.firstChild;
@@ -85,7 +86,7 @@ var anchor = (function () {
85
  editor.serializer.addNodeFilter('a', setContentEditable(null));
86
  });
87
  };
88
- var $_7q0hk685jfuviwhy = { setup: setup };
89
 
90
  var register$1 = function (editor) {
91
  editor.addButton('anchor', {
@@ -101,12 +102,12 @@ var anchor = (function () {
101
  cmd: 'mceAnchor'
102
  });
103
  };
104
- var $_5nc4wj86jfuviwi0 = { register: register$1 };
105
 
106
  global.add('anchor', function (editor) {
107
- $_7q0hk685jfuviwhy.setup(editor);
108
- $_bu68pd82jfuviwhv.register(editor);
109
- $_5nc4wj86jfuviwi0.register(editor);
110
  });
111
  function Plugin () {
112
  }
18
  if (isAnchor) {
19
  selectedNode.removeAttribute('name');
20
  selectedNode.id = id;
21
+ editor.undoManager.add();
22
  } else {
23
  editor.focus();
24
  editor.selection.collapse(true);
25
  editor.execCommand('mceInsertContent', false, editor.dom.createHTML('a', { id: id }));
26
  }
27
  };
28
+ var $_30p5pl8ojjgwebcv = {
29
  isValidId: isValidId,
30
  getId: getId,
31
  insert: insert
32
  };
33
 
34
  var insertAnchor = function (editor, newId) {
35
+ if (!$_30p5pl8ojjgwebcv.isValidId(newId)) {
36
  editor.windowManager.alert('Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.');
37
  return true;
38
  } else {
39
+ $_30p5pl8ojjgwebcv.insert(editor, newId);
40
  return false;
41
  }
42
  };
43
  var open = function (editor) {
44
+ var currentId = $_30p5pl8ojjgwebcv.getId(editor);
45
  editor.windowManager.open({
46
  title: 'Anchor',
47
  body: {
59
  }
60
  });
61
  };
62
+ var $_ctaozd8njjgwebct = { open: open };
63
 
64
  var register = function (editor) {
65
  editor.addCommand('mceAnchor', function () {
66
+ $_ctaozd8njjgwebct.open(editor);
67
  });
68
  };
69
+ var $_7z79du8mjjgwebcr = { register: register };
70
 
71
  var isAnchorNode = function (node) {
72
  return !node.attr('href') && (node.attr('id') || node.attr('name')) && !node.firstChild;
86
  editor.serializer.addNodeFilter('a', setContentEditable(null));
87
  });
88
  };
89
+ var $_fm0e98pjjgwebcx = { setup: setup };
90
 
91
  var register$1 = function (editor) {
92
  editor.addButton('anchor', {
102
  cmd: 'mceAnchor'
103
  });
104
  };
105
+ var $_fq1n8m8qjjgwebcz = { register: register$1 };
106
 
107
  global.add('anchor', function (editor) {
108
+ $_fm0e98pjjgwebcx.setup(editor);
109
+ $_7z79du8mjjgwebcr.register(editor);
110
+ $_fq1n8m8qjjgwebcz.register(editor);
111
  });
112
  function Plugin () {
113
  }
mce/anchor/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},e=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.id||e.name:""},i=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},n=function(r){var t=e(r);r.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:t},onsubmit:function(t){var e,n,o=t.data.id;e=r,(a(n=o)?(i(e,n),0):(e.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),1))&&t.preventDefault()}})},o=function(t){t.addCommand("mceAnchor",function(){n(t)})},r=function(o){return function(t){for(var e=0;e<t.length;e++)(n=t[e]).attr("href")||!n.attr("id")&&!n.attr("name")||n.firstChild||t[e].attr("contenteditable",o);var n}},c=function(t){t.on("PreInit",function(){t.parser.addNodeFilter("a",r("false")),t.serializer.addNodeFilter("a",r(null))})},d=function(t){t.addButton("anchor",{icon:"anchor",tooltip:"Anchor",cmd:"mceAnchor",stateSelector:"a:not([href])"}),t.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",cmd:"mceAnchor"})};t.add("anchor",function(t){c(t),o(t),d(t)})}();
1
+ !function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(t){return/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)},e=function(t){var e=t.selection.getNode();return"A"===e.tagName&&""===t.dom.getAttrib(e,"href")?e.id||e.name:""},i=function(t,e){var n=t.selection.getNode();"A"===n.tagName&&""===t.dom.getAttrib(n,"href")?(n.removeAttribute("name"),n.id=e,t.undoManager.add()):(t.focus(),t.selection.collapse(!0),t.execCommand("mceInsertContent",!1,t.dom.createHTML("a",{id:e})))},n=function(r){var t=e(r);r.windowManager.open({title:"Anchor",body:{type:"textbox",name:"id",size:40,label:"Id",value:t},onsubmit:function(t){var e,n,o=t.data.id;e=r,(a(n=o)?(i(e,n),0):(e.windowManager.alert("Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),1))&&t.preventDefault()}})},o=function(t){t.addCommand("mceAnchor",function(){n(t)})},r=function(o){return function(t){for(var e=0;e<t.length;e++)(n=t[e]).attr("href")||!n.attr("id")&&!n.attr("name")||n.firstChild||t[e].attr("contenteditable",o);var n}},c=function(t){t.on("PreInit",function(){t.parser.addNodeFilter("a",r("false")),t.serializer.addNodeFilter("a",r(null))})},d=function(t){t.addButton("anchor",{icon:"anchor",tooltip:"Anchor",cmd:"mceAnchor",stateSelector:"a:not([href])"}),t.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",cmd:"mceAnchor"})};t.add("anchor",function(t){c(t),o(t),d(t)})}();
mce/code/plugin.js CHANGED
@@ -12,7 +12,7 @@ var code = (function () {
12
  var getMinHeight = function (editor) {
13
  return editor.getParam('code_dialog_height', Math.min(global$1.DOM.getViewPort().h - 200, 500));
14
  };
15
- var $_8sda989hjfuviwmn = {
16
  getMinWidth: getMinWidth,
17
  getMinHeight: getMinHeight
18
  };
@@ -28,14 +28,14 @@ var code = (function () {
28
  var getContent = function (editor) {
29
  return editor.getContent({ source_view: true });
30
  };
31
- var $_a8y3nm9jjfuviwmp = {
32
  setContent: setContent,
33
  getContent: getContent
34
  };
35
 
36
  var open = function (editor) {
37
- var minWidth = $_8sda989hjfuviwmn.getMinWidth(editor);
38
- var minHeight = $_8sda989hjfuviwmn.getMinHeight(editor);
39
  var win = editor.windowManager.open({
40
  title: 'Source code',
41
  body: {
@@ -48,41 +48,41 @@ var code = (function () {
48
  style: 'direction: ltr; text-align: left'
49
  },
50
  onSubmit: function (e) {
51
- $_a8y3nm9jjfuviwmp.setContent(editor, e.data.code);
52
  }
53
  });
54
- win.find('#code').value($_a8y3nm9jjfuviwmp.getContent(editor));
55
  };
56
- var $_1358eu9gjfuviwml = { open: open };
57
 
58
  var register = function (editor) {
59
  editor.addCommand('mceCodeEditor', function () {
60
- $_1358eu9gjfuviwml.open(editor);
61
  });
62
  };
63
- var $_d03lq09fjfuviwmj = { register: register };
64
 
65
  var register$1 = function (editor) {
66
  editor.addButton('code', {
67
  icon: 'code',
68
  tooltip: 'Source code',
69
  onclick: function () {
70
- $_1358eu9gjfuviwml.open(editor);
71
  }
72
  });
73
  editor.addMenuItem('code', {
74
  icon: 'code',
75
  text: 'Source code',
76
  onclick: function () {
77
- $_1358eu9gjfuviwml.open(editor);
78
  }
79
  });
80
  };
81
- var $_g7tt9y9kjfuviwmp = { register: register$1 };
82
 
83
  global.add('code', function (editor) {
84
- $_d03lq09fjfuviwmj.register(editor);
85
- $_g7tt9y9kjfuviwmp.register(editor);
86
  return {};
87
  });
88
  function Plugin () {
12
  var getMinHeight = function (editor) {
13
  return editor.getParam('code_dialog_height', Math.min(global$1.DOM.getViewPort().h - 200, 500));
14
  };
15
+ var $_bkj0vta2jjgwebiu = {
16
  getMinWidth: getMinWidth,
17
  getMinHeight: getMinHeight
18
  };
28
  var getContent = function (editor) {
29
  return editor.getContent({ source_view: true });
30
  };
31
+ var $_bnaf14a4jjgwebiw = {
32
  setContent: setContent,
33
  getContent: getContent
34
  };
35
 
36
  var open = function (editor) {
37
+ var minWidth = $_bkj0vta2jjgwebiu.getMinWidth(editor);
38
+ var minHeight = $_bkj0vta2jjgwebiu.getMinHeight(editor);
39
  var win = editor.windowManager.open({
40
  title: 'Source code',
41
  body: {
48
  style: 'direction: ltr; text-align: left'
49
  },
50
  onSubmit: function (e) {
51
+ $_bnaf14a4jjgwebiw.setContent(editor, e.data.code);
52
  }
53
  });
54
+ win.find('#code').value($_bnaf14a4jjgwebiw.getContent(editor));
55
  };
56
+ var $_7n1iuxa1jjgwebit = { open: open };
57
 
58
  var register = function (editor) {
59
  editor.addCommand('mceCodeEditor', function () {
60
+ $_7n1iuxa1jjgwebit.open(editor);
61
  });
62
  };
63
+ var $_7j029sa0jjgwebis = { register: register };
64
 
65
  var register$1 = function (editor) {
66
  editor.addButton('code', {
67
  icon: 'code',
68
  tooltip: 'Source code',
69
  onclick: function () {
70
+ $_7n1iuxa1jjgwebit.open(editor);
71
  }
72
  });
73
  editor.addMenuItem('code', {
74
  icon: 'code',
75
  text: 'Source code',
76
  onclick: function () {
77
+ $_7n1iuxa1jjgwebit.open(editor);
78
  }
79
  });
80
  };
81
+ var $_dv9koca5jjgwebix = { register: register$1 };
82
 
83
  global.add('code', function (editor) {
84
+ $_7j029sa0jjgwebis.register(editor);
85
+ $_dv9koca5jjgwebix.register(editor);
86
  return {};
87
  });
88
  function Plugin () {
mce/contextmenu/plugin.js CHANGED
@@ -28,7 +28,7 @@ var contextmenu = (function () {
28
  };
29
  return { isContextMenuVisible: isContextMenuVisible };
30
  };
31
- var $_e8837ea6jfuviwq2 = { get: get };
32
 
33
  var shouldNeverUseNative = function (editor) {
34
  return editor.settings.contextmenu_never_use_native;
@@ -36,7 +36,7 @@ var contextmenu = (function () {
36
  var getContextMenu = function (editor) {
37
  return editor.getParam('contextmenu', 'link openlink image inserttable | cell row column deletetable');
38
  };
39
- var $_4c31s3a8jfuviwq5 = {
40
  shouldNeverUseNative: shouldNeverUseNative,
41
  getContextMenu: getContextMenu
42
  };
@@ -84,7 +84,7 @@ var contextmenu = (function () {
84
  return transposeUiContainer(getUiContainer(editor), iframePos);
85
  }
86
  };
87
- var $_dmx61la9jfuviwq6 = { getPos: getPos };
88
 
89
  var global$2 = tinymce.util.Tools.resolve('tinymce.ui.Factory');
90
 
@@ -93,7 +93,7 @@ var contextmenu = (function () {
93
  var renderMenu = function (editor, visibleState) {
94
  var menu, contextmenu;
95
  var items = [];
96
- contextmenu = $_4c31s3a8jfuviwq5.getContextMenu(editor);
97
  global$3.each(contextmenu.split(/[ ,]/), function (name) {
98
  var item = editor.menuItems[name];
99
  if (name === '|') {
@@ -138,10 +138,10 @@ var contextmenu = (function () {
138
  menu.get().moveTo(pos.x, pos.y);
139
  visibleState.set(true);
140
  };
141
- var $_brl8zkacjfuviwqa = { show: show };
142
 
143
  var isNativeOverrideKeyEvent = function (editor, e) {
144
- return e.ctrlKey && !$_4c31s3a8jfuviwq5.shouldNeverUseNative(editor);
145
  };
146
  var setup = function (editor, visibleState, menu) {
147
  editor.on('contextmenu', function (e) {
@@ -149,15 +149,15 @@ var contextmenu = (function () {
149
  return;
150
  }
151
  e.preventDefault();
152
- $_brl8zkacjfuviwqa.show(editor, $_dmx61la9jfuviwq6.getPos(editor, e), visibleState, menu);
153
  });
154
  };
155
- var $_8an0yta7jfuviwq3 = { setup: setup };
156
 
157
  global.add('contextmenu', function (editor) {
158
  var menu = Cell(null), visibleState = Cell(false);
159
- $_8an0yta7jfuviwq3.setup(editor, visibleState, menu);
160
- return $_e8837ea6jfuviwq2.get(visibleState);
161
  });
162
  function Plugin () {
163
  }
28
  };
29
  return { isContextMenuVisible: isContextMenuVisible };
30
  };
31
+ var $_5vudh2asjjgwebne = { get: get };
32
 
33
  var shouldNeverUseNative = function (editor) {
34
  return editor.settings.contextmenu_never_use_native;
36
  var getContextMenu = function (editor) {
37
  return editor.getParam('contextmenu', 'link openlink image inserttable | cell row column deletetable');
38
  };
39
+ var $_4636zoaujjgwebng = {
40
  shouldNeverUseNative: shouldNeverUseNative,
41
  getContextMenu: getContextMenu
42
  };
84
  return transposeUiContainer(getUiContainer(editor), iframePos);
85
  }
86
  };
87
+ var $_2f1lclavjjgwebni = { getPos: getPos };
88
 
89
  var global$2 = tinymce.util.Tools.resolve('tinymce.ui.Factory');
90
 
93
  var renderMenu = function (editor, visibleState) {
94
  var menu, contextmenu;
95
  var items = [];
96
+ contextmenu = $_4636zoaujjgwebng.getContextMenu(editor);
97
  global$3.each(contextmenu.split(/[ ,]/), function (name) {
98
  var item = editor.menuItems[name];
99
  if (name === '|') {
138
  menu.get().moveTo(pos.x, pos.y);
139
  visibleState.set(true);
140
  };
141
+ var $_2wktdwayjjgwebnm = { show: show };
142
 
143
  var isNativeOverrideKeyEvent = function (editor, e) {
144
+ return e.ctrlKey && !$_4636zoaujjgwebng.shouldNeverUseNative(editor);
145
  };
146
  var setup = function (editor, visibleState, menu) {
147
  editor.on('contextmenu', function (e) {
149
  return;
150
  }
151
  e.preventDefault();
152
+ $_2wktdwayjjgwebnm.show(editor, $_2f1lclavjjgwebni.getPos(editor, e), visibleState, menu);
153
  });
154
  };
155
+ var $_9lxnq5atjjgwebnf = { setup: setup };
156
 
157
  global.add('contextmenu', function (editor) {
158
  var menu = Cell(null), visibleState = Cell(false);
159
+ $_9lxnq5atjjgwebnf.setup(editor, visibleState, menu);
160
+ return $_5vudh2asjjgwebne.get(visibleState);
161
  });
162
  function Plugin () {
163
  }
mce/importcss/plugin.js CHANGED
@@ -33,7 +33,7 @@ var importcss = (function () {
33
  var getFileFilter = function (editor) {
34
  return editor.getParam('importcss_file_filter');
35
  };
36
- var $_fk1yq1ekjfuvixbf = {
37
  shouldMergeClasses: shouldMergeClasses,
38
  shouldImportExclusive: shouldImportExclusive,
39
  getSelectorConverter: getSelectorConverter,
@@ -136,7 +136,7 @@ var importcss = (function () {
136
  classes: classes
137
  };
138
  }
139
- if ($_fk1yq1ekjfuvixbf.shouldMergeClasses(editor) !== false) {
140
  format.classes = classes;
141
  } else {
142
  format.attributes = { class: classes };
@@ -162,7 +162,7 @@ var importcss = (function () {
162
  });
163
  };
164
  var isExclusiveMode = function (editor, group) {
165
- return group === null || $_fk1yq1ekjfuvixbf.shouldImportExclusive(editor) !== false;
166
  };
167
  var isUniqueSelector = function (editor, selector, group, globallyUniqueSelectors) {
168
  return !(isExclusiveMode(editor, group) ? selector in globallyUniqueSelectors : selector in group.selectors);
@@ -178,8 +178,8 @@ var importcss = (function () {
178
  var selectorConverter;
179
  if (group && group.selector_converter) {
180
  selectorConverter = group.selector_converter;
181
- } else if ($_fk1yq1ekjfuvixbf.getSelectorConverter(editor)) {
182
- selectorConverter = $_fk1yq1ekjfuvixbf.getSelectorConverter(editor);
183
  } else {
184
  selectorConverter = function () {
185
  return defaultConvertSelectorToFormat(editor, selector);
@@ -190,8 +190,8 @@ var importcss = (function () {
190
  var setup = function (editor) {
191
  editor.on('renderFormatsMenu', function (e) {
192
  var globallyUniqueSelectors = {};
193
- var selectorFilter = compileFilter($_fk1yq1ekjfuvixbf.getSelectorFilter(editor)), ctrl = e.control;
194
- var groups = compileUserDefinedGroups($_fk1yq1ekjfuvixbf.getCssGroups(editor));
195
  var processSelector = function (selector, group) {
196
  if (isUniqueSelector(editor, selector, group, globallyUniqueSelectors)) {
197
  markUniqueSelector(editor, selector, group, globallyUniqueSelectors);
@@ -207,10 +207,10 @@ var importcss = (function () {
207
  }
208
  return null;
209
  };
210
- if (!$_fk1yq1ekjfuvixbf.shouldAppend(editor)) {
211
  ctrl.items().remove();
212
  }
213
- global$4.each(getSelectors(editor, e.doc || editor.getDoc(), compileFilter($_fk1yq1ekjfuvixbf.getFileFilter(editor))), function (selector) {
214
  if (selector.indexOf('.mce-') === -1) {
215
  if (!selectorFilter || selectorFilter(selector)) {
216
  var selectorGroups = getGroupsBySelector(groups, selector);
@@ -238,22 +238,22 @@ var importcss = (function () {
238
  e.control.renderNew();
239
  });
240
  };
241
- var $_5jwc62efjfuvixb9 = {
242
  defaultConvertSelectorToFormat: defaultConvertSelectorToFormat,
243
  setup: setup
244
  };
245
 
246
  var get = function (editor) {
247
  var convertSelectorToFormat = function (selectorText) {
248
- return $_5jwc62efjfuvixb9.defaultConvertSelectorToFormat(editor, selectorText);
249
  };
250
  return { convertSelectorToFormat: convertSelectorToFormat };
251
  };
252
- var $_fn57p9eejfuvixb6 = { get: get };
253
 
254
  global.add('importcss', function (editor) {
255
- $_5jwc62efjfuvixb9.setup(editor);
256
- return $_fn57p9eejfuvixb6.get(editor);
257
  });
258
  function Plugin () {
259
  }
33
  var getFileFilter = function (editor) {
34
  return editor.getParam('importcss_file_filter');
35
  };
36
+ var $_31k679fcjjgwecfk = {
37
  shouldMergeClasses: shouldMergeClasses,
38
  shouldImportExclusive: shouldImportExclusive,
39
  getSelectorConverter: getSelectorConverter,
136
  classes: classes
137
  };
138
  }
139
+ if ($_31k679fcjjgwecfk.shouldMergeClasses(editor) !== false) {
140
  format.classes = classes;
141
  } else {
142
  format.attributes = { class: classes };
162
  });
163
  };
164
  var isExclusiveMode = function (editor, group) {
165
+ return group === null || $_31k679fcjjgwecfk.shouldImportExclusive(editor) !== false;
166
  };
167
  var isUniqueSelector = function (editor, selector, group, globallyUniqueSelectors) {
168
  return !(isExclusiveMode(editor, group) ? selector in globallyUniqueSelectors : selector in group.selectors);
178
  var selectorConverter;
179
  if (group && group.selector_converter) {
180
  selectorConverter = group.selector_converter;
181
+ } else if ($_31k679fcjjgwecfk.getSelectorConverter(editor)) {
182
+ selectorConverter = $_31k679fcjjgwecfk.getSelectorConverter(editor);
183
  } else {
184
  selectorConverter = function () {
185
  return defaultConvertSelectorToFormat(editor, selector);
190
  var setup = function (editor) {
191
  editor.on('renderFormatsMenu', function (e) {
192
  var globallyUniqueSelectors = {};
193
+ var selectorFilter = compileFilter($_31k679fcjjgwecfk.getSelectorFilter(editor)), ctrl = e.control;
194
+ var groups = compileUserDefinedGroups($_31k679fcjjgwecfk.getCssGroups(editor));
195
  var processSelector = function (selector, group) {
196
  if (isUniqueSelector(editor, selector, group, globallyUniqueSelectors)) {
197
  markUniqueSelector(editor, selector, group, globallyUniqueSelectors);
207
  }
208
  return null;
209
  };
210
+ if (!$_31k679fcjjgwecfk.shouldAppend(editor)) {
211
  ctrl.items().remove();
212
  }
213
+ global$4.each(getSelectors(editor, e.doc || editor.getDoc(), compileFilter($_31k679fcjjgwecfk.getFileFilter(editor))), function (selector) {
214
  if (selector.indexOf('.mce-') === -1) {
215
  if (!selectorFilter || selectorFilter(selector)) {
216
  var selectorGroups = getGroupsBySelector(groups, selector);
238
  e.control.renderNew();
239
  });
240
  };
241
+ var $_c4mxymf7jjgwecfd = {
242
  defaultConvertSelectorToFormat: defaultConvertSelectorToFormat,
243
  setup: setup
244
  };
245
 
246
  var get = function (editor) {
247
  var convertSelectorToFormat = function (selectorText) {
248
+ return $_c4mxymf7jjgwecfd.defaultConvertSelectorToFormat(editor, selectorText);
249
  };
250
  return { convertSelectorToFormat: convertSelectorToFormat };
251
  };
252
+ var $_9a1lwcf6jjgwecf8 = { get: get };
253
 
254
  global.add('importcss', function (editor) {
255
+ $_c4mxymf7jjgwecfd.setup(editor);
256
+ return $_9a1lwcf6jjgwecf8.get(editor);
257
  });
258
  function Plugin () {
259
  }
mce/importcss/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),n=tinymce.util.Tools.resolve("tinymce.Env"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(e){return e.getParam("importcss_merge_classes")},r=function(e){return e.getParam("importcss_exclusive")},_=function(e){return e.getParam("importcss_selector_converter")},u=function(e){return e.getParam("importcss_selector_filter")},l=function(e){return e.getParam("importcss_groups")},a=function(e){return e.getParam("importcss_append")},f=function(e){return e.getParam("importcss_file_filter")},m=function(e){var t=n.cacheSuffix;return"string"==typeof e&&(e=e.replace("?"+t,"").replace("&"+t,"")),e},g=function(e,t){var n=e.settings,r=!1!==n.skin&&(n.skin||"lightgray");return!!r&&t===(n.skin_url?e.documentBaseURI.toAbsolute(n.skin_url):i.baseURL+"/skins/"+r)+"/content"+(e.inline?".inline":"")+".min.css"},x=function(t){return"string"==typeof t?function(e){return-1!==e.indexOf(t)}:t instanceof RegExp?function(e){return t.test(e)}:t},T=function(o,e,s){var u=[],n={};y.each(o.contentCSS,function(e){n[e]=!0}),s||(s=function(e,t){return t||n[e]});try{y.each(e.styleSheets,function(e){!function t(e,n){var r,i=e.href;if((i=m(i))&&s(i,n)&&!g(o,i)){y.each(e.imports,function(e){t(e,!0)});try{r=e.cssRules||e.rules}catch(c){}y.each(r,function(e){e.styleSheet?t(e.styleSheet,!0):e.selectorText&&y.each(e.selectorText.split(","),function(e){u.push(y.trim(e))})})}}(e)})}catch(t){}return u},k=function(e,t){var n,r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(r){var i=r[1],c=r[2].substr(1).split(".").join(" "),o=y.makeMap("a,img");return r[1]?(n={title:t},e.schema.getTextBlockElements()[i]?n.block=i:e.schema.getBlockElements()[i]||o[i.toLowerCase()]?n.selector=i:n.inline=i):r[2]&&(n={inline:"span",title:t.substr(1),classes:c}),!1!==s(e)?n.classes=c:n.attributes={"class":c},n}},P=function(e,t){return null===t||!1!==r(e)},c=k,t=function(h){h.on("renderFormatsMenu",function(e){var t,p={},c=x(u(h)),v=e.control,o=(t=l(h),y.map(t,function(e){return y.extend({},e,{original:e,selectors:{},filter:x(e.filter),item:{text:e.title,menu:[]}})})),s=function(e,t){if(f=e,g=p,!(P(h,m=t)?f in g:f in m.selectors)){u=e,a=p,P(h,l=t)?a[u]=!0:l.selectors[u]=!0;var n=(c=(i=h).plugins.importcss,o=e,((s=t)&&s.selector_converter?s.selector_converter:_(i)?_(i):function(){return k(i,o)}).call(c,o,s));if(n){var r=n.name||d.DOM.uniqueId();return h.formatter.register(r,n),y.extend({},v.settings.itemDefaults,{text:n.title,format:r})}}var i,c,o,s,u,l,a,f,m,g;return null};a(h)||v.items().remove(),y.each(T(h,e.doc||h.getDoc(),x(f(h))),function(n){if(-1===n.indexOf(".mce-")&&(!c||c(n))){var e=(r=o,i=n,y.grep(r,function(e){return!e.filter||e.filter(i)}));if(0<e.length)y.each(e,function(e){var t=s(n,e);t&&e.item.menu.push(t)});else{var t=s(n,null);t&&v.add(t)}}var r,i}),y.each(o,function(e){0<e.item.menu.length&&v.add(e.item)}),e.control.renderNew()})},o=function(t){return{convertSelectorToFormat:function(e){return c(t,e)}}};e.add("importcss",function(e){return t(e),o(e)})}();
1
+ !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),v=tinymce.util.Tools.resolve("tinymce.EditorManager"),h=tinymce.util.Tools.resolve("tinymce.Env"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(e){return e.getParam("importcss_merge_classes")},n=function(e){return e.getParam("importcss_exclusive")},_=function(e){return e.getParam("importcss_selector_converter")},r=function(e){return e.getParam("importcss_selector_filter")},i=function(e){return e.getParam("importcss_groups")},u=function(e){return e.getParam("importcss_append")},l=function(e){return e.getParam("importcss_file_filter")},a=function(t){return"string"==typeof t?function(e){return-1!==e.indexOf(t)}:t instanceof RegExp?function(e){return t.test(e)}:t},f=function(f,e,m){var g=[],n={};function p(e,t){var n,r,i,c=e.href;if(r=c,i=h.cacheSuffix,"string"==typeof r&&(r=r.replace("?"+i,"").replace("&"+i,"")),(c=r)&&m(c,t)&&(o=c,u=(s=f).settings,!(l=!1!==u.skin&&(u.skin||"lightgray"))||o!==(u.skin_url?s.documentBaseURI.toAbsolute(u.skin_url):v.baseURL+"/skins/"+l)+"/content"+(s.inline?".inline":"")+".min.css")){var s,o,u,l;y.each(e.imports,function(e){p(e,!0)});try{n=e.cssRules||e.rules}catch(a){}y.each(n,function(e){e.styleSheet?p(e.styleSheet,!0):e.selectorText&&y.each(e.selectorText.split(","),function(e){g.push(y.trim(e))})})}}y.each(f.contentCSS,function(e){n[e]=!0}),m||(m=function(e,t){return t||n[e]});try{y.each(e.styleSheets,function(e){p(e)})}catch(t){}return g},x=function(e,t){var n,r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(r){var i=r[1],c=r[2].substr(1).split(".").join(" "),s=y.makeMap("a,img");return r[1]?(n={title:t},e.schema.getTextBlockElements()[i]?n.block=i:e.schema.getBlockElements()[i]||s[i.toLowerCase()]?n.selector=i:n.inline=i):r[2]&&(n={inline:"span",title:t.substr(1),classes:c}),!1!==o(e)?n.classes=c:n.attributes={"class":c},n}},T=function(e,t){return null===t||!1!==n(e)},c=x,t=function(h){h.on("renderFormatsMenu",function(e){var t,p={},c=a(r(h)),v=e.control,s=(t=i(h),y.map(t,function(e){return y.extend({},e,{original:e,selectors:{},filter:a(e.filter),item:{text:e.title,menu:[]}})})),o=function(e,t){if(f=e,g=p,!(T(h,m=t)?f in g:f in m.selectors)){u=e,a=p,T(h,l=t)?a[u]=!0:l.selectors[u]=!0;var n=(c=(i=h).plugins.importcss,s=e,((o=t)&&o.selector_converter?o.selector_converter:_(i)?_(i):function(){return x(i,s)}).call(c,s,o));if(n){var r=n.name||d.DOM.uniqueId();return h.formatter.register(r,n),y.extend({},v.settings.itemDefaults,{text:n.title,format:r})}}var i,c,s,o,u,l,a,f,m,g;return null};u(h)||v.items().remove(),y.each(f(h,e.doc||h.getDoc(),a(l(h))),function(n){if(-1===n.indexOf(".mce-")&&(!c||c(n))){var e=(r=s,i=n,y.grep(r,function(e){return!e.filter||e.filter(i)}));if(0<e.length)y.each(e,function(e){var t=o(n,e);t&&e.item.menu.push(t)});else{var t=o(n,null);t&&v.add(t)}}var r,i}),y.each(s,function(e){0<e.item.menu.length&&v.add(e.item)}),e.control.renderNew()})},s=function(t){return{convertSelectorToFormat:function(e){return c(t,e)}}};e.add("importcss",function(e){return t(e),s(e)})}();
mce/insertdatetime/plugin.js CHANGED
@@ -43,7 +43,7 @@ var insertdatetime = (function () {
43
  var shouldInsertTimeElement = function (editor) {
44
  return editor.getParam('insertdatetime_element', false);
45
  };
46
- var $_964311epjfuvixc1 = {
47
  getDateFormat: getDateFormat,
48
  getTimeFormat: getTimeFormat,
49
  getFormats: getFormats,
@@ -92,7 +92,7 @@ var insertdatetime = (function () {
92
  editor.selection.collapse(false);
93
  };
94
  var insertDateTime = function (editor, format) {
95
- if ($_964311epjfuvixc1.shouldInsertTimeElement(editor)) {
96
  var userTime = getDateTime(editor, format);
97
  var computerTime = void 0;
98
  if (/%[HMSIp]/.test(format)) {
@@ -110,31 +110,31 @@ var insertdatetime = (function () {
110
  editor.insertContent(getDateTime(editor, format));
111
  }
112
  };
113
- var $_a91uzfeqjfuvixc3 = {
114
  insertDateTime: insertDateTime,
115
  getDateTime: getDateTime
116
  };
117
 
118
  var register = function (editor) {
119
  editor.addCommand('mceInsertDate', function () {
120
- $_a91uzfeqjfuvixc3.insertDateTime(editor, $_964311epjfuvixc1.getDateFormat(editor));
121
  });
122
  editor.addCommand('mceInsertTime', function () {
123
- $_a91uzfeqjfuvixc3.insertDateTime(editor, $_964311epjfuvixc1.getTimeFormat(editor));
124
  });
125
  };
126
- var $_6t4m48eojfuvixc0 = { register: register };
127
 
128
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
129
 
130
  var createMenuItems = function (editor, lastFormatState) {
131
- var formats = $_964311epjfuvixc1.getFormats(editor);
132
  return global$1.map(formats, function (fmt) {
133
  return {
134
- text: $_a91uzfeqjfuvixc3.getDateTime(editor, fmt),
135
  onclick: function () {
136
  lastFormatState.set(fmt);
137
- $_a91uzfeqjfuvixc3.insertDateTime(editor, fmt);
138
  }
139
  };
140
  });
@@ -147,7 +147,7 @@ var insertdatetime = (function () {
147
  menu: menuItems,
148
  onclick: function () {
149
  var lastFormat = lastFormatState.get();
150
- $_a91uzfeqjfuvixc3.insertDateTime(editor, lastFormat ? lastFormat : $_964311epjfuvixc1.getDefaultDateTime(editor));
151
  }
152
  });
153
  editor.addMenuItem('insertdatetime', {
@@ -157,12 +157,12 @@ var insertdatetime = (function () {
157
  context: 'insert'
158
  });
159
  };
160
- var $_av845serjfuvixc7 = { register: register$1 };
161
 
162
  global.add('insertdatetime', function (editor) {
163
  var lastFormatState = Cell(null);
164
- $_6t4m48eojfuvixc0.register(editor);
165
- $_av845serjfuvixc7.register(editor, lastFormatState);
166
  });
167
  function Plugin () {
168
  }
43
  var shouldInsertTimeElement = function (editor) {
44
  return editor.getParam('insertdatetime_element', false);
45
  };
46
+ var $_8d6uzsfhjjgwecg7 = {
47
  getDateFormat: getDateFormat,
48
  getTimeFormat: getTimeFormat,
49
  getFormats: getFormats,
92
  editor.selection.collapse(false);
93
  };
94
  var insertDateTime = function (editor, format) {
95
+ if ($_8d6uzsfhjjgwecg7.shouldInsertTimeElement(editor)) {
96
  var userTime = getDateTime(editor, format);
97
  var computerTime = void 0;
98
  if (/%[HMSIp]/.test(format)) {
110
  editor.insertContent(getDateTime(editor, format));
111
  }
112
  };
113
+ var $_asqd00fijjgwecg9 = {
114
  insertDateTime: insertDateTime,
115
  getDateTime: getDateTime
116
  };
117
 
118
  var register = function (editor) {
119
  editor.addCommand('mceInsertDate', function () {
120
+ $_asqd00fijjgwecg9.insertDateTime(editor, $_8d6uzsfhjjgwecg7.getDateFormat(editor));
121
  });
122
  editor.addCommand('mceInsertTime', function () {
123
+ $_asqd00fijjgwecg9.insertDateTime(editor, $_8d6uzsfhjjgwecg7.getTimeFormat(editor));
124
  });
125
  };
126
+ var $_3b8w2cfgjjgwecg5 = { register: register };
127
 
128
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
129
 
130
  var createMenuItems = function (editor, lastFormatState) {
131
+ var formats = $_8d6uzsfhjjgwecg7.getFormats(editor);
132
  return global$1.map(formats, function (fmt) {
133
  return {
134
+ text: $_asqd00fijjgwecg9.getDateTime(editor, fmt),
135
  onclick: function () {
136
  lastFormatState.set(fmt);
137
+ $_asqd00fijjgwecg9.insertDateTime(editor, fmt);
138
  }
139
  };
140
  });
147
  menu: menuItems,
148
  onclick: function () {
149
  var lastFormat = lastFormatState.get();
150
+ $_asqd00fijjgwecg9.insertDateTime(editor, lastFormat ? lastFormat : $_8d6uzsfhjjgwecg7.getDefaultDateTime(editor));
151
  }
152
  });
153
  editor.addMenuItem('insertdatetime', {
157
  context: 'insert'
158
  });
159
  };
160
+ var $_atzqltfjjjgwecgc = { register: register$1 };
161
 
162
  global.add('insertdatetime', function (editor) {
163
  var lastFormatState = Cell(null);
164
+ $_3b8w2cfgjjgwecg5.register(editor);
165
+ $_atzqltfjjjgwecgc.register(editor, lastFormatState);
166
  });
167
  function Plugin () {
168
  }
mce/link/plugin.js CHANGED
@@ -48,7 +48,7 @@ var link = (function () {
48
  var allowUnsafeLinkTarget = function (editorSettings) {
49
  return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false;
50
  };
51
- var $_7a9a88f3jfuvixd8 = {
52
  assumeExternalTargets: assumeExternalTargets,
53
  hasContextToolbar: hasContextToolbar,
54
  getLinkList: getLinkList,
@@ -74,7 +74,7 @@ var link = (function () {
74
  link.dispatchEvent(evt);
75
  document.body.removeChild(link);
76
  };
77
- var open = function (url) {
78
  if (!global$3.ie || global$3.ie > 10) {
79
  var link = document.createElement('a');
80
  link.target = '_blank';
@@ -94,7 +94,7 @@ var link = (function () {
94
  }
95
  }
96
  };
97
- var $_bvvc8ff4jfuvixda = { open: open };
98
 
99
  var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
100
 
@@ -158,7 +158,7 @@ var link = (function () {
158
  class: data.class ? data.class : null,
159
  title: data.title ? data.title : null
160
  };
161
- if (!$_7a9a88f3jfuvixd8.hasRelList(editor.settings) && $_7a9a88f3jfuvixd8.allowUnsafeLinkTarget(editor.settings) === false) {
162
  linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank');
163
  }
164
  if (data.href === attachState.href) {
@@ -221,7 +221,7 @@ var link = (function () {
221
  a.appendChild(img);
222
  }
223
  };
224
- var $_6f5vw0f7jfuvixdc = {
225
  link: link,
226
  unlink: unlink,
227
  isLink: isLink,
@@ -238,7 +238,7 @@ var link = (function () {
238
 
239
  var attachState = {};
240
  var createLinkList = function (editor, callback) {
241
- var linkList = $_7a9a88f3jfuvixd8.getLinkList(editor.settings);
242
  if (typeof linkList === 'string') {
243
  global$6.send({
244
  url: linkList,
@@ -355,14 +355,14 @@ var link = (function () {
355
  var onBeforeCall = function (e) {
356
  e.meta = win.toJSON();
357
  };
358
- onlyText = $_6f5vw0f7jfuvixdc.isOnlyTextSelected(selection.getContent());
359
- anchorElm = $_6f5vw0f7jfuvixdc.getAnchorElement(editor);
360
- data.text = initialText = $_6f5vw0f7jfuvixdc.getAnchorText(editor.selection, anchorElm);
361
  data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : '';
362
  if (anchorElm) {
363
  data.target = dom.getAttrib(anchorElm, 'target');
364
- } else if ($_7a9a88f3jfuvixd8.hasDefaultLinkTarget(editor.settings)) {
365
- data.target = $_7a9a88f3jfuvixd8.getDefaultLinkTarget(editor.settings);
366
  }
367
  if (value = dom.getAttrib(anchorElm, 'rel')) {
368
  data.rel = value;
@@ -401,9 +401,9 @@ var link = (function () {
401
  }
402
  };
403
  }
404
- if ($_7a9a88f3jfuvixd8.shouldShowTargetList(editor.settings)) {
405
- if ($_7a9a88f3jfuvixd8.getTargetList(editor.settings) === undefined) {
406
- $_7a9a88f3jfuvixd8.setTargetList(editor, [
407
  {
408
  text: 'None',
409
  value: ''
@@ -418,27 +418,27 @@ var link = (function () {
418
  name: 'target',
419
  type: 'listbox',
420
  label: 'Target',
421
- values: buildListItems($_7a9a88f3jfuvixd8.getTargetList(editor.settings))
422
  };
423
  }
424
- if ($_7a9a88f3jfuvixd8.hasRelList(editor.settings)) {
425
  relListCtrl = {
426
  name: 'rel',
427
  type: 'listbox',
428
  label: 'Rel',
429
- values: buildListItems($_7a9a88f3jfuvixd8.getRelList(editor.settings), function (item) {
430
- if ($_7a9a88f3jfuvixd8.allowUnsafeLinkTarget(editor.settings) === false) {
431
- item.value = $_6f5vw0f7jfuvixdc.toggleTargetRules(item.value, data.target === '_blank');
432
  }
433
  })
434
  };
435
  }
436
- if ($_7a9a88f3jfuvixd8.hasLinkClassList(editor.settings)) {
437
  classListCtrl = {
438
  name: 'class',
439
  type: 'listbox',
440
  label: 'Class',
441
- values: buildListItems($_7a9a88f3jfuvixd8.getLinkClassList(editor.settings), function (item) {
442
  if (item.value) {
443
  item.textStyle = function () {
444
  return editor.formatter.getCssText({
@@ -450,7 +450,7 @@ var link = (function () {
450
  })
451
  };
452
  }
453
- if ($_7a9a88f3jfuvixd8.shouldShowLinkTitle(editor.settings)) {
454
  linkTitleCtrl = {
455
  name: 'title',
456
  type: 'textbox',
@@ -483,9 +483,9 @@ var link = (function () {
483
  classListCtrl
484
  ],
485
  onSubmit: function (e) {
486
- var assumeExternalTargets = $_7a9a88f3jfuvixd8.assumeExternalTargets(editor.settings);
487
- var insertLink = $_6f5vw0f7jfuvixdc.link(editor, attachState);
488
- var removeLink = $_6f5vw0f7jfuvixdc.unlink(editor);
489
  var resultData = global$4.extend({}, data, e.data);
490
  var href = resultData.href;
491
  if (!href) {
@@ -520,7 +520,7 @@ var link = (function () {
520
  var open$1 = function (editor) {
521
  createLinkList(editor, showDialog);
522
  };
523
- var $_8nezeyf9jfuvixdh = { open: open$1 };
524
 
525
  var getLink = function (editor, elm) {
526
  return editor.dom.getParent(elm, 'a[href]');
@@ -548,13 +548,13 @@ var link = (function () {
548
  editor.selection.scrollIntoView(targetEl[0], true);
549
  }
550
  } else {
551
- $_bvvc8ff4jfuvixda.open(a.href);
552
  }
553
  }
554
  };
555
  var openDialog = function (editor) {
556
  return function () {
557
- $_8nezeyf9jfuvixdh.open(editor);
558
  };
559
  };
560
  var gotoSelectedLink = function (editor) {
@@ -565,7 +565,7 @@ var link = (function () {
565
  var leftClickedOnAHref = function (editor) {
566
  return function (elm) {
567
  var sel, rng, node;
568
- if ($_7a9a88f3jfuvixd8.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_6f5vw0f7jfuvixdc.isLink(elm)) {
569
  sel = editor.selection;
570
  rng = sel.getRng();
571
  node = rng.startContainer;
@@ -596,7 +596,7 @@ var link = (function () {
596
  return function () {
597
  var self = this;
598
  editor.on('nodechange', function (e) {
599
- self.active(!editor.readonly && !!$_6f5vw0f7jfuvixdc.getAnchorElement(editor, e.element));
600
  });
601
  };
602
  };
@@ -604,13 +604,13 @@ var link = (function () {
604
  return function () {
605
  var self = this;
606
  var toggleVisibility = function (e) {
607
- if ($_6f5vw0f7jfuvixdc.hasLinks(e.parents)) {
608
  self.show();
609
  } else {
610
  self.hide();
611
  }
612
  };
613
- if (!$_6f5vw0f7jfuvixdc.hasLinks(editor.dom.getParents(editor.selection.getStart()))) {
614
  self.hide();
615
  }
616
  editor.on('nodechange', toggleVisibility);
@@ -619,7 +619,7 @@ var link = (function () {
619
  });
620
  };
621
  };
622
- var $_8e9krqf1jfuvixd2 = {
623
  openDialog: openDialog,
624
  gotoSelectedLink: gotoSelectedLink,
625
  leftClickedOnAHref: leftClickedOnAHref,
@@ -629,35 +629,35 @@ var link = (function () {
629
  };
630
 
631
  var register = function (editor) {
632
- editor.addCommand('mceLink', $_8e9krqf1jfuvixd2.openDialog(editor));
633
  };
634
- var $_c7cgf2f0jfuvixd1 = { register: register };
635
 
636
  var setup = function (editor) {
637
- editor.addShortcut('Meta+K', '', $_8e9krqf1jfuvixd2.openDialog(editor));
638
  };
639
- var $_52xoxlfcjfuvixds = { setup: setup };
640
 
641
  var setupButtons = function (editor) {
642
  editor.addButton('link', {
643
  active: false,
644
  icon: 'link',
645
  tooltip: 'Insert/edit link',
646
- onclick: $_8e9krqf1jfuvixd2.openDialog(editor),
647
- onpostrender: $_8e9krqf1jfuvixd2.toggleActiveState(editor)
648
  });
649
  editor.addButton('unlink', {
650
  active: false,
651
  icon: 'unlink',
652
  tooltip: 'Remove link',
653
- onclick: $_6f5vw0f7jfuvixdc.unlink(editor),
654
- onpostrender: $_8e9krqf1jfuvixd2.toggleActiveState(editor)
655
  });
656
  if (editor.addContextToolbar) {
657
  editor.addButton('openlink', {
658
  icon: 'newtab',
659
  tooltip: 'Open link',
660
- onclick: $_8e9krqf1jfuvixd2.gotoSelectedLink(editor)
661
  });
662
  }
663
  };
@@ -665,15 +665,15 @@ var link = (function () {
665
  editor.addMenuItem('openlink', {
666
  text: 'Open link',
667
  icon: 'newtab',
668
- onclick: $_8e9krqf1jfuvixd2.gotoSelectedLink(editor),
669
- onPostRender: $_8e9krqf1jfuvixd2.toggleViewLinkState(editor),
670
  prependToContext: true
671
  });
672
  editor.addMenuItem('link', {
673
  icon: 'link',
674
  text: 'Link',
675
  shortcut: 'Meta+K',
676
- onclick: $_8e9krqf1jfuvixd2.openDialog(editor),
677
  stateSelector: 'a[href]',
678
  context: 'insert',
679
  prependToContext: true
@@ -681,28 +681,28 @@ var link = (function () {
681
  editor.addMenuItem('unlink', {
682
  icon: 'unlink',
683
  text: 'Remove link',
684
- onclick: $_6f5vw0f7jfuvixdc.unlink(editor),
685
  stateSelector: 'a[href]'
686
  });
687
  };
688
  var setupContextToolbars = function (editor) {
689
  if (editor.addContextToolbar) {
690
- editor.addContextToolbar($_8e9krqf1jfuvixd2.leftClickedOnAHref(editor), 'openlink | link unlink');
691
  }
692
  };
693
- var $_1bk46ifdjfuvixdu = {
694
  setupButtons: setupButtons,
695
  setupMenuItems: setupMenuItems,
696
  setupContextToolbars: setupContextToolbars
697
  };
698
 
699
  global.add('link', function (editor) {
700
- $_1bk46ifdjfuvixdu.setupButtons(editor);
701
- $_1bk46ifdjfuvixdu.setupMenuItems(editor);
702
- $_1bk46ifdjfuvixdu.setupContextToolbars(editor);
703
- $_8e9krqf1jfuvixd2.setupGotoLinks(editor);
704
- $_c7cgf2f0jfuvixd1.register(editor);
705
- $_52xoxlfcjfuvixds.setup(editor);
706
  });
707
  function Plugin () {
708
  }
48
  var allowUnsafeLinkTarget = function (editorSettings) {
49
  return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false;
50
  };
51
+ var $_1b4wbxfvjjgwechi = {
52
  assumeExternalTargets: assumeExternalTargets,
53
  hasContextToolbar: hasContextToolbar,
54
  getLinkList: getLinkList,
74
  link.dispatchEvent(evt);
75
  document.body.removeChild(link);
76
  };
77
+ var open$$1 = function (url) {
78
  if (!global$3.ie || global$3.ie > 10) {
79
  var link = document.createElement('a');
80
  link.target = '_blank';
94
  }
95
  }
96
  };
97
+ var $_du0gebfwjjgwechl = { open: open$$1 };
98
 
99
  var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');
100
 
158
  class: data.class ? data.class : null,
159
  title: data.title ? data.title : null
160
  };
161
+ if (!$_1b4wbxfvjjgwechi.hasRelList(editor.settings) && $_1b4wbxfvjjgwechi.allowUnsafeLinkTarget(editor.settings) === false) {
162
  linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank');
163
  }
164
  if (data.href === attachState.href) {
221
  a.appendChild(img);
222
  }
223
  };
224
+ var $_5298ug0jjgweci0 = {
225
  link: link,
226
  unlink: unlink,
227
  isLink: isLink,
238
 
239
  var attachState = {};
240
  var createLinkList = function (editor, callback) {
241
+ var linkList = $_1b4wbxfvjjgwechi.getLinkList(editor.settings);
242
  if (typeof linkList === 'string') {
243
  global$6.send({
244
  url: linkList,
355
  var onBeforeCall = function (e) {
356
  e.meta = win.toJSON();
357
  };
358
+ onlyText = $_5298ug0jjgweci0.isOnlyTextSelected(selection.getContent());
359
+ anchorElm = $_5298ug0jjgweci0.getAnchorElement(editor);
360
+ data.text = initialText = $_5298ug0jjgweci0.getAnchorText(editor.selection, anchorElm);
361
  data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : '';
362
  if (anchorElm) {
363
  data.target = dom.getAttrib(anchorElm, 'target');
364
+ } else if ($_1b4wbxfvjjgwechi.hasDefaultLinkTarget(editor.settings)) {
365
+ data.target = $_1b4wbxfvjjgwechi.getDefaultLinkTarget(editor.settings);
366
  }
367
  if (value = dom.getAttrib(anchorElm, 'rel')) {
368
  data.rel = value;
401
  }
402
  };
403
  }
404
+ if ($_1b4wbxfvjjgwechi.shouldShowTargetList(editor.settings)) {
405
+ if ($_1b4wbxfvjjgwechi.getTargetList(editor.settings) === undefined) {
406
+ $_1b4wbxfvjjgwechi.setTargetList(editor, [
407
  {
408
  text: 'None',
409
  value: ''
418
  name: 'target',
419
  type: 'listbox',
420
  label: 'Target',
421
+ values: buildListItems($_1b4wbxfvjjgwechi.getTargetList(editor.settings))
422
  };
423
  }
424
+ if ($_1b4wbxfvjjgwechi.hasRelList(editor.settings)) {
425
  relListCtrl = {
426
  name: 'rel',
427
  type: 'listbox',
428
  label: 'Rel',
429
+ values: buildListItems($_1b4wbxfvjjgwechi.getRelList(editor.settings), function (item) {
430
+ if ($_1b4wbxfvjjgwechi.allowUnsafeLinkTarget(editor.settings) === false) {
431
+ item.value = $_5298ug0jjgweci0.toggleTargetRules(item.value, data.target === '_blank');
432
  }
433
  })
434
  };
435
  }
436
+ if ($_1b4wbxfvjjgwechi.hasLinkClassList(editor.settings)) {
437
  classListCtrl = {
438
  name: 'class',
439
  type: 'listbox',
440
  label: 'Class',
441
+ values: buildListItems($_1b4wbxfvjjgwechi.getLinkClassList(editor.settings), function (item) {
442
  if (item.value) {
443
  item.textStyle = function () {
444
  return editor.formatter.getCssText({
450
  })
451
  };
452
  }
453
+ if ($_1b4wbxfvjjgwechi.shouldShowLinkTitle(editor.settings)) {
454
  linkTitleCtrl = {
455
  name: 'title',
456
  type: 'textbox',
483
  classListCtrl
484
  ],
485
  onSubmit: function (e) {
486
+ var assumeExternalTargets = $_1b4wbxfvjjgwechi.assumeExternalTargets(editor.settings);
487
+ var insertLink = $_5298ug0jjgweci0.link(editor, attachState);
488
+ var removeLink = $_5298ug0jjgweci0.unlink(editor);
489
  var resultData = global$4.extend({}, data, e.data);
490
  var href = resultData.href;
491
  if (!href) {
520
  var open$1 = function (editor) {
521
  createLinkList(editor, showDialog);
522
  };
523
+ var $_dxaplrg2jjgweci6 = { open: open$1 };
524
 
525
  var getLink = function (editor, elm) {
526
  return editor.dom.getParent(elm, 'a[href]');
548
  editor.selection.scrollIntoView(targetEl[0], true);
549
  }
550
  } else {
551
+ $_du0gebfwjjgwechl.open(a.href);
552
  }
553
  }
554
  };
555
  var openDialog = function (editor) {
556
  return function () {
557
+ $_dxaplrg2jjgweci6.open(editor);
558
  };
559
  };
560
  var gotoSelectedLink = function (editor) {
565
  var leftClickedOnAHref = function (editor) {
566
  return function (elm) {
567
  var sel, rng, node;
568
+ if ($_1b4wbxfvjjgwechi.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_5298ug0jjgweci0.isLink(elm)) {
569
  sel = editor.selection;
570
  rng = sel.getRng();
571
  node = rng.startContainer;
596
  return function () {
597
  var self = this;
598
  editor.on('nodechange', function (e) {
599
+ self.active(!editor.readonly && !!$_5298ug0jjgweci0.getAnchorElement(editor, e.element));
600
  });
601
  };
602
  };
604
  return function () {
605
  var self = this;
606
  var toggleVisibility = function (e) {
607
+ if ($_5298ug0jjgweci0.hasLinks(e.parents)) {
608
  self.show();
609
  } else {
610
  self.hide();
611
  }
612
  };
613
+ if (!$_5298ug0jjgweci0.hasLinks(editor.dom.getParents(editor.selection.getStart()))) {
614
  self.hide();
615
  }
616
  editor.on('nodechange', toggleVisibility);
619
  });
620
  };
621
  };
622
+ var $_8hceq8ftjjgweche = {
623
  openDialog: openDialog,
624
  gotoSelectedLink: gotoSelectedLink,
625
  leftClickedOnAHref: leftClickedOnAHref,
629
  };
630
 
631
  var register = function (editor) {
632
+ editor.addCommand('mceLink', $_8hceq8ftjjgweche.openDialog(editor));
633
  };
634
+ var $_bauc80fsjjgwechc = { register: register };
635
 
636
  var setup = function (editor) {
637
+ editor.addShortcut('Meta+K', '', $_8hceq8ftjjgweche.openDialog(editor));
638
  };
639
+ var $_49u4p1g5jjgwecie = { setup: setup };
640
 
641
  var setupButtons = function (editor) {
642
  editor.addButton('link', {
643
  active: false,
644
  icon: 'link',
645
  tooltip: 'Insert/edit link',
646
+ onclick: $_8hceq8ftjjgweche.openDialog(editor),
647
+ onpostrender: $_8hceq8ftjjgweche.toggleActiveState(editor)
648
  });
649
  editor.addButton('unlink', {
650
  active: false,
651
  icon: 'unlink',
652
  tooltip: 'Remove link',
653
+ onclick: $_5298ug0jjgweci0.unlink(editor),
654
+ onpostrender: $_8hceq8ftjjgweche.toggleActiveState(editor)
655
  });
656
  if (editor.addContextToolbar) {
657
  editor.addButton('openlink', {
658
  icon: 'newtab',
659
  tooltip: 'Open link',
660
+ onclick: $_8hceq8ftjjgweche.gotoSelectedLink(editor)
661
  });
662
  }
663
  };
665
  editor.addMenuItem('openlink', {
666
  text: 'Open link',
667
  icon: 'newtab',
668
+ onclick: $_8hceq8ftjjgweche.gotoSelectedLink(editor),
669
+ onPostRender: $_8hceq8ftjjgweche.toggleViewLinkState(editor),
670
  prependToContext: true
671
  });
672
  editor.addMenuItem('link', {
673
  icon: 'link',
674
  text: 'Link',
675
  shortcut: 'Meta+K',
676
+ onclick: $_8hceq8ftjjgweche.openDialog(editor),
677
  stateSelector: 'a[href]',
678
  context: 'insert',
679
  prependToContext: true
681
  editor.addMenuItem('unlink', {
682
  icon: 'unlink',
683
  text: 'Remove link',
684
+ onclick: $_5298ug0jjgweci0.unlink(editor),
685
  stateSelector: 'a[href]'
686
  });
687
  };
688
  var setupContextToolbars = function (editor) {
689
  if (editor.addContextToolbar) {
690
+ editor.addContextToolbar($_8hceq8ftjjgweche.leftClickedOnAHref(editor), 'openlink | link unlink');
691
  }
692
  };
693
+ var $_bn93cg6jjgwecif = {
694
  setupButtons: setupButtons,
695
  setupMenuItems: setupMenuItems,
696
  setupContextToolbars: setupContextToolbars
697
  };
698
 
699
  global.add('link', function (editor) {
700
+ $_bn93cg6jjgwecif.setupButtons(editor);
701
+ $_bn93cg6jjgwecif.setupMenuItems(editor);
702
+ $_bn93cg6jjgwecif.setupContextToolbars(editor);
703
+ $_8hceq8ftjjgweche.setupGotoLinks(editor);
704
+ $_bauc80fsjjgwechc.register(editor);
705
+ $_49u4p1g5jjgwecie.setup(editor);
706
  });
707
  function Plugin () {
708
  }
mce/nonbreaking/plugin.js CHANGED
@@ -19,14 +19,14 @@ var nonbreaking = (function () {
19
  editor.insertContent(stringRepeat(nbsp, times));
20
  editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');
21
  };
22
- var $_fz3nuhh0jfuvixkz = { insertNbsp: insertNbsp };
23
 
24
  var register = function (editor) {
25
  editor.addCommand('mceNonBreaking', function () {
26
- $_fz3nuhh0jfuvixkz.insertNbsp(editor, 1);
27
  });
28
  };
29
- var $_3swlppgzjfuvixky = { register: register };
30
 
31
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');
32
 
@@ -38,10 +38,10 @@ var nonbreaking = (function () {
38
  return spaces;
39
  }
40
  };
41
- var $_cphxeoh3jfuvixl2 = { getKeyboardSpaces: getKeyboardSpaces };
42
 
43
  var setup = function (editor) {
44
- var spaces = $_cphxeoh3jfuvixl2.getKeyboardSpaces(editor);
45
  if (spaces > 0) {
46
  editor.on('keydown', function (e) {
47
  if (e.keyCode === global$1.TAB && !e.isDefaultPrevented()) {
@@ -50,12 +50,12 @@ var nonbreaking = (function () {
50
  }
51
  e.preventDefault();
52
  e.stopImmediatePropagation();
53
- $_fz3nuhh0jfuvixkz.insertNbsp(editor, spaces);
54
  }
55
  });
56
  }
57
  };
58
- var $_b3ia6wh1jfuvixl0 = { setup: setup };
59
 
60
  var register$1 = function (editor) {
61
  editor.addButton('nonbreaking', {
@@ -69,12 +69,12 @@ var nonbreaking = (function () {
69
  context: 'insert'
70
  });
71
  };
72
- var $_5yb79nh4jfuvixl3 = { register: register$1 };
73
 
74
  global.add('nonbreaking', function (editor) {
75
- $_3swlppgzjfuvixky.register(editor);
76
- $_5yb79nh4jfuvixl3.register(editor);
77
- $_b3ia6wh1jfuvixl0.setup(editor);
78
  });
79
  function Plugin () {
80
  }
19
  editor.insertContent(stringRepeat(nbsp, times));
20
  editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');
21
  };
22
+ var $_eqfkn3htjjgwecrh = { insertNbsp: insertNbsp };
23
 
24
  var register = function (editor) {
25
  editor.addCommand('mceNonBreaking', function () {
26
+ $_eqfkn3htjjgwecrh.insertNbsp(editor, 1);
27
  });
28
  };
29
+ var $_duyz3ehsjjgwecrg = { register: register };
30
 
31
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');
32
 
38
  return spaces;
39
  }
40
  };
41
+ var $_7krohxhwjjgwecrk = { getKeyboardSpaces: getKeyboardSpaces };
42
 
43
  var setup = function (editor) {
44
+ var spaces = $_7krohxhwjjgwecrk.getKeyboardSpaces(editor);
45
  if (spaces > 0) {
46
  editor.on('keydown', function (e) {
47
  if (e.keyCode === global$1.TAB && !e.isDefaultPrevented()) {
50
  }
51
  e.preventDefault();
52
  e.stopImmediatePropagation();
53
+ $_eqfkn3htjjgwecrh.insertNbsp(editor, spaces);
54
  }
55
  });
56
  }
57
  };
58
+ var $_cy5vbshujjgwecri = { setup: setup };
59
 
60
  var register$1 = function (editor) {
61
  editor.addButton('nonbreaking', {
69
  context: 'insert'
70
  });
71
  };
72
+ var $_6surrthxjjgwecrl = { register: register$1 };
73
 
74
  global.add('nonbreaking', function (editor) {
75
+ $_duyz3ehsjjgwecrg.register(editor);
76
+ $_6surrthxjjgwecrl.register(editor);
77
+ $_cy5vbshujjgwecri.setup(editor);
78
  });
79
  function Plugin () {
80
  }
mce/print/plugin.js CHANGED
@@ -9,7 +9,7 @@ var print = (function () {
9
  editor.getWin().print();
10
  });
11
  };
12
- var $_4by3tkirjfuvixqz = { register: register };
13
 
14
  var register$1 = function (editor) {
15
  editor.addButton('print', {
@@ -22,11 +22,11 @@ var print = (function () {
22
  icon: 'print'
23
  });
24
  };
25
- var $_dqp4ffisjfuvixr0 = { register: register$1 };
26
 
27
  global.add('print', function (editor) {
28
- $_4by3tkirjfuvixqz.register(editor);
29
- $_dqp4ffisjfuvixr0.register(editor);
30
  editor.addShortcut('Meta+P', '', 'mcePrint');
31
  });
32
  function Plugin () {
9
  editor.getWin().print();
10
  });
11
  };
12
+ var $_brqngvjljjgwecz3 = { register: register };
13
 
14
  var register$1 = function (editor) {
15
  editor.addButton('print', {
22
  icon: 'print'
23
  });
24
  };
25
+ var $_3xztukjmjjgwecz4 = { register: register$1 };
26
 
27
  global.add('print', function (editor) {
28
+ $_brqngvjljjgwecz3.register(editor);
29
+ $_3xztukjmjjgwecz4.register(editor);
30
  editor.addShortcut('Meta+P', '', 'mcePrint');
31
  });
32
  function Plugin () {
mce/searchreplace/plugin.js CHANGED
@@ -216,7 +216,7 @@ var searchreplace = (function () {
216
  }
217
  return count;
218
  }
219
- var $_6ot197j7jfuvixs6 = { findAndReplaceDOMText: findAndReplaceDOMText };
220
 
221
  var getElmIndex = function (elm) {
222
  var value = elm.getAttribute('data-mce-index');
@@ -231,7 +231,7 @@ var searchreplace = (function () {
231
  marker.className = 'mce-match-marker';
232
  node = editor.getBody();
233
  done(editor, currentIndexState, false);
234
- return $_6ot197j7jfuvixs6.findAndReplaceDOMText(regex, node, marker, false, editor.schema);
235
  };
236
  var unwrap = function (node) {
237
  var parentNode = node.parentNode;
@@ -381,7 +381,7 @@ var searchreplace = (function () {
381
  var hasPrev = function (editor, currentIndexState) {
382
  return findSpansByIndex(editor, currentIndexState.get() - 1).length > 0;
383
  };
384
- var $_pndf3j5jfuvixrx = {
385
  done: done,
386
  find: find,
387
  next: next,
@@ -393,19 +393,19 @@ var searchreplace = (function () {
393
 
394
  var get = function (editor, currentIndexState) {
395
  var done = function (keepEditorSelection) {
396
- return $_pndf3j5jfuvixrx.done(editor, currentIndexState, keepEditorSelection);
397
  };
398
  var find = function (text, matchCase, wholeWord) {
399
- return $_pndf3j5jfuvixrx.find(editor, currentIndexState, text, matchCase, wholeWord);
400
  };
401
  var next = function () {
402
- return $_pndf3j5jfuvixrx.next(editor, currentIndexState);
403
  };
404
  var prev = function () {
405
- return $_pndf3j5jfuvixrx.prev(editor, currentIndexState);
406
  };
407
  var replace = function (text, forward, all) {
408
- return $_pndf3j5jfuvixrx.replace(editor, currentIndexState, text, forward, all);
409
  };
410
  return {
411
  done: done,
@@ -415,15 +415,15 @@ var searchreplace = (function () {
415
  replace: replace
416
  };
417
  };
418
- var $_bekipdj4jfuvixru = { get: get };
419
 
420
  var open = function (editor, currentIndexState) {
421
  var last = {}, selectedText;
422
  editor.undoManager.add();
423
  selectedText = global$1.trim(editor.selection.getContent({ format: 'text' }));
424
  function updateButtonStates() {
425
- win.statusbar.find('#next').disabled($_pndf3j5jfuvixrx.hasNext(editor, currentIndexState) === false);
426
- win.statusbar.find('#prev').disabled($_pndf3j5jfuvixrx.hasPrev(editor, currentIndexState) === false);
427
  }
428
  function notFoundAlert() {
429
  editor.windowManager.alert('Could not find the specified string.', function () {
@@ -436,7 +436,7 @@ var searchreplace = (function () {
436
  align: 'center',
437
  onClose: function () {
438
  editor.focus();
439
- $_pndf3j5jfuvixrx.done(editor, currentIndexState);
440
  editor.undoManager.add();
441
  },
442
  onSubmit: function (e) {
@@ -446,20 +446,20 @@ var searchreplace = (function () {
446
  wholeWord = win.find('#words').checked();
447
  text = win.find('#find').value();
448
  if (!text.length) {
449
- $_pndf3j5jfuvixrx.done(editor, currentIndexState, false);
450
  win.statusbar.items().slice(1).disabled(true);
451
  return;
452
  }
453
  if (last.text === text && last.caseState === caseState && last.wholeWord === wholeWord) {
454
- if (!$_pndf3j5jfuvixrx.hasNext(editor, currentIndexState)) {
455
  notFoundAlert();
456
  return;
457
  }
458
- $_pndf3j5jfuvixrx.next(editor, currentIndexState);
459
  updateButtonStates();
460
  return;
461
  }
462
- count = $_pndf3j5jfuvixrx.find(editor, currentIndexState, text, caseState, wholeWord);
463
  if (!count) {
464
  notFoundAlert();
465
  }
@@ -483,7 +483,7 @@ var searchreplace = (function () {
483
  text: 'Replace',
484
  disabled: true,
485
  onclick: function () {
486
- if (!$_pndf3j5jfuvixrx.replace(editor, currentIndexState, win.find('#replace').value())) {
487
  win.statusbar.items().slice(1).disabled(true);
488
  currentIndexState.set(-1);
489
  last = {};
@@ -494,7 +494,7 @@ var searchreplace = (function () {
494
  text: 'Replace all',
495
  disabled: true,
496
  onclick: function () {
497
- $_pndf3j5jfuvixrx.replace(editor, currentIndexState, win.find('#replace').value(), true, true);
498
  win.statusbar.items().slice(1).disabled(true);
499
  last = {};
500
  }
@@ -508,7 +508,7 @@ var searchreplace = (function () {
508
  name: 'prev',
509
  disabled: true,
510
  onclick: function () {
511
- $_pndf3j5jfuvixrx.prev(editor, currentIndexState);
512
  updateButtonStates();
513
  }
514
  },
@@ -517,7 +517,7 @@ var searchreplace = (function () {
517
  name: 'next',
518
  disabled: true,
519
  onclick: function () {
520
- $_pndf3j5jfuvixrx.next(editor, currentIndexState);
521
  updateButtonStates();
522
  }
523
  }
@@ -558,18 +558,18 @@ var searchreplace = (function () {
558
  }
559
  });
560
  };
561
- var $_dbuf70j9jfuvixsd = { open: open };
562
 
563
  var register = function (editor, currentIndexState) {
564
  editor.addCommand('SearchReplace', function () {
565
- $_dbuf70j9jfuvixsd.open(editor, currentIndexState);
566
  });
567
  };
568
- var $_91ut3nj8jfuvixsb = { register: register };
569
 
570
  var showDialog = function (editor, currentIndexState) {
571
  return function () {
572
- $_dbuf70j9jfuvixsd.open(editor, currentIndexState);
573
  };
574
  };
575
  var register$1 = function (editor, currentIndexState) {
@@ -586,13 +586,13 @@ var searchreplace = (function () {
586
  });
587
  editor.shortcuts.add('Meta+F', '', showDialog(editor, currentIndexState));
588
  };
589
- var $_brqcrtjajfuvixsi = { register: register$1 };
590
 
591
  global.add('searchreplace', function (editor) {
592
  var currentIndexState = Cell(-1);
593
- $_91ut3nj8jfuvixsb.register(editor, currentIndexState);
594
- $_brqcrtjajfuvixsi.register(editor, currentIndexState);
595
- return $_bekipdj4jfuvixru.get(editor, currentIndexState);
596
  });
597
  function Plugin () {
598
  }
216
  }
217
  return count;
218
  }
219
+ var $_frdtaok1jjgwed02 = { findAndReplaceDOMText: findAndReplaceDOMText };
220
 
221
  var getElmIndex = function (elm) {
222
  var value = elm.getAttribute('data-mce-index');
231
  marker.className = 'mce-match-marker';
232
  node = editor.getBody();
233
  done(editor, currentIndexState, false);
234
+ return $_frdtaok1jjgwed02.findAndReplaceDOMText(regex, node, marker, false, editor.schema);
235
  };
236
  var unwrap = function (node) {
237
  var parentNode = node.parentNode;
381
  var hasPrev = function (editor, currentIndexState) {
382
  return findSpansByIndex(editor, currentIndexState.get() - 1).length > 0;
383
  };
384
+ var $_8aeifjjzjjgweczv = {
385
  done: done,
386
  find: find,
387
  next: next,
393
 
394
  var get = function (editor, currentIndexState) {
395
  var done = function (keepEditorSelection) {
396
+ return $_8aeifjjzjjgweczv.done(editor, currentIndexState, keepEditorSelection);
397
  };
398
  var find = function (text, matchCase, wholeWord) {
399
+ return $_8aeifjjzjjgweczv.find(editor, currentIndexState, text, matchCase, wholeWord);
400
  };
401
  var next = function () {
402
+ return $_8aeifjjzjjgweczv.next(editor, currentIndexState);
403
  };
404
  var prev = function () {
405
+ return $_8aeifjjzjjgweczv.prev(editor, currentIndexState);
406
  };
407
  var replace = function (text, forward, all) {
408
+ return $_8aeifjjzjjgweczv.replace(editor, currentIndexState, text, forward, all);
409
  };
410
  return {
411
  done: done,
415
  replace: replace
416
  };
417
  };
418
+ var $_6py2wyjyjjgweczt = { get: get };
419
 
420
  var open = function (editor, currentIndexState) {
421
  var last = {}, selectedText;
422
  editor.undoManager.add();
423
  selectedText = global$1.trim(editor.selection.getContent({ format: 'text' }));
424
  function updateButtonStates() {
425
+ win.statusbar.find('#next').disabled($_8aeifjjzjjgweczv.hasNext(editor, currentIndexState) === false);
426
+ win.statusbar.find('#prev').disabled($_8aeifjjzjjgweczv.hasPrev(editor, currentIndexState) === false);
427
  }
428
  function notFoundAlert() {
429
  editor.windowManager.alert('Could not find the specified string.', function () {
436
  align: 'center',
437
  onClose: function () {
438
  editor.focus();
439
+ $_8aeifjjzjjgweczv.done(editor, currentIndexState);
440
  editor.undoManager.add();
441
  },
442
  onSubmit: function (e) {
446
  wholeWord = win.find('#words').checked();
447
  text = win.find('#find').value();
448
  if (!text.length) {
449
+ $_8aeifjjzjjgweczv.done(editor, currentIndexState, false);
450
  win.statusbar.items().slice(1).disabled(true);
451
  return;
452
  }
453
  if (last.text === text && last.caseState === caseState && last.wholeWord === wholeWord) {
454
+ if (!$_8aeifjjzjjgweczv.hasNext(editor, currentIndexState)) {
455
  notFoundAlert();
456
  return;
457
  }
458
+ $_8aeifjjzjjgweczv.next(editor, currentIndexState);
459
  updateButtonStates();
460
  return;
461
  }
462
+ count = $_8aeifjjzjjgweczv.find(editor, currentIndexState, text, caseState, wholeWord);
463
  if (!count) {
464
  notFoundAlert();
465
  }
483
  text: 'Replace',
484
  disabled: true,
485
  onclick: function () {
486
+ if (!$_8aeifjjzjjgweczv.replace(editor, currentIndexState, win.find('#replace').value())) {
487
  win.statusbar.items().slice(1).disabled(true);
488
  currentIndexState.set(-1);
489
  last = {};
494
  text: 'Replace all',
495
  disabled: true,
496
  onclick: function () {
497
+ $_8aeifjjzjjgweczv.replace(editor, currentIndexState, win.find('#replace').value(), true, true);
498
  win.statusbar.items().slice(1).disabled(true);
499
  last = {};
500
  }
508
  name: 'prev',
509
  disabled: true,
510
  onclick: function () {
511
+ $_8aeifjjzjjgweczv.prev(editor, currentIndexState);
512
  updateButtonStates();
513
  }
514
  },
517
  name: 'next',
518
  disabled: true,
519
  onclick: function () {
520
+ $_8aeifjjzjjgweczv.next(editor, currentIndexState);
521
  updateButtonStates();
522
  }
523
  }
558
  }
559
  });
560
  };
561
+ var $_5c1p1tk3jjgwed08 = { open: open };
562
 
563
  var register = function (editor, currentIndexState) {
564
  editor.addCommand('SearchReplace', function () {
565
+ $_5c1p1tk3jjgwed08.open(editor, currentIndexState);
566
  });
567
  };
568
+ var $_cdqp73k2jjgwed06 = { register: register };
569
 
570
  var showDialog = function (editor, currentIndexState) {
571
  return function () {
572
+ $_5c1p1tk3jjgwed08.open(editor, currentIndexState);
573
  };
574
  };
575
  var register$1 = function (editor, currentIndexState) {
586
  });
587
  editor.shortcuts.add('Meta+F', '', showDialog(editor, currentIndexState));
588
  };
589
+ var $_5a8qhik4jjgwed0f = { register: register$1 };
590
 
591
  global.add('searchreplace', function (editor) {
592
  var currentIndexState = Cell(-1);
593
+ $_cdqp73k2jjgwed06.register(editor, currentIndexState);
594
+ $_5a8qhik4jjgwed0f.register(editor, currentIndexState);
595
+ return $_6py2wyjyjjgweczt.get(editor, currentIndexState);
596
  });
597
  function Plugin () {
598
  }
mce/table/plugin.js CHANGED
@@ -10,15 +10,7 @@ var table = (function () {
10
  x[_i] = arguments[_i];
11
  }
12
  };
13
- var noarg = function (f) {
14
- return function () {
15
- var x = [];
16
- for (var _i = 0; _i < arguments.length; _i++) {
17
- x[_i] = arguments[_i];
18
- }
19
- return f();
20
- };
21
- };
22
  var compose = function (fa, fb) {
23
  return function () {
24
  var x = [];
@@ -36,9 +28,7 @@ var table = (function () {
36
  var identity = function (x) {
37
  return x;
38
  };
39
- var tripleEquals = function (a, b) {
40
- return a === b;
41
- };
42
  var curry = function (f) {
43
  var x = [];
44
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -76,29 +66,12 @@ var table = (function () {
76
  var apply = function (f) {
77
  return f();
78
  };
79
- var call = function (f) {
80
- f();
81
- };
82
  var never = constant(false);
83
  var always = constant(true);
84
- var $_fdch7uk7jfuvixxb = {
85
- noop: noop,
86
- noarg: noarg,
87
- compose: compose,
88
- constant: constant,
89
- identity: identity,
90
- tripleEquals: tripleEquals,
91
- curry: curry,
92
- not: not,
93
- die: die,
94
- apply: apply,
95
- call: call,
96
- never: never,
97
- always: always
98
- };
99
-
100
- var never$1 = $_fdch7uk7jfuvixxb.never;
101
- var always$1 = $_fdch7uk7jfuvixxb.always;
102
  var none = function () {
103
  return NONE;
104
  };
@@ -106,13 +79,19 @@ var table = (function () {
106
  var eq = function (o) {
107
  return o.isNone();
108
  };
109
- var call = function (thunk) {
110
  return thunk();
111
  };
112
  var id = function (n) {
113
  return n;
114
  };
115
- var noop = function () {
 
 
 
 
 
 
116
  };
117
  var me = {
118
  fold: function (n, s) {
@@ -122,15 +101,17 @@ var table = (function () {
122
  isSome: never$1,
123
  isNone: always$1,
124
  getOr: id,
125
- getOrThunk: call,
126
  getOrDie: function (msg) {
127
  throw new Error(msg || 'error: getOrDie called on none.');
128
  },
 
 
129
  or: id,
130
- orThunk: call,
131
  map: none,
132
  ap: none,
133
- each: noop,
134
  bind: none,
135
  flatten: none,
136
  exists: never$1,
@@ -141,7 +122,7 @@ var table = (function () {
141
  toArray: function () {
142
  return [];
143
  },
144
- toString: $_fdch7uk7jfuvixxb.constant('none()')
145
  };
146
  if (Object.freeze)
147
  Object.freeze(me);
@@ -172,6 +153,8 @@ var table = (function () {
172
  getOr: constant_a,
173
  getOrThunk: constant_a,
174
  getOrDie: constant_a,
 
 
175
  or: self,
176
  orThunk: self,
177
  map: map,
@@ -231,16 +214,14 @@ var table = (function () {
231
  return typeOf(value) === type;
232
  };
233
  };
234
- var $_13kw1fk8jfuvixxd = {
235
- isString: isType('string'),
236
- isObject: isType('object'),
237
- isArray: isType('array'),
238
- isNull: isType('null'),
239
- isBoolean: isType('boolean'),
240
- isUndefined: isType('undefined'),
241
- isFunction: isType('function'),
242
- isNumber: isType('number')
243
- };
244
 
245
  var rawIndexOf = function () {
246
  var pIndexOf = Array.prototype.indexOf;
@@ -252,31 +233,15 @@ var table = (function () {
252
  };
253
  return pIndexOf === undefined ? slowIndex : fastIndex;
254
  }();
255
- var indexOf = function (xs, x) {
256
- var r = rawIndexOf(xs, x);
257
- return r === -1 ? Option.none() : Option.some(r);
258
- };
259
  var contains = function (xs, x) {
260
  return rawIndexOf(xs, x) > -1;
261
  };
262
  var exists = function (xs, pred) {
263
  return findIndex(xs, pred).isSome();
264
  };
265
- var range = function (num, f) {
266
- var r = [];
267
- for (var i = 0; i < num; i++) {
268
- r.push(f(i));
269
- }
270
- return r;
271
- };
272
- var chunk = function (array, size) {
273
- var r = [];
274
- for (var i = 0; i < array.length; i += size) {
275
- var s = array.slice(i, i + size);
276
- r.push(s);
277
- }
278
- return r;
279
- };
280
  var map = function (xs, f) {
281
  var len = xs.length;
282
  var r = new Array(len);
@@ -298,19 +263,7 @@ var table = (function () {
298
  f(x, i, xs);
299
  }
300
  };
301
- var partition = function (xs, pred) {
302
- var pass = [];
303
- var fail = [];
304
- for (var i = 0, len = xs.length; i < len; i++) {
305
- var x = xs[i];
306
- var arr = pred(x, i, xs) ? pass : fail;
307
- arr.push(x);
308
- }
309
- return {
310
- pass: pass,
311
- fail: fail
312
- };
313
- };
314
  var filter = function (xs, pred) {
315
  var r = [];
316
  for (var i = 0, len = xs.length; i < len; i++) {
@@ -321,29 +274,7 @@ var table = (function () {
321
  }
322
  return r;
323
  };
324
- var groupBy = function (xs, f) {
325
- if (xs.length === 0) {
326
- return [];
327
- } else {
328
- var wasType = f(xs[0]);
329
- var r = [];
330
- var group = [];
331
- for (var i = 0, len = xs.length; i < len; i++) {
332
- var x = xs[i];
333
- var type = f(x);
334
- if (type !== wasType) {
335
- r.push(group);
336
- group = [];
337
- }
338
- wasType = type;
339
- group.push(x);
340
- }
341
- if (group.length !== 0) {
342
- r.push(group);
343
- }
344
- return r;
345
- }
346
- };
347
  var foldr = function (xs, f, acc) {
348
  eachr(xs, function (x) {
349
  acc = f(acc, x);
@@ -405,90 +336,26 @@ var table = (function () {
405
  }
406
  return true;
407
  };
408
- var equal = function (a1, a2) {
409
- return a1.length === a2.length && forall(a1, function (x, i) {
410
- return x === a2[i];
411
- });
412
- };
413
  var slice = Array.prototype.slice;
414
  var reverse = function (xs) {
415
  var r = slice.call(xs, 0);
416
  r.reverse();
417
  return r;
418
  };
419
- var difference = function (a1, a2) {
420
- return filter(a1, function (x) {
421
- return !contains(a2, x);
422
- });
423
- };
424
- var mapToObject = function (xs, f) {
425
- var r = {};
426
- for (var i = 0, len = xs.length; i < len; i++) {
427
- var x = xs[i];
428
- r[String(x)] = f(x, i);
429
- }
430
- return r;
431
- };
432
- var pure = function (x) {
433
- return [x];
434
- };
435
- var sort = function (xs, comparator) {
436
- var copy = slice.call(xs, 0);
437
- copy.sort(comparator);
438
- return copy;
439
- };
440
- var head = function (xs) {
441
- return xs.length === 0 ? Option.none() : Option.some(xs[0]);
442
- };
443
  var last = function (xs) {
444
  return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
445
  };
446
- var from$1 = $_13kw1fk8jfuvixxd.isFunction(Array.from) ? Array.from : function (x) {
447
  return slice.call(x);
448
  };
449
- var $_4jja6kk5jfuvixx1 = {
450
- map: map,
451
- each: each,
452
- eachr: eachr,
453
- partition: partition,
454
- filter: filter,
455
- groupBy: groupBy,
456
- indexOf: indexOf,
457
- foldr: foldr,
458
- foldl: foldl,
459
- find: find,
460
- findIndex: findIndex,
461
- flatten: flatten,
462
- bind: bind,
463
- forall: forall,
464
- exists: exists,
465
- contains: contains,
466
- equal: equal,
467
- reverse: reverse,
468
- chunk: chunk,
469
- difference: difference,
470
- mapToObject: mapToObject,
471
- pure: pure,
472
- sort: sort,
473
- range: range,
474
- head: head,
475
- last: last,
476
- from: from$1
477
- };
478
-
479
- var keys = function () {
480
- var fastKeys = Object.keys;
481
- var slowKeys = function (o) {
482
- var r = [];
483
- for (var i in o) {
484
- if (o.hasOwnProperty(i)) {
485
- r.push(i);
486
- }
487
- }
488
- return r;
489
- };
490
- return fastKeys === undefined ? slowKeys : fastKeys;
491
- }();
492
  var each$1 = function (obj, f) {
493
  var props = keys(obj);
494
  for (var k = 0, len = props.length; k < len; k++) {
@@ -497,7 +364,7 @@ var table = (function () {
497
  f(x, i, obj);
498
  }
499
  };
500
- var objectMap = function (obj, f) {
501
  return tupleMap(obj, function (x, i, obj) {
502
  return {
503
  k: i,
@@ -513,57 +380,8 @@ var table = (function () {
513
  });
514
  return r;
515
  };
516
- var bifilter = function (obj, pred) {
517
- var t = {};
518
- var f = {};
519
- each$1(obj, function (x, i) {
520
- var branch = pred(x, i) ? t : f;
521
- branch[i] = x;
522
- });
523
- return {
524
- t: t,
525
- f: f
526
- };
527
- };
528
- var mapToArray = function (obj, f) {
529
- var r = [];
530
- each$1(obj, function (value, name) {
531
- r.push(f(value, name));
532
- });
533
- return r;
534
- };
535
- var find$1 = function (obj, pred) {
536
- var props = keys(obj);
537
- for (var k = 0, len = props.length; k < len; k++) {
538
- var i = props[k];
539
- var x = obj[i];
540
- if (pred(x, i, obj)) {
541
- return Option.some(x);
542
- }
543
- }
544
- return Option.none();
545
- };
546
- var values = function (obj) {
547
- return mapToArray(obj, function (v) {
548
- return v;
549
- });
550
- };
551
- var size = function (obj) {
552
- return values(obj).length;
553
- };
554
- var $_afb9m6kajfuvixy8 = {
555
- bifilter: bifilter,
556
- each: each$1,
557
- map: objectMap,
558
- mapToArray: mapToArray,
559
- tupleMap: tupleMap,
560
- find: find$1,
561
- keys: keys,
562
- values: values,
563
- size: size
564
- };
565
 
566
- function Immutable () {
567
  var fields = [];
568
  for (var _i = 0; _i < arguments.length; _i++) {
569
  fields[_i] = arguments[_i];
@@ -577,12 +395,12 @@ var table = (function () {
577
  throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
578
  }
579
  var struct = {};
580
- $_4jja6kk5jfuvixx1.each(fields, function (name, i) {
581
- struct[name] = $_fdch7uk7jfuvixxb.constant(values[i]);
582
  });
583
  return struct;
584
  };
585
- }
586
 
587
  var sort$1 = function (arr) {
588
  return arr.slice(0).sort();
@@ -594,10 +412,10 @@ var table = (function () {
594
  throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
595
  };
596
  var validateStrArr = function (label, array) {
597
- if (!$_13kw1fk8jfuvixxd.isArray(array))
598
  throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
599
- $_4jja6kk5jfuvixx1.each(array, function (a) {
600
- if (!$_13kw1fk8jfuvixxd.isString(a))
601
  throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
602
  });
603
  };
@@ -606,71 +424,58 @@ var table = (function () {
606
  };
607
  var checkDupes = function (everything) {
608
  var sorted = sort$1(everything);
609
- var dupe = $_4jja6kk5jfuvixx1.find(sorted, function (s, i) {
610
  return i < sorted.length - 1 && s === sorted[i + 1];
611
  });
612
  dupe.each(function (d) {
613
  throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');
614
  });
615
  };
616
- var $_cov59pkejfuvixyf = {
617
- sort: sort$1,
618
- reqMessage: reqMessage,
619
- unsuppMessage: unsuppMessage,
620
- validateStrArr: validateStrArr,
621
- invalidTypeMessage: invalidTypeMessage,
622
- checkDupes: checkDupes
623
- };
624
 
625
- function MixedBag (required, optional) {
626
  var everything = required.concat(optional);
627
  if (everything.length === 0)
628
  throw new Error('You must specify at least one required or optional field.');
629
- $_cov59pkejfuvixyf.validateStrArr('required', required);
630
- $_cov59pkejfuvixyf.validateStrArr('optional', optional);
631
- $_cov59pkejfuvixyf.checkDupes(everything);
632
  return function (obj) {
633
- var keys = $_afb9m6kajfuvixy8.keys(obj);
634
- var allReqd = $_4jja6kk5jfuvixx1.forall(required, function (req) {
635
- return $_4jja6kk5jfuvixx1.contains(keys, req);
636
  });
637
  if (!allReqd)
638
- $_cov59pkejfuvixyf.reqMessage(required, keys);
639
- var unsupported = $_4jja6kk5jfuvixx1.filter(keys, function (key) {
640
- return !$_4jja6kk5jfuvixx1.contains(everything, key);
641
  });
642
  if (unsupported.length > 0)
643
- $_cov59pkejfuvixyf.unsuppMessage(unsupported);
644
  var r = {};
645
- $_4jja6kk5jfuvixx1.each(required, function (req) {
646
- r[req] = $_fdch7uk7jfuvixxb.constant(obj[req]);
647
  });
648
- $_4jja6kk5jfuvixx1.each(optional, function (opt) {
649
- r[opt] = $_fdch7uk7jfuvixxb.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());
650
  });
651
  return r;
652
  };
653
- }
654
 
655
- var $_96oqrskbjfuvixya = {
656
- immutable: Immutable,
657
- immutableBag: MixedBag
658
- };
659
-
660
- var dimensions = $_96oqrskbjfuvixya.immutable('width', 'height');
661
- var grid = $_96oqrskbjfuvixya.immutable('rows', 'columns');
662
- var address = $_96oqrskbjfuvixya.immutable('row', 'column');
663
- var coords = $_96oqrskbjfuvixya.immutable('x', 'y');
664
- var detail = $_96oqrskbjfuvixya.immutable('element', 'rowspan', 'colspan');
665
- var detailnew = $_96oqrskbjfuvixya.immutable('element', 'rowspan', 'colspan', 'isNew');
666
- var extended = $_96oqrskbjfuvixya.immutable('element', 'rowspan', 'colspan', 'row', 'column');
667
- var rowdata = $_96oqrskbjfuvixya.immutable('element', 'cells', 'section');
668
- var elementnew = $_96oqrskbjfuvixya.immutable('element', 'isNew');
669
- var rowdatanew = $_96oqrskbjfuvixya.immutable('element', 'cells', 'section', 'isNew');
670
- var rowcells = $_96oqrskbjfuvixya.immutable('cells', 'section');
671
- var rowdetails = $_96oqrskbjfuvixya.immutable('details', 'section');
672
- var bounds = $_96oqrskbjfuvixya.immutable('startRow', 'startCol', 'finishRow', 'finishCol');
673
- var $_g02m1vkgjfuvixyt = {
674
  dimensions: dimensions,
675
  grid: grid,
676
  address: address,
@@ -709,12 +514,13 @@ var table = (function () {
709
  var fromDom = function (node) {
710
  if (node === null || node === undefined)
711
  throw new Error('Node cannot be null or undefined');
712
- return { dom: $_fdch7uk7jfuvixxb.constant(node) };
713
  };
714
- var fromPoint = function (doc, x, y) {
715
- return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom);
 
716
  };
717
- var $_4sdhm4kkjfuviy0e = {
718
  fromHtml: fromHtml,
719
  fromTag: fromTag,
720
  fromText: fromText,
@@ -722,23 +528,23 @@ var table = (function () {
722
  fromPoint: fromPoint
723
  };
724
 
725
- var $_9kanxfkljfuviy0l = {
726
- ATTRIBUTE: 2,
727
- CDATA_SECTION: 4,
728
- COMMENT: 8,
729
- DOCUMENT: 9,
730
- DOCUMENT_TYPE: 10,
731
- DOCUMENT_FRAGMENT: 11,
732
- ELEMENT: 1,
733
- TEXT: 3,
734
- PROCESSING_INSTRUCTION: 7,
735
- ENTITY_REFERENCE: 5,
736
- ENTITY: 6,
737
- NOTATION: 12
738
  };
739
 
740
- var ELEMENT = $_9kanxfkljfuviy0l.ELEMENT;
741
- var DOCUMENT = $_9kanxfkljfuviy0l.DOCUMENT;
742
  var is = function (element, selector) {
743
  var elem = element.dom();
744
  if (elem.nodeType !== ELEMENT)
@@ -759,13 +565,13 @@ var table = (function () {
759
  };
760
  var all = function (selector, scope) {
761
  var base = scope === undefined ? document : scope.dom();
762
- return bypassSelector(base) ? [] : $_4jja6kk5jfuvixx1.map(base.querySelectorAll(selector), $_4sdhm4kkjfuviy0e.fromDom);
763
  };
764
  var one = function (selector, scope) {
765
  var base = scope === undefined ? document : scope.dom();
766
- return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_4sdhm4kkjfuviy0e.fromDom);
767
  };
768
- var $_aphf8fkjjfuviy04 = {
769
  all: all,
770
  is: is,
771
  one: one
@@ -783,12 +589,12 @@ var table = (function () {
783
  } while (cur.isSome());
784
  return r;
785
  };
786
- var $_a5zu42knjfuviy12 = { toArray: toArray };
787
 
788
- var global$1 = typeof window !== 'undefined' ? window : Function('return this;')();
789
 
790
  var path = function (parts, scope) {
791
- var o = scope !== undefined && scope !== null ? scope : global$1;
792
  for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
793
  o = o[parts[i]];
794
  return o;
@@ -797,30 +603,9 @@ var table = (function () {
797
  var parts = p.split('.');
798
  return path(parts, scope);
799
  };
800
- var step = function (o, part) {
801
- if (o[part] === undefined || o[part] === null)
802
- o[part] = {};
803
- return o[part];
804
- };
805
- var forge = function (parts, target) {
806
- var o = target !== undefined ? target : global$1;
807
- for (var i = 0; i < parts.length; ++i)
808
- o = step(o, parts[i]);
809
- return o;
810
- };
811
- var namespace = function (name, target) {
812
- var parts = name.split('.');
813
- return forge(parts, target);
814
- };
815
- var $_8sz23skrjfuviy1k = {
816
- path: path,
817
- resolve: resolve,
818
- forge: forge,
819
- namespace: namespace
820
- };
821
 
822
  var unsafe = function (name, scope) {
823
- return $_8sz23skrjfuviy1k.resolve(name, scope);
824
  };
825
  var getOrDie = function (name, scope) {
826
  var actual = unsafe(name, scope);
@@ -828,10 +613,10 @@ var table = (function () {
828
  throw name + ' not available on this browser';
829
  return actual;
830
  };
831
- var $_9yhrxfkqjfuviy1h = { getOrDie: getOrDie };
832
 
833
  var node = function () {
834
- var f = $_9yhrxfkqjfuviy1h.getOrDie('Node');
835
  return f;
836
  };
837
  var compareDocumentPosition = function (a, b, match) {
@@ -843,7 +628,7 @@ var table = (function () {
843
  var documentPositionContainedBy = function (a, b) {
844
  return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
845
  };
846
- var $_af30gpkpjfuviy1g = {
847
  documentPositionPreceding: documentPositionPreceding,
848
  documentPositionContainedBy: documentPositionContainedBy
849
  };
@@ -852,14 +637,17 @@ var table = (function () {
852
  var called = false;
853
  var r;
854
  return function () {
 
 
 
 
855
  if (!called) {
856
  called = true;
857
- r = f.apply(null, arguments);
858
  }
859
  return r;
860
  };
861
  };
862
- var $_eprzwrkujfuviy1p = { cached: cached };
863
 
864
  var firstMatch = function (regexes, s) {
865
  for (var i = 0; i < regexes.length; i++) {
@@ -896,7 +684,7 @@ var table = (function () {
896
  minor: minor
897
  };
898
  };
899
- var $_9sqjpfkxjfuviy1v = {
900
  nu: nu,
901
  detect: detect,
902
  unknown: unknown
@@ -916,7 +704,7 @@ var table = (function () {
916
  var unknown$1 = function () {
917
  return nu$1({
918
  current: undefined,
919
- version: $_9sqjpfkxjfuviy1v.unknown()
920
  });
921
  };
922
  var nu$1 = function (info) {
@@ -933,15 +721,15 @@ var table = (function () {
933
  isSafari: isBrowser(safari, current)
934
  };
935
  };
936
- var $_c33ahakwjfuviy1s = {
937
  unknown: unknown$1,
938
  nu: nu$1,
939
- edge: $_fdch7uk7jfuvixxb.constant(edge),
940
- chrome: $_fdch7uk7jfuvixxb.constant(chrome),
941
- ie: $_fdch7uk7jfuvixxb.constant(ie),
942
- opera: $_fdch7uk7jfuvixxb.constant(opera),
943
- firefox: $_fdch7uk7jfuvixxb.constant(firefox),
944
- safari: $_fdch7uk7jfuvixxb.constant(safari)
945
  };
946
 
947
  var windows = 'Windows';
@@ -959,7 +747,7 @@ var table = (function () {
959
  var unknown$2 = function () {
960
  return nu$2({
961
  current: undefined,
962
- version: $_9sqjpfkxjfuviy1v.unknown()
963
  });
964
  };
965
  var nu$2 = function (info) {
@@ -977,16 +765,16 @@ var table = (function () {
977
  isFreeBSD: isOS(freebsd, current)
978
  };
979
  };
980
- var $_frrfmikyjfuviy1w = {
981
  unknown: unknown$2,
982
  nu: nu$2,
983
- windows: $_fdch7uk7jfuvixxb.constant(windows),
984
- ios: $_fdch7uk7jfuvixxb.constant(ios),
985
- android: $_fdch7uk7jfuvixxb.constant(android),
986
- linux: $_fdch7uk7jfuvixxb.constant(linux),
987
- osx: $_fdch7uk7jfuvixxb.constant(osx),
988
- solaris: $_fdch7uk7jfuvixxb.constant(solaris),
989
- freebsd: $_fdch7uk7jfuvixxb.constant(freebsd)
990
  };
991
 
992
  function DeviceType (os, browser, userAgent) {
@@ -999,26 +787,26 @@ var table = (function () {
999
  var isPhone = isTouch && !isTablet;
1000
  var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
1001
  return {
1002
- isiPad: $_fdch7uk7jfuvixxb.constant(isiPad),
1003
- isiPhone: $_fdch7uk7jfuvixxb.constant(isiPhone),
1004
- isTablet: $_fdch7uk7jfuvixxb.constant(isTablet),
1005
- isPhone: $_fdch7uk7jfuvixxb.constant(isPhone),
1006
- isTouch: $_fdch7uk7jfuvixxb.constant(isTouch),
1007
  isAndroid: os.isAndroid,
1008
  isiOS: os.isiOS,
1009
- isWebView: $_fdch7uk7jfuvixxb.constant(iOSwebview)
1010
  };
1011
  }
1012
 
1013
  var detect$1 = function (candidates, userAgent) {
1014
  var agent = String(userAgent).toLowerCase();
1015
- return $_4jja6kk5jfuvixx1.find(candidates, function (candidate) {
1016
  return candidate.search(agent);
1017
  });
1018
  };
1019
  var detectBrowser = function (browsers, userAgent) {
1020
  return detect$1(browsers, userAgent).map(function (browser) {
1021
- var version = $_9sqjpfkxjfuviy1v.detect(browser.versionRegexes, userAgent);
1022
  return {
1023
  current: browser.name,
1024
  version: version
@@ -1027,56 +815,18 @@ var table = (function () {
1027
  };
1028
  var detectOs = function (oses, userAgent) {
1029
  return detect$1(oses, userAgent).map(function (os) {
1030
- var version = $_9sqjpfkxjfuviy1v.detect(os.versionRegexes, userAgent);
1031
  return {
1032
  current: os.name,
1033
  version: version
1034
  };
1035
  });
1036
  };
1037
- var $_96kc15l0jfuviy23 = {
1038
  detectBrowser: detectBrowser,
1039
  detectOs: detectOs
1040
  };
1041
 
1042
- var addToStart = function (str, prefix) {
1043
- return prefix + str;
1044
- };
1045
- var addToEnd = function (str, suffix) {
1046
- return str + suffix;
1047
- };
1048
- var removeFromStart = function (str, numChars) {
1049
- return str.substring(numChars);
1050
- };
1051
- var removeFromEnd = function (str, numChars) {
1052
- return str.substring(0, str.length - numChars);
1053
- };
1054
- var $_2zxn62l3jfuviy2i = {
1055
- addToStart: addToStart,
1056
- addToEnd: addToEnd,
1057
- removeFromStart: removeFromStart,
1058
- removeFromEnd: removeFromEnd
1059
- };
1060
-
1061
- var first = function (str, count) {
1062
- return str.substr(0, count);
1063
- };
1064
- var last$1 = function (str, count) {
1065
- return str.substr(str.length - count, str.length);
1066
- };
1067
- var head$1 = function (str) {
1068
- return str === '' ? Option.none() : Option.some(str.substr(0, 1));
1069
- };
1070
- var tail = function (str) {
1071
- return str === '' ? Option.none() : Option.some(str.substring(1));
1072
- };
1073
- var $_52rhkfl4jfuviy2j = {
1074
- first: first,
1075
- last: last$1,
1076
- head: head$1,
1077
- tail: tail
1078
- };
1079
-
1080
  var checkRange = function (str, substr, start) {
1081
  if (substr === '')
1082
  return true;
@@ -1085,72 +835,27 @@ var table = (function () {
1085
  var x = str.substr(start, start + substr.length);
1086
  return x === substr;
1087
  };
1088
- var supplant = function (str, obj) {
1089
- var isStringOrNumber = function (a) {
1090
- var t = typeof a;
1091
- return t === 'string' || t === 'number';
1092
- };
1093
- return str.replace(/\${([^{}]*)}/g, function (a, b) {
1094
- var value = obj[b];
1095
- return isStringOrNumber(value) ? value : a;
1096
- });
1097
- };
1098
- var removeLeading = function (str, prefix) {
1099
- return startsWith(str, prefix) ? $_2zxn62l3jfuviy2i.removeFromStart(str, prefix.length) : str;
1100
- };
1101
- var removeTrailing = function (str, prefix) {
1102
- return endsWith(str, prefix) ? $_2zxn62l3jfuviy2i.removeFromEnd(str, prefix.length) : str;
1103
- };
1104
- var ensureLeading = function (str, prefix) {
1105
- return startsWith(str, prefix) ? str : $_2zxn62l3jfuviy2i.addToStart(str, prefix);
1106
- };
1107
- var ensureTrailing = function (str, prefix) {
1108
- return endsWith(str, prefix) ? str : $_2zxn62l3jfuviy2i.addToEnd(str, prefix);
1109
- };
1110
  var contains$1 = function (str, substr) {
1111
  return str.indexOf(substr) !== -1;
1112
  };
1113
- var capitalize = function (str) {
1114
- return $_52rhkfl4jfuviy2j.head(str).bind(function (head) {
1115
- return $_52rhkfl4jfuviy2j.tail(str).map(function (tail) {
1116
- return head.toUpperCase() + tail;
1117
- });
1118
- }).getOr(str);
1119
- };
1120
- var startsWith = function (str, prefix) {
1121
- return checkRange(str, prefix, 0);
1122
- };
1123
  var endsWith = function (str, suffix) {
1124
  return checkRange(str, suffix, str.length - suffix.length);
1125
  };
1126
  var trim = function (str) {
1127
  return str.replace(/^\s+|\s+$/g, '');
1128
  };
1129
- var lTrim = function (str) {
1130
- return str.replace(/^\s+/g, '');
1131
- };
1132
- var rTrim = function (str) {
1133
- return str.replace(/\s+$/g, '');
1134
- };
1135
- var $_2rmckll2jfuviy2d = {
1136
- supplant: supplant,
1137
- startsWith: startsWith,
1138
- removeLeading: removeLeading,
1139
- removeTrailing: removeTrailing,
1140
- ensureLeading: ensureLeading,
1141
- ensureTrailing: ensureTrailing,
1142
- endsWith: endsWith,
1143
- contains: contains$1,
1144
- trim: trim,
1145
- lTrim: lTrim,
1146
- rTrim: rTrim,
1147
- capitalize: capitalize
1148
- };
1149
 
1150
  var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
1151
  var checkContains = function (target) {
1152
  return function (uastring) {
1153
- return $_2rmckll2jfuviy2d.contains(uastring, target);
1154
  };
1155
  };
1156
  var browsers = [
@@ -1158,7 +863,7 @@ var table = (function () {
1158
  name: 'Edge',
1159
  versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
1160
  search: function (uastring) {
1161
- var monstrosity = $_2rmckll2jfuviy2d.contains(uastring, 'edge/') && $_2rmckll2jfuviy2d.contains(uastring, 'chrome') && $_2rmckll2jfuviy2d.contains(uastring, 'safari') && $_2rmckll2jfuviy2d.contains(uastring, 'applewebkit');
1162
  return monstrosity;
1163
  }
1164
  },
@@ -1169,7 +874,7 @@ var table = (function () {
1169
  normalVersionRegex
1170
  ],
1171
  search: function (uastring) {
1172
- return $_2rmckll2jfuviy2d.contains(uastring, 'chrome') && !$_2rmckll2jfuviy2d.contains(uastring, 'chromeframe');
1173
  }
1174
  },
1175
  {
@@ -1179,7 +884,7 @@ var table = (function () {
1179
  /.*?rv:([0-9]+)\.([0-9]+).*/
1180
  ],
1181
  search: function (uastring) {
1182
- return $_2rmckll2jfuviy2d.contains(uastring, 'msie') || $_2rmckll2jfuviy2d.contains(uastring, 'trident');
1183
  }
1184
  },
1185
  {
@@ -1202,7 +907,7 @@ var table = (function () {
1202
  /.*?cpu os ([0-9]+)_([0-9]+).*/
1203
  ],
1204
  search: function (uastring) {
1205
- return ($_2rmckll2jfuviy2d.contains(uastring, 'safari') || $_2rmckll2jfuviy2d.contains(uastring, 'mobile/')) && $_2rmckll2jfuviy2d.contains(uastring, 'applewebkit');
1206
  }
1207
  }
1208
  ];
@@ -1215,7 +920,7 @@ var table = (function () {
1215
  {
1216
  name: 'iOS',
1217
  search: function (uastring) {
1218
- return $_2rmckll2jfuviy2d.contains(uastring, 'iphone') || $_2rmckll2jfuviy2d.contains(uastring, 'ipad');
1219
  },
1220
  versionRegexes: [
1221
  /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
@@ -1249,16 +954,16 @@ var table = (function () {
1249
  versionRegexes: []
1250
  }
1251
  ];
1252
- var $_5ncirnl1jfuviy27 = {
1253
- browsers: $_fdch7uk7jfuvixxb.constant(browsers),
1254
- oses: $_fdch7uk7jfuvixxb.constant(oses)
1255
  };
1256
 
1257
  var detect$2 = function (userAgent) {
1258
- var browsers = $_5ncirnl1jfuviy27.browsers();
1259
- var oses = $_5ncirnl1jfuviy27.oses();
1260
- var browser = $_96kc15l0jfuviy23.detectBrowser(browsers, userAgent).fold($_c33ahakwjfuviy1s.unknown, $_c33ahakwjfuviy1s.nu);
1261
- var os = $_96kc15l0jfuviy23.detectOs(oses, userAgent).fold($_frrfmikyjfuviy1w.unknown, $_frrfmikyjfuviy1w.nu);
1262
  var deviceType = DeviceType(os, browser, userAgent);
1263
  return {
1264
  browser: browser,
@@ -1266,13 +971,13 @@ var table = (function () {
1266
  deviceType: deviceType
1267
  };
1268
  };
1269
- var $_9d5oodkvjfuviy1q = { detect: detect$2 };
1270
 
1271
- var detect$3 = $_eprzwrkujfuviy1p.cached(function () {
1272
  var userAgent = navigator.userAgent;
1273
- return $_9d5oodkvjfuviy1q.detect(userAgent);
1274
  });
1275
- var $_8chrc7ktjfuviy1m = { detect: detect$3 };
1276
 
1277
  var eq = function (e1, e2) {
1278
  return e1.dom() === e2.dom();
@@ -1281,56 +986,55 @@ var table = (function () {
1281
  return e1.dom().isEqualNode(e2.dom());
1282
  };
1283
  var member = function (element, elements) {
1284
- return $_4jja6kk5jfuvixx1.exists(elements, $_fdch7uk7jfuvixxb.curry(eq, element));
1285
  };
1286
  var regularContains = function (e1, e2) {
1287
  var d1 = e1.dom(), d2 = e2.dom();
1288
  return d1 === d2 ? false : d1.contains(d2);
1289
  };
1290
  var ieContains = function (e1, e2) {
1291
- return $_af30gpkpjfuviy1g.documentPositionContainedBy(e1.dom(), e2.dom());
1292
  };
1293
- var browser = $_8chrc7ktjfuviy1m.detect().browser;
1294
  var contains$2 = browser.isIE() ? ieContains : regularContains;
1295
- var $_g6ztqikojfuviy13 = {
1296
  eq: eq,
1297
  isEqualNode: isEqualNode,
1298
  member: member,
1299
  contains: contains$2,
1300
- is: $_aphf8fkjjfuviy04.is
1301
  };
1302
 
1303
  var owner = function (element) {
1304
- return $_4sdhm4kkjfuviy0e.fromDom(element.dom().ownerDocument);
1305
  };
1306
  var documentElement = function (element) {
1307
- var doc = owner(element);
1308
- return $_4sdhm4kkjfuviy0e.fromDom(doc.dom().documentElement);
1309
  };
1310
  var defaultView = function (element) {
1311
  var el = element.dom();
1312
  var defaultView = el.ownerDocument.defaultView;
1313
- return $_4sdhm4kkjfuviy0e.fromDom(defaultView);
1314
  };
1315
  var parent = function (element) {
1316
  var dom = element.dom();
1317
- return Option.from(dom.parentNode).map($_4sdhm4kkjfuviy0e.fromDom);
1318
  };
1319
  var findIndex$1 = function (element) {
1320
  return parent(element).bind(function (p) {
1321
  var kin = children(p);
1322
- return $_4jja6kk5jfuvixx1.findIndex(kin, function (elem) {
1323
- return $_g6ztqikojfuviy13.eq(element, elem);
1324
  });
1325
  });
1326
  };
1327
  var parents = function (element, isRoot) {
1328
- var stop = $_13kw1fk8jfuvixxd.isFunction(isRoot) ? isRoot : $_fdch7uk7jfuvixxb.constant(false);
1329
  var dom = element.dom();
1330
  var ret = [];
1331
  while (dom.parentNode !== null && dom.parentNode !== undefined) {
1332
  var rawParent = dom.parentNode;
1333
- var parent = $_4sdhm4kkjfuviy0e.fromDom(rawParent);
1334
  ret.push(parent);
1335
  if (stop(parent) === true)
1336
  break;
@@ -1341,37 +1045,37 @@ var table = (function () {
1341
  };
1342
  var siblings = function (element) {
1343
  var filterSelf = function (elements) {
1344
- return $_4jja6kk5jfuvixx1.filter(elements, function (x) {
1345
- return !$_g6ztqikojfuviy13.eq(element, x);
1346
  });
1347
  };
1348
  return parent(element).map(children).map(filterSelf).getOr([]);
1349
  };
1350
  var offsetParent = function (element) {
1351
  var dom = element.dom();
1352
- return Option.from(dom.offsetParent).map($_4sdhm4kkjfuviy0e.fromDom);
1353
  };
1354
  var prevSibling = function (element) {
1355
  var dom = element.dom();
1356
- return Option.from(dom.previousSibling).map($_4sdhm4kkjfuviy0e.fromDom);
1357
  };
1358
  var nextSibling = function (element) {
1359
  var dom = element.dom();
1360
- return Option.from(dom.nextSibling).map($_4sdhm4kkjfuviy0e.fromDom);
1361
  };
1362
  var prevSiblings = function (element) {
1363
- return $_4jja6kk5jfuvixx1.reverse($_a5zu42knjfuviy12.toArray(element, prevSibling));
1364
  };
1365
  var nextSiblings = function (element) {
1366
- return $_a5zu42knjfuviy12.toArray(element, nextSibling);
1367
  };
1368
  var children = function (element) {
1369
  var dom = element.dom();
1370
- return $_4jja6kk5jfuvixx1.map(dom.childNodes, $_4sdhm4kkjfuviy0e.fromDom);
1371
  };
1372
  var child = function (element, index) {
1373
  var children = element.dom().childNodes;
1374
- return Option.from(children[index]).map($_4sdhm4kkjfuviy0e.fromDom);
1375
  };
1376
  var firstChild = function (element) {
1377
  return child(element, 0);
@@ -1385,12 +1089,12 @@ var table = (function () {
1385
  var hasChildNodes = function (element) {
1386
  return element.dom().hasChildNodes();
1387
  };
1388
- var spot = $_96oqrskbjfuvixya.immutable('element', 'offset');
1389
  var leaf = function (element, offset) {
1390
  var cs = children(element);
1391
  return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);
1392
  };
1393
- var $_87w3h3kmjfuviy0m = {
1394
  owner: owner,
1395
  defaultView: defaultView,
1396
  documentElement: documentElement,
@@ -1413,14 +1117,14 @@ var table = (function () {
1413
  };
1414
 
1415
  var firstLayer = function (scope, selector) {
1416
- return filterFirstLayer(scope, selector, $_fdch7uk7jfuvixxb.constant(true));
1417
  };
1418
  var filterFirstLayer = function (scope, selector, predicate) {
1419
- return $_4jja6kk5jfuvixx1.bind($_87w3h3kmjfuviy0m.children(scope), function (x) {
1420
- return $_aphf8fkjjfuviy04.is(x, selector) ? predicate(x) ? [x] : [] : filterFirstLayer(x, selector, predicate);
1421
  });
1422
  };
1423
- var $_f9na0ikijfuvixzq = {
1424
  firstLayer: firstLayer,
1425
  filterFirstLayer: filterFirstLayer
1426
  };
@@ -1441,12 +1145,12 @@ var table = (function () {
1441
  };
1442
  };
1443
  var isComment = function (element) {
1444
- return type(element) === $_9kanxfkljfuviy0l.COMMENT || name(element) === '#comment';
1445
  };
1446
- var isElement = isType$1($_9kanxfkljfuviy0l.ELEMENT);
1447
- var isText = isType$1($_9kanxfkljfuviy0l.TEXT);
1448
- var isDocument = isType$1($_9kanxfkljfuviy0l.DOCUMENT);
1449
- var $_6mcqmml6jfuviy2u = {
1450
  name: name,
1451
  type: type,
1452
  value: value,
@@ -1457,7 +1161,7 @@ var table = (function () {
1457
  };
1458
 
1459
  var rawSet = function (dom, key, value) {
1460
- if ($_13kw1fk8jfuvixxd.isString(value) || $_13kw1fk8jfuvixxd.isBoolean(value) || $_13kw1fk8jfuvixxd.isNumber(value)) {
1461
  dom.setAttribute(key, value + '');
1462
  } else {
1463
  console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);
@@ -1469,7 +1173,7 @@ var table = (function () {
1469
  };
1470
  var setAll = function (element, attrs) {
1471
  var dom = element.dom();
1472
- $_afb9m6kajfuvixy8.each(attrs, function (v, k) {
1473
  rawSet(dom, k, v);
1474
  });
1475
  };
@@ -1489,7 +1193,7 @@ var table = (function () {
1489
  return attrs === undefined || attrs === null || attrs.length === 0;
1490
  };
1491
  var clone = function (element) {
1492
- return $_4jja6kk5jfuvixx1.foldl(element.dom().attributes, function (acc, attr) {
1493
  acc[attr.name] = attr.value;
1494
  return acc;
1495
  }, {});
@@ -1499,13 +1203,13 @@ var table = (function () {
1499
  set(destination, attr, get(source, attr));
1500
  };
1501
  var transfer = function (source, destination, attrs) {
1502
- if (!$_6mcqmml6jfuviy2u.isElement(source) || !$_6mcqmml6jfuviy2u.isElement(destination))
1503
  return;
1504
- $_4jja6kk5jfuvixx1.each(attrs, function (attr) {
1505
  transferOne(source, destination, attr);
1506
  });
1507
  };
1508
- var $_2ekobel5jfuviy2m = {
1509
  clone: clone,
1510
  set: set,
1511
  setAll: setAll,
@@ -1517,39 +1221,39 @@ var table = (function () {
1517
  };
1518
 
1519
  var inBody = function (element) {
1520
- var dom = $_6mcqmml6jfuviy2u.isText(element) ? element.dom().parentNode : element.dom();
1521
  return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);
1522
  };
1523
- var body = $_eprzwrkujfuviy1p.cached(function () {
1524
- return getBody($_4sdhm4kkjfuviy0e.fromDom(document));
1525
  });
1526
  var getBody = function (doc) {
1527
  var body = doc.dom().body;
1528
  if (body === null || body === undefined)
1529
  throw 'Body is not available yet';
1530
- return $_4sdhm4kkjfuviy0e.fromDom(body);
1531
  };
1532
- var $_43dxxcl9jfuviy31 = {
1533
  body: body,
1534
  getBody: getBody,
1535
  inBody: inBody
1536
  };
1537
 
1538
  var all$1 = function (predicate) {
1539
- return descendants($_43dxxcl9jfuviy31.body(), predicate);
1540
  };
1541
  var ancestors = function (scope, predicate, isRoot) {
1542
- return $_4jja6kk5jfuvixx1.filter($_87w3h3kmjfuviy0m.parents(scope, isRoot), predicate);
1543
  };
1544
  var siblings$1 = function (scope, predicate) {
1545
- return $_4jja6kk5jfuvixx1.filter($_87w3h3kmjfuviy0m.siblings(scope), predicate);
1546
  };
1547
  var children$1 = function (scope, predicate) {
1548
- return $_4jja6kk5jfuvixx1.filter($_87w3h3kmjfuviy0m.children(scope), predicate);
1549
  };
1550
  var descendants = function (scope, predicate) {
1551
  var result = [];
1552
- $_4jja6kk5jfuvixx1.each($_87w3h3kmjfuviy0m.children(scope), function (x) {
1553
  if (predicate(x)) {
1554
  result = result.concat([x]);
1555
  }
@@ -1557,7 +1261,7 @@ var table = (function () {
1557
  });
1558
  return result;
1559
  };
1560
- var $_g5dooll8jfuviy2x = {
1561
  all: all$1,
1562
  ancestors: ancestors,
1563
  siblings: siblings$1,
@@ -1566,27 +1270,27 @@ var table = (function () {
1566
  };
1567
 
1568
  var all$2 = function (selector) {
1569
- return $_aphf8fkjjfuviy04.all(selector);
1570
  };
1571
  var ancestors$1 = function (scope, selector, isRoot) {
1572
- return $_g5dooll8jfuviy2x.ancestors(scope, function (e) {
1573
- return $_aphf8fkjjfuviy04.is(e, selector);
1574
  }, isRoot);
1575
  };
1576
  var siblings$2 = function (scope, selector) {
1577
- return $_g5dooll8jfuviy2x.siblings(scope, function (e) {
1578
- return $_aphf8fkjjfuviy04.is(e, selector);
1579
  });
1580
  };
1581
  var children$2 = function (scope, selector) {
1582
- return $_g5dooll8jfuviy2x.children(scope, function (e) {
1583
- return $_aphf8fkjjfuviy04.is(e, selector);
1584
  });
1585
  };
1586
  var descendants$1 = function (scope, selector) {
1587
- return $_aphf8fkjjfuviy04.all(selector, scope);
1588
  };
1589
- var $_a3hs1bl7jfuviy2w = {
1590
  all: all$2,
1591
  ancestors: ancestors$1,
1592
  siblings: siblings$2,
@@ -1595,18 +1299,18 @@ var table = (function () {
1595
  };
1596
 
1597
  function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
1598
- return is(scope, a) ? Option.some(scope) : $_13kw1fk8jfuvixxd.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
1599
  }
1600
 
1601
  var first$1 = function (predicate) {
1602
- return descendant($_43dxxcl9jfuviy31.body(), predicate);
1603
  };
1604
  var ancestor = function (scope, predicate, isRoot) {
1605
  var element = scope.dom();
1606
- var stop = $_13kw1fk8jfuvixxd.isFunction(isRoot) ? isRoot : $_fdch7uk7jfuvixxb.constant(false);
1607
  while (element.parentNode) {
1608
  element = element.parentNode;
1609
- var el = $_4sdhm4kkjfuviy0e.fromDom(element);
1610
  if (predicate(el))
1611
  return Option.some(el);
1612
  else if (stop(el))
@@ -1624,20 +1328,20 @@ var table = (function () {
1624
  var element = scope.dom();
1625
  if (!element.parentNode)
1626
  return Option.none();
1627
- return child$1($_4sdhm4kkjfuviy0e.fromDom(element.parentNode), function (x) {
1628
- return !$_g6ztqikojfuviy13.eq(scope, x) && predicate(x);
1629
  });
1630
  };
1631
  var child$1 = function (scope, predicate) {
1632
- var result = $_4jja6kk5jfuvixx1.find(scope.dom().childNodes, $_fdch7uk7jfuvixxb.compose(predicate, $_4sdhm4kkjfuviy0e.fromDom));
1633
- return result.map($_4sdhm4kkjfuviy0e.fromDom);
1634
  };
1635
  var descendant = function (scope, predicate) {
1636
- var descend = function (element) {
1637
- for (var i = 0; i < element.childNodes.length; i++) {
1638
- if (predicate($_4sdhm4kkjfuviy0e.fromDom(element.childNodes[i])))
1639
- return Option.some($_4sdhm4kkjfuviy0e.fromDom(element.childNodes[i]));
1640
- var res = descend(element.childNodes[i]);
1641
  if (res.isSome())
1642
  return res;
1643
  }
@@ -1645,7 +1349,7 @@ var table = (function () {
1645
  };
1646
  return descend(scope.dom());
1647
  };
1648
- var $_eg4f87lbjfuviy37 = {
1649
  first: first$1,
1650
  ancestor: ancestor,
1651
  closest: closest,
@@ -1655,30 +1359,30 @@ var table = (function () {
1655
  };
1656
 
1657
  var first$2 = function (selector) {
1658
- return $_aphf8fkjjfuviy04.one(selector);
1659
  };
1660
  var ancestor$1 = function (scope, selector, isRoot) {
1661
- return $_eg4f87lbjfuviy37.ancestor(scope, function (e) {
1662
- return $_aphf8fkjjfuviy04.is(e, selector);
1663
  }, isRoot);
1664
  };
1665
  var sibling$1 = function (scope, selector) {
1666
- return $_eg4f87lbjfuviy37.sibling(scope, function (e) {
1667
- return $_aphf8fkjjfuviy04.is(e, selector);
1668
  });
1669
  };
1670
  var child$2 = function (scope, selector) {
1671
- return $_eg4f87lbjfuviy37.child(scope, function (e) {
1672
- return $_aphf8fkjjfuviy04.is(e, selector);
1673
  });
1674
  };
1675
  var descendant$1 = function (scope, selector) {
1676
- return $_aphf8fkjjfuviy04.one(selector, scope);
1677
  };
1678
  var closest$1 = function (scope, selector, isRoot) {
1679
- return ClosestOrAncestor($_aphf8fkjjfuviy04.is, ancestor$1, scope, selector, isRoot);
1680
  };
1681
- var $_26gnp6lajfuviy35 = {
1682
  first: first$2,
1683
  ancestor: ancestor$1,
1684
  sibling: sibling$1,
@@ -1688,15 +1392,15 @@ var table = (function () {
1688
  };
1689
 
1690
  var lookup = function (tags, element, _isRoot) {
1691
- var isRoot = _isRoot !== undefined ? _isRoot : $_fdch7uk7jfuvixxb.constant(false);
1692
  if (isRoot(element))
1693
  return Option.none();
1694
- if ($_4jja6kk5jfuvixx1.contains(tags, $_6mcqmml6jfuviy2u.name(element)))
1695
  return Option.some(element);
1696
  var isRootOrUpperTable = function (element) {
1697
- return $_aphf8fkjjfuviy04.is(element, 'table') || isRoot(element);
1698
  };
1699
- return $_26gnp6lajfuviy35.ancestor(element, tags.join(','), isRootOrUpperTable);
1700
  };
1701
  var cell = function (element, isRoot) {
1702
  return lookup([
@@ -1705,7 +1409,7 @@ var table = (function () {
1705
  ], element, isRoot);
1706
  };
1707
  var cells = function (ancestor) {
1708
- return $_f9na0ikijfuvixzq.firstLayer(ancestor, 'th,td');
1709
  };
1710
  var notCell = function (element, isRoot) {
1711
  return lookup([
@@ -1717,33 +1421,33 @@ var table = (function () {
1717
  ], element, isRoot);
1718
  };
1719
  var neighbours = function (selector, element) {
1720
- return $_87w3h3kmjfuviy0m.parent(element).map(function (parent) {
1721
- return $_a3hs1bl7jfuviy2w.children(parent, selector);
1722
  });
1723
  };
1724
- var neighbourCells = $_fdch7uk7jfuvixxb.curry(neighbours, 'th,td');
1725
- var neighbourRows = $_fdch7uk7jfuvixxb.curry(neighbours, 'tr');
1726
  var firstCell = function (ancestor) {
1727
- return $_26gnp6lajfuviy35.descendant(ancestor, 'th,td');
1728
  };
1729
  var table = function (element, isRoot) {
1730
- return $_26gnp6lajfuviy35.closest(element, 'table', isRoot);
1731
  };
1732
  var row = function (element, isRoot) {
1733
  return lookup(['tr'], element, isRoot);
1734
  };
1735
  var rows = function (ancestor) {
1736
- return $_f9na0ikijfuvixzq.firstLayer(ancestor, 'tr');
1737
  };
1738
  var attr = function (element, property) {
1739
- return parseInt($_2ekobel5jfuviy2m.get(element, property), 10);
1740
  };
1741
  var grid$1 = function (element, rowProp, colProp) {
1742
  var rows = attr(element, rowProp);
1743
  var cols = attr(element, colProp);
1744
- return $_g02m1vkgjfuvixyt.grid(rows, cols);
1745
  };
1746
- var $_dmqxswkhjfuvixyz = {
1747
  cell: cell,
1748
  firstCell: firstCell,
1749
  cells: cells,
@@ -1758,33 +1462,33 @@ var table = (function () {
1758
  };
1759
 
1760
  var fromTable = function (table) {
1761
- var rows = $_dmqxswkhjfuvixyz.rows(table);
1762
- return $_4jja6kk5jfuvixx1.map(rows, function (row) {
1763
  var element = row;
1764
- var parent = $_87w3h3kmjfuviy0m.parent(element);
1765
- var parentSection = parent.bind(function (parent) {
1766
- var parentName = $_6mcqmml6jfuviy2u.name(parent);
1767
  return parentName === 'tfoot' || parentName === 'thead' || parentName === 'tbody' ? parentName : 'tbody';
 
 
 
 
 
1768
  });
1769
- var cells = $_4jja6kk5jfuvixx1.map($_dmqxswkhjfuvixyz.cells(row), function (cell) {
1770
- var rowspan = $_2ekobel5jfuviy2m.has(cell, 'rowspan') ? parseInt($_2ekobel5jfuviy2m.get(cell, 'rowspan'), 10) : 1;
1771
- var colspan = $_2ekobel5jfuviy2m.has(cell, 'colspan') ? parseInt($_2ekobel5jfuviy2m.get(cell, 'colspan'), 10) : 1;
1772
- return $_g02m1vkgjfuvixyt.detail(cell, rowspan, colspan);
1773
- });
1774
- return $_g02m1vkgjfuvixyt.rowdata(element, cells, parentSection);
1775
  });
1776
  };
1777
  var fromPastedRows = function (rows, example) {
1778
- return $_4jja6kk5jfuvixx1.map(rows, function (row) {
1779
- var cells = $_4jja6kk5jfuvixx1.map($_dmqxswkhjfuvixyz.cells(row), function (cell) {
1780
- var rowspan = $_2ekobel5jfuviy2m.has(cell, 'rowspan') ? parseInt($_2ekobel5jfuviy2m.get(cell, 'rowspan'), 10) : 1;
1781
- var colspan = $_2ekobel5jfuviy2m.has(cell, 'colspan') ? parseInt($_2ekobel5jfuviy2m.get(cell, 'colspan'), 10) : 1;
1782
- return $_g02m1vkgjfuvixyt.detail(cell, rowspan, colspan);
1783
  });
1784
- return $_g02m1vkgjfuvixyt.rowdata(row, cells, example.section());
1785
  });
1786
  };
1787
- var $_2vc4gykfjfuvixyi = {
1788
  fromTable: fromTable,
1789
  fromPastedRows: fromPastedRows
1790
  };
@@ -1803,24 +1507,24 @@ var table = (function () {
1803
  return filtered.length > 0 ? Option.some(filtered[0]) : Option.none();
1804
  };
1805
  var filterItems = function (warehouse, predicate) {
1806
- var all = $_4jja6kk5jfuvixx1.bind(warehouse.all(), function (r) {
1807
  return r.cells();
1808
  });
1809
- return $_4jja6kk5jfuvixx1.filter(all, predicate);
1810
  };
1811
  var generate = function (list) {
1812
  var access = {};
1813
  var cells = [];
1814
  var maxRows = list.length;
1815
  var maxColumns = 0;
1816
- $_4jja6kk5jfuvixx1.each(list, function (details, r) {
1817
  var currentRow = [];
1818
- $_4jja6kk5jfuvixx1.each(details.cells(), function (detail, c) {
1819
  var start = 0;
1820
  while (access[key(r, start)] !== undefined) {
1821
  start++;
1822
  }
1823
- var current = $_g02m1vkgjfuvixyt.extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);
1824
  for (var i = 0; i < detail.colspan(); i++) {
1825
  for (var j = 0; j < detail.rowspan(); j++) {
1826
  var cr = r + j;
@@ -1832,22 +1536,22 @@ var table = (function () {
1832
  }
1833
  currentRow.push(current);
1834
  });
1835
- cells.push($_g02m1vkgjfuvixyt.rowdata(details.element(), currentRow, details.section()));
1836
  });
1837
- var grid = $_g02m1vkgjfuvixyt.grid(maxRows, maxColumns);
1838
  return {
1839
- grid: $_fdch7uk7jfuvixxb.constant(grid),
1840
- access: $_fdch7uk7jfuvixxb.constant(access),
1841
- all: $_fdch7uk7jfuvixxb.constant(cells)
1842
  };
1843
  };
1844
  var justCells = function (warehouse) {
1845
- var rows = $_4jja6kk5jfuvixx1.map(warehouse.all(), function (w) {
1846
  return w.cells();
1847
  });
1848
- return $_4jja6kk5jfuvixx1.flatten(rows);
1849
  };
1850
- var $_bwrthsldjfuviy3q = {
1851
  generate: generate,
1852
  getAt: getAt,
1853
  findItem: findItem,
@@ -1858,18 +1562,18 @@ var table = (function () {
1858
  var isSupported = function (dom) {
1859
  return dom.style !== undefined;
1860
  };
1861
- var $_3bn25blfjfuviy4f = { isSupported: isSupported };
1862
 
1863
  var internalSet = function (dom, property, value) {
1864
- if (!$_13kw1fk8jfuvixxd.isString(value)) {
1865
  console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
1866
  throw new Error('CSS value must be a string: ' + value);
1867
  }
1868
- if ($_3bn25blfjfuviy4f.isSupported(dom))
1869
  dom.style.setProperty(property, value);
1870
  };
1871
  var internalRemove = function (dom, property) {
1872
- if ($_3bn25blfjfuviy4f.isSupported(dom))
1873
  dom.style.removeProperty(property);
1874
  };
1875
  var set$1 = function (element, property, value) {
@@ -1878,13 +1582,13 @@ var table = (function () {
1878
  };
1879
  var setAll$1 = function (element, css) {
1880
  var dom = element.dom();
1881
- $_afb9m6kajfuvixy8.each(css, function (v, k) {
1882
  internalSet(dom, k, v);
1883
  });
1884
  };
1885
  var setOptions = function (element, css) {
1886
  var dom = element.dom();
1887
- $_afb9m6kajfuvixy8.each(css, function (v, k) {
1888
  v.fold(function () {
1889
  internalRemove(dom, k);
1890
  }, function (value) {
@@ -1896,11 +1600,11 @@ var table = (function () {
1896
  var dom = element.dom();
1897
  var styles = window.getComputedStyle(dom);
1898
  var r = styles.getPropertyValue(property);
1899
- var v = r === '' && !$_43dxxcl9jfuviy31.inBody(element) ? getUnsafeProperty(dom, property) : r;
1900
  return v === null ? undefined : v;
1901
  };
1902
  var getUnsafeProperty = function (dom, property) {
1903
- return $_3bn25blfjfuviy4f.isSupported(dom) ? dom.style.getPropertyValue(property) : '';
1904
  };
1905
  var getRaw = function (element, property) {
1906
  var dom = element.dom();
@@ -1912,7 +1616,7 @@ var table = (function () {
1912
  var getAllRaw = function (element) {
1913
  var css = {};
1914
  var dom = element.dom();
1915
- if ($_3bn25blfjfuviy4f.isSupported(dom)) {
1916
  for (var i = 0; i < dom.style.length; i++) {
1917
  var ruleName = dom.style.item(i);
1918
  css[ruleName] = dom.style[ruleName];
@@ -1921,7 +1625,7 @@ var table = (function () {
1921
  return css;
1922
  };
1923
  var isValidValue = function (tag, property, value) {
1924
- var element = $_4sdhm4kkjfuviy0e.fromTag(tag);
1925
  set$1(element, property, value);
1926
  var style = getRaw(element, property);
1927
  return style.isSome();
@@ -1929,21 +1633,21 @@ var table = (function () {
1929
  var remove$1 = function (element, property) {
1930
  var dom = element.dom();
1931
  internalRemove(dom, property);
1932
- if ($_2ekobel5jfuviy2m.has(element, 'style') && $_2rmckll2jfuviy2d.trim($_2ekobel5jfuviy2m.get(element, 'style')) === '') {
1933
- $_2ekobel5jfuviy2m.remove(element, 'style');
1934
  }
1935
  };
1936
  var preserve = function (element, f) {
1937
- var oldStyles = $_2ekobel5jfuviy2m.get(element, 'style');
1938
  var result = f(element);
1939
- var restore = oldStyles === undefined ? $_2ekobel5jfuviy2m.remove : $_2ekobel5jfuviy2m.set;
1940
  restore(element, 'style', oldStyles);
1941
  return result;
1942
  };
1943
  var copy = function (source, target) {
1944
  var sourceDom = source.dom();
1945
  var targetDom = target.dom();
1946
- if ($_3bn25blfjfuviy4f.isSupported(sourceDom) && $_3bn25blfjfuviy4f.isSupported(targetDom)) {
1947
  targetDom.style.cssText = sourceDom.style.cssText;
1948
  }
1949
  };
@@ -1957,13 +1661,13 @@ var table = (function () {
1957
  });
1958
  };
1959
  var transfer$1 = function (source, destination, styles) {
1960
- if (!$_6mcqmml6jfuviy2u.isElement(source) || !$_6mcqmml6jfuviy2u.isElement(destination))
1961
  return;
1962
- $_4jja6kk5jfuvixx1.each(styles, function (style) {
1963
  transferOne$1(source, destination, style);
1964
  });
1965
  };
1966
- var $_2lr8nrlejfuviy40 = {
1967
  copy: copy,
1968
  set: set$1,
1969
  preserve: preserve,
@@ -1979,15 +1683,15 @@ var table = (function () {
1979
  };
1980
 
1981
  var before = function (marker, element) {
1982
- var parent = $_87w3h3kmjfuviy0m.parent(marker);
1983
  parent.each(function (v) {
1984
  v.dom().insertBefore(element.dom(), marker.dom());
1985
  });
1986
  };
1987
  var after = function (marker, element) {
1988
- var sibling = $_87w3h3kmjfuviy0m.nextSibling(marker);
1989
  sibling.fold(function () {
1990
- var parent = $_87w3h3kmjfuviy0m.parent(marker);
1991
  parent.each(function (v) {
1992
  append(v, element);
1993
  });
@@ -1996,7 +1700,7 @@ var table = (function () {
1996
  });
1997
  };
1998
  var prepend = function (parent, element) {
1999
- var firstChild = $_87w3h3kmjfuviy0m.firstChild(parent);
2000
  firstChild.fold(function () {
2001
  append(parent, element);
2002
  }, function (v) {
@@ -2007,7 +1711,7 @@ var table = (function () {
2007
  parent.dom().appendChild(element.dom());
2008
  };
2009
  var appendAt = function (parent, element, index) {
2010
- $_87w3h3kmjfuviy0m.child(parent, index).fold(function () {
2011
  append(parent, element);
2012
  }, function (v) {
2013
  before(v, element);
@@ -2017,7 +1721,7 @@ var table = (function () {
2017
  before(element, wrapper);
2018
  append(wrapper, element);
2019
  };
2020
- var $_5zcsfmlgjfuviy4g = {
2021
  before: before,
2022
  after: after,
2023
  prepend: prepend,
@@ -2027,27 +1731,27 @@ var table = (function () {
2027
  };
2028
 
2029
  var before$1 = function (marker, elements) {
2030
- $_4jja6kk5jfuvixx1.each(elements, function (x) {
2031
- $_5zcsfmlgjfuviy4g.before(marker, x);
2032
  });
2033
  };
2034
  var after$1 = function (marker, elements) {
2035
- $_4jja6kk5jfuvixx1.each(elements, function (x, i) {
2036
  var e = i === 0 ? marker : elements[i - 1];
2037
- $_5zcsfmlgjfuviy4g.after(e, x);
2038
  });
2039
  };
2040
  var prepend$1 = function (parent, elements) {
2041
- $_4jja6kk5jfuvixx1.each(elements.slice().reverse(), function (x) {
2042
- $_5zcsfmlgjfuviy4g.prepend(parent, x);
2043
  });
2044
  };
2045
  var append$1 = function (parent, elements) {
2046
- $_4jja6kk5jfuvixx1.each(elements, function (x) {
2047
- $_5zcsfmlgjfuviy4g.append(parent, x);
2048
  });
2049
  };
2050
- var $_44mr3plijfuviy4p = {
2051
  before: before$1,
2052
  after: after$1,
2053
  prepend: prepend$1,
@@ -2056,7 +1760,7 @@ var table = (function () {
2056
 
2057
  var empty = function (element) {
2058
  element.dom().textContent = '';
2059
- $_4jja6kk5jfuvixx1.each($_87w3h3kmjfuviy0m.children(element), function (rogue) {
2060
  remove$2(rogue);
2061
  });
2062
  };
@@ -2066,18 +1770,18 @@ var table = (function () {
2066
  dom.parentNode.removeChild(dom);
2067
  };
2068
  var unwrap = function (wrapper) {
2069
- var children = $_87w3h3kmjfuviy0m.children(wrapper);
2070
  if (children.length > 0)
2071
- $_44mr3plijfuviy4p.before(wrapper, children);
2072
  remove$2(wrapper);
2073
  };
2074
- var $_5ud3colhjfuviy4l = {
2075
  empty: empty,
2076
  remove: remove$2,
2077
  unwrap: unwrap
2078
  };
2079
 
2080
- var stats = $_96oqrskbjfuvixya.immutable('minRow', 'minCol', 'maxRow', 'maxCol');
2081
  var findSelectedStats = function (house, isSelected) {
2082
  var totalColumns = house.grid().columns();
2083
  var totalRows = house.grid().rows();
@@ -2085,7 +1789,7 @@ var table = (function () {
2085
  var minCol = totalColumns;
2086
  var maxRow = 0;
2087
  var maxCol = 0;
2088
- $_afb9m6kajfuvixy8.each(house.access(), function (detail) {
2089
  if (isSelected(detail)) {
2090
  var startRow = detail.row();
2091
  var endRow = startRow + detail.rowspan() - 1;
@@ -2105,9 +1809,9 @@ var table = (function () {
2105
  };
2106
  var makeCell = function (list, seenSelected, rowIndex) {
2107
  var row = list[rowIndex].element();
2108
- var td = $_4sdhm4kkjfuviy0e.fromTag('td');
2109
- $_5zcsfmlgjfuviy4g.append(td, $_4sdhm4kkjfuviy0e.fromTag('br'));
2110
- var f = seenSelected ? $_5zcsfmlgjfuviy4g.append : $_5zcsfmlgjfuviy4g.prepend;
2111
  f(row, td);
2112
  };
2113
  var fillInGaps = function (list, house, stats, isSelected) {
@@ -2117,7 +1821,7 @@ var table = (function () {
2117
  var seenSelected = false;
2118
  for (var j = 0; j < totalColumns; j++) {
2119
  if (!(i < stats.minRow() || i > stats.maxRow() || j < stats.minCol() || j > stats.maxCol())) {
2120
- var needCell = $_bwrthsldjfuviy3q.getAt(house, i, j).filter(isSelected).isNone();
2121
  if (needCell)
2122
  makeCell(list, seenSelected, i);
2123
  else
@@ -2127,41 +1831,41 @@ var table = (function () {
2127
  }
2128
  };
2129
  var clean = function (table, stats) {
2130
- var emptyRows = $_4jja6kk5jfuvixx1.filter($_f9na0ikijfuvixzq.firstLayer(table, 'tr'), function (row) {
2131
  return row.dom().childElementCount === 0;
2132
  });
2133
- $_4jja6kk5jfuvixx1.each(emptyRows, $_5ud3colhjfuviy4l.remove);
2134
  if (stats.minCol() === stats.maxCol() || stats.minRow() === stats.maxRow()) {
2135
- $_4jja6kk5jfuvixx1.each($_f9na0ikijfuvixzq.firstLayer(table, 'th,td'), function (cell) {
2136
- $_2ekobel5jfuviy2m.remove(cell, 'rowspan');
2137
- $_2ekobel5jfuviy2m.remove(cell, 'colspan');
2138
  });
2139
  }
2140
- $_2ekobel5jfuviy2m.remove(table, 'width');
2141
- $_2ekobel5jfuviy2m.remove(table, 'height');
2142
- $_2lr8nrlejfuviy40.remove(table, 'width');
2143
- $_2lr8nrlejfuviy40.remove(table, 'height');
2144
  };
2145
  var extract = function (table, selectedSelector) {
2146
  var isSelected = function (detail) {
2147
- return $_aphf8fkjjfuviy04.is(detail.element(), selectedSelector);
2148
  };
2149
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
2150
- var house = $_bwrthsldjfuviy3q.generate(list);
2151
  var stats = findSelectedStats(house, isSelected);
2152
  var selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';
2153
- var unselectedCells = $_f9na0ikijfuvixzq.filterFirstLayer(table, 'th,td', function (cell) {
2154
- return $_aphf8fkjjfuviy04.is(cell, selector);
2155
  });
2156
- $_4jja6kk5jfuvixx1.each(unselectedCells, $_5ud3colhjfuviy4l.remove);
2157
  fillInGaps(list, house, stats, isSelected);
2158
  clean(table, stats);
2159
  return table;
2160
  };
2161
- var $_6u5qawk9jfuvixxg = { extract: extract };
2162
 
2163
  var clone$1 = function (original, deep) {
2164
- return $_4sdhm4kkjfuviy0e.fromDom(original.dom().cloneNode(deep));
2165
  };
2166
  var shallow = function (original) {
2167
  return clone$1(original, false);
@@ -2170,26 +1874,26 @@ var table = (function () {
2170
  return clone$1(original, true);
2171
  };
2172
  var shallowAs = function (original, tag) {
2173
- var nu = $_4sdhm4kkjfuviy0e.fromTag(tag);
2174
- var attributes = $_2ekobel5jfuviy2m.clone(original);
2175
- $_2ekobel5jfuviy2m.setAll(nu, attributes);
2176
  return nu;
2177
  };
2178
  var copy$1 = function (original, tag) {
2179
  var nu = shallowAs(original, tag);
2180
- var cloneChildren = $_87w3h3kmjfuviy0m.children(deep(original));
2181
- $_44mr3plijfuviy4p.append(nu, cloneChildren);
2182
  return nu;
2183
  };
2184
  var mutate = function (original, tag) {
2185
  var nu = shallowAs(original, tag);
2186
- $_5zcsfmlgjfuviy4g.before(original, nu);
2187
- var children = $_87w3h3kmjfuviy0m.children(original);
2188
- $_44mr3plijfuviy4p.append(nu, children);
2189
- $_5ud3colhjfuviy4l.remove(original);
2190
  return nu;
2191
  };
2192
- var $_1i39h2lkjfuviy5n = {
2193
  shallow: shallow,
2194
  shallowAs: shallowAs,
2195
  deep: deep,
@@ -2213,7 +1917,7 @@ var table = (function () {
2213
  var getOptionSafe = function (element) {
2214
  return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
2215
  };
2216
- var browser = $_8chrc7ktjfuviy1m.detect().browser;
2217
  var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;
2218
  var set = function (element, value) {
2219
  if (!is(element))
@@ -2227,7 +1931,7 @@ var table = (function () {
2227
  };
2228
  }
2229
 
2230
- var api = NodeValue($_6mcqmml6jfuviy2u.isText, 'text');
2231
  var get$2 = function (element) {
2232
  return api.get(element);
2233
  };
@@ -2237,15 +1941,15 @@ var table = (function () {
2237
  var set$2 = function (element, value) {
2238
  api.set(element, value);
2239
  };
2240
- var $_cvagqflnjfuviy5y = {
2241
  get: get$2,
2242
  getOption: getOption,
2243
  set: set$2
2244
  };
2245
 
2246
  var getEnd = function (element) {
2247
- return $_6mcqmml6jfuviy2u.name(element) === 'img' ? 1 : $_cvagqflnjfuviy5y.getOption(element).fold(function () {
2248
- return $_87w3h3kmjfuviy0m.children(element).length;
2249
  }, function (v) {
2250
  return v.length;
2251
  });
@@ -2258,7 +1962,7 @@ var table = (function () {
2258
  };
2259
  var NBSP = '\xA0';
2260
  var isTextNodeWithCursorPosition = function (el) {
2261
- return $_cvagqflnjfuviy5y.getOption(el).filter(function (text) {
2262
  return text.trim().length !== 0 || text.indexOf(NBSP) > -1;
2263
  }).isSome();
2264
  };
@@ -2268,9 +1972,9 @@ var table = (function () {
2268
  ];
2269
  var isCursorPosition = function (elem) {
2270
  var hasCursorPosition = isTextNodeWithCursorPosition(elem);
2271
- return hasCursorPosition || $_4jja6kk5jfuvixx1.contains(elementsWithCursorPosition, $_6mcqmml6jfuviy2u.name(elem));
2272
  };
2273
- var $_cj2m48lmjfuviy5u = {
2274
  getEnd: getEnd,
2275
  isEnd: isEnd,
2276
  isStart: isStart,
@@ -2278,14 +1982,14 @@ var table = (function () {
2278
  };
2279
 
2280
  var first$3 = function (element) {
2281
- return $_eg4f87lbjfuviy37.descendant(element, $_cj2m48lmjfuviy5u.isCursorPosition);
2282
  };
2283
  var last$2 = function (element) {
2284
- return descendantRtl(element, $_cj2m48lmjfuviy5u.isCursorPosition);
2285
  };
2286
  var descendantRtl = function (scope, predicate) {
2287
  var descend = function (element) {
2288
- var children = $_87w3h3kmjfuviy0m.children(element);
2289
  for (var i = children.length - 1; i >= 0; i--) {
2290
  var child = children[i];
2291
  if (predicate(child))
@@ -2298,23 +2002,23 @@ var table = (function () {
2298
  };
2299
  return descend(scope);
2300
  };
2301
- var $_dsfijblljfuviy5q = {
2302
  first: first$3,
2303
  last: last$2
2304
  };
2305
 
2306
  var cell$1 = function () {
2307
- var td = $_4sdhm4kkjfuviy0e.fromTag('td');
2308
- $_5zcsfmlgjfuviy4g.append(td, $_4sdhm4kkjfuviy0e.fromTag('br'));
2309
  return td;
2310
  };
2311
  var replace = function (cell, tag, attrs) {
2312
- var replica = $_1i39h2lkjfuviy5n.copy(cell, tag);
2313
- $_afb9m6kajfuvixy8.each(attrs, function (v, k) {
2314
  if (v === null)
2315
- $_2ekobel5jfuviy2m.remove(replica, k);
2316
  else
2317
- $_2ekobel5jfuviy2m.set(replica, k, v);
2318
  });
2319
  return replica;
2320
  };
@@ -2323,27 +2027,28 @@ var table = (function () {
2323
  };
2324
  var newRow = function (doc) {
2325
  return function () {
2326
- return $_4sdhm4kkjfuviy0e.fromTag('tr', doc.dom());
2327
  };
2328
  };
2329
  var cloneFormats = function (oldCell, newCell, formats) {
2330
- var first = $_dsfijblljfuviy5q.first(oldCell);
2331
  return first.map(function (firstText) {
2332
  var formatSelector = formats.join(',');
2333
- var parents = $_a3hs1bl7jfuviy2w.ancestors(firstText, formatSelector, function (element) {
2334
- return $_g6ztqikojfuviy13.eq(element, oldCell);
2335
  });
2336
- return $_4jja6kk5jfuvixx1.foldr(parents, function (last, parent) {
2337
- var clonedFormat = $_1i39h2lkjfuviy5n.shallow(parent);
2338
- $_5zcsfmlgjfuviy4g.append(last, clonedFormat);
 
2339
  return clonedFormat;
2340
  }, newCell);
2341
  }).getOr(newCell);
2342
  };
2343
  var cellOperations = function (mutate, doc, formatsToClone) {
2344
  var newCell = function (prev) {
2345
- var doc = $_87w3h3kmjfuviy0m.owner(prev.element());
2346
- var td = $_4sdhm4kkjfuviy0e.fromTag($_6mcqmml6jfuviy2u.name(prev.element()), doc.dom());
2347
  var formats = formatsToClone.getOr([
2348
  'strong',
2349
  'em',
@@ -2361,11 +2066,11 @@ var table = (function () {
2361
  'div'
2362
  ]);
2363
  var lastNode = formats.length > 0 ? cloneFormats(prev.element(), td, formats) : td;
2364
- $_5zcsfmlgjfuviy4g.append(lastNode, $_4sdhm4kkjfuviy0e.fromTag('br'));
2365
- $_2lr8nrlejfuviy40.copy(prev.element(), td);
2366
- $_2lr8nrlejfuviy40.remove(td, 'height');
2367
  if (prev.colspan() !== 1)
2368
- $_2lr8nrlejfuviy40.remove(prev.element(), 'width');
2369
  mutate(prev.element(), td);
2370
  return td;
2371
  };
@@ -2384,7 +2089,7 @@ var table = (function () {
2384
  gap: cell$1
2385
  };
2386
  };
2387
- var $_clky4ljjfuviy4t = {
2388
  cellOperations: cellOperations,
2389
  paste: paste
2390
  };
@@ -2393,22 +2098,22 @@ var table = (function () {
2393
  var doc = scope || document;
2394
  var div = doc.createElement('div');
2395
  div.innerHTML = html;
2396
- return $_87w3h3kmjfuviy0m.children($_4sdhm4kkjfuviy0e.fromDom(div));
2397
  };
2398
  var fromTags = function (tags, scope) {
2399
- return $_4jja6kk5jfuvixx1.map(tags, function (x) {
2400
- return $_4sdhm4kkjfuviy0e.fromTag(x, scope);
2401
  });
2402
  };
2403
  var fromText$1 = function (texts, scope) {
2404
- return $_4jja6kk5jfuvixx1.map(texts, function (x) {
2405
- return $_4sdhm4kkjfuviy0e.fromText(x, scope);
2406
  });
2407
  };
2408
  var fromDom$1 = function (nodes) {
2409
- return $_4jja6kk5jfuvixx1.map(nodes, $_4sdhm4kkjfuviy0e.fromDom);
2410
  };
2411
- var $_ek5zoelpjfuviy65 = {
2412
  fromHtml: fromHtml$1,
2413
  fromTags: fromTags,
2414
  fromText: fromText$1,
@@ -2451,103 +2156,103 @@ var table = (function () {
2451
 
2452
  function DomUniverse () {
2453
  var clone = function (element) {
2454
- return $_4sdhm4kkjfuviy0e.fromDom(element.dom().cloneNode(false));
2455
  };
2456
  var isBoundary = function (element) {
2457
- if (!$_6mcqmml6jfuviy2u.isElement(element))
2458
  return false;
2459
- if ($_6mcqmml6jfuviy2u.name(element) === 'body')
2460
  return true;
2461
- return $_4jja6kk5jfuvixx1.contains(TagBoundaries, $_6mcqmml6jfuviy2u.name(element));
2462
  };
2463
  var isEmptyTag = function (element) {
2464
- if (!$_6mcqmml6jfuviy2u.isElement(element))
2465
  return false;
2466
- return $_4jja6kk5jfuvixx1.contains([
2467
  'br',
2468
  'img',
2469
  'hr',
2470
  'input'
2471
- ], $_6mcqmml6jfuviy2u.name(element));
2472
  };
2473
  var comparePosition = function (element, other) {
2474
  return element.dom().compareDocumentPosition(other.dom());
2475
  };
2476
  var copyAttributesTo = function (source, destination) {
2477
- var as = $_2ekobel5jfuviy2m.clone(source);
2478
- $_2ekobel5jfuviy2m.setAll(destination, as);
2479
  };
2480
  return {
2481
- up: $_fdch7uk7jfuvixxb.constant({
2482
- selector: $_26gnp6lajfuviy35.ancestor,
2483
- closest: $_26gnp6lajfuviy35.closest,
2484
- predicate: $_eg4f87lbjfuviy37.ancestor,
2485
- all: $_87w3h3kmjfuviy0m.parents
2486
  }),
2487
- down: $_fdch7uk7jfuvixxb.constant({
2488
- selector: $_a3hs1bl7jfuviy2w.descendants,
2489
- predicate: $_g5dooll8jfuviy2x.descendants
2490
  }),
2491
- styles: $_fdch7uk7jfuvixxb.constant({
2492
- get: $_2lr8nrlejfuviy40.get,
2493
- getRaw: $_2lr8nrlejfuviy40.getRaw,
2494
- set: $_2lr8nrlejfuviy40.set,
2495
- remove: $_2lr8nrlejfuviy40.remove
2496
  }),
2497
- attrs: $_fdch7uk7jfuvixxb.constant({
2498
- get: $_2ekobel5jfuviy2m.get,
2499
- set: $_2ekobel5jfuviy2m.set,
2500
- remove: $_2ekobel5jfuviy2m.remove,
2501
  copyTo: copyAttributesTo
2502
  }),
2503
- insert: $_fdch7uk7jfuvixxb.constant({
2504
- before: $_5zcsfmlgjfuviy4g.before,
2505
- after: $_5zcsfmlgjfuviy4g.after,
2506
- afterAll: $_44mr3plijfuviy4p.after,
2507
- append: $_5zcsfmlgjfuviy4g.append,
2508
- appendAll: $_44mr3plijfuviy4p.append,
2509
- prepend: $_5zcsfmlgjfuviy4g.prepend,
2510
- wrap: $_5zcsfmlgjfuviy4g.wrap
2511
  }),
2512
- remove: $_fdch7uk7jfuvixxb.constant({
2513
- unwrap: $_5ud3colhjfuviy4l.unwrap,
2514
- remove: $_5ud3colhjfuviy4l.remove
2515
  }),
2516
- create: $_fdch7uk7jfuvixxb.constant({
2517
- nu: $_4sdhm4kkjfuviy0e.fromTag,
2518
  clone: clone,
2519
- text: $_4sdhm4kkjfuviy0e.fromText
2520
  }),
2521
- query: $_fdch7uk7jfuvixxb.constant({
2522
  comparePosition: comparePosition,
2523
- prevSibling: $_87w3h3kmjfuviy0m.prevSibling,
2524
- nextSibling: $_87w3h3kmjfuviy0m.nextSibling
2525
  }),
2526
- property: $_fdch7uk7jfuvixxb.constant({
2527
- children: $_87w3h3kmjfuviy0m.children,
2528
- name: $_6mcqmml6jfuviy2u.name,
2529
- parent: $_87w3h3kmjfuviy0m.parent,
2530
- isText: $_6mcqmml6jfuviy2u.isText,
2531
- isComment: $_6mcqmml6jfuviy2u.isComment,
2532
- isElement: $_6mcqmml6jfuviy2u.isElement,
2533
- getText: $_cvagqflnjfuviy5y.get,
2534
- setText: $_cvagqflnjfuviy5y.set,
2535
  isBoundary: isBoundary,
2536
  isEmptyTag: isEmptyTag
2537
  }),
2538
- eq: $_g6ztqikojfuviy13.eq,
2539
- is: $_g6ztqikojfuviy13.is
2540
  };
2541
  }
2542
 
2543
- var leftRight = $_96oqrskbjfuvixya.immutable('left', 'right');
2544
  var bisect = function (universe, parent, child) {
2545
  var children = universe.property().children(parent);
2546
- var index = $_4jja6kk5jfuvixx1.findIndex(children, $_fdch7uk7jfuvixxb.curry(universe.eq, child));
2547
  return index.map(function (ind) {
2548
  return {
2549
- before: $_fdch7uk7jfuvixxb.constant(children.slice(0, ind)),
2550
- after: $_fdch7uk7jfuvixxb.constant(children.slice(ind + 1))
2551
  };
2552
  });
2553
  };
@@ -2569,7 +2274,7 @@ var table = (function () {
2569
  });
2570
  };
2571
  var breakPath = function (universe, item, isTop, breaker) {
2572
- var result = $_96oqrskbjfuvixya.immutable('first', 'second', 'splits');
2573
  var next = function (child, group, splits) {
2574
  var fallback = result(child, Option.none(), splits);
2575
  if (isTop(child))
@@ -2589,36 +2294,36 @@ var table = (function () {
2589
  };
2590
  return next(item, Option.none(), []);
2591
  };
2592
- var $_abr277lyjfuviy9c = {
2593
  breakToLeft: breakToLeft,
2594
  breakToRight: breakToRight,
2595
  breakPath: breakPath
2596
  };
2597
 
2598
  var all$3 = function (universe, look, elements, f) {
2599
- var head = elements[0];
2600
  var tail = elements.slice(1);
2601
- return f(universe, look, head, tail);
2602
  };
2603
  var oneAll = function (universe, look, elements) {
2604
  return elements.length > 0 ? all$3(universe, look, elements, unsafeOne) : Option.none();
2605
  };
2606
- var unsafeOne = function (universe, look, head, tail) {
2607
- var start = look(universe, head);
2608
- return $_4jja6kk5jfuvixx1.foldr(tail, function (b, a) {
2609
  var current = look(universe, a);
2610
  return commonElement(universe, b, current);
2611
  }, start);
2612
  };
2613
  var commonElement = function (universe, start, end) {
2614
  return start.bind(function (s) {
2615
- return end.filter($_fdch7uk7jfuvixxb.curry(universe.eq, s));
2616
  });
2617
  };
2618
- var $_bupazclzjfuviy9n = { oneAll: oneAll };
2619
 
2620
  var eq$1 = function (universe, item) {
2621
- return $_fdch7uk7jfuvixxb.curry(universe.eq, item);
2622
  };
2623
  var unsafeSubset = function (universe, common, ps1, ps2) {
2624
  var children = universe.property().children(common);
@@ -2627,27 +2332,27 @@ var table = (function () {
2627
  if (universe.eq(common, ps2[0]))
2628
  return Option.some([ps2[0]]);
2629
  var finder = function (ps) {
2630
- var topDown = $_4jja6kk5jfuvixx1.reverse(ps);
2631
- var index = $_4jja6kk5jfuvixx1.findIndex(topDown, eq$1(universe, common)).getOr(-1);
2632
  var item = index < topDown.length - 1 ? topDown[index + 1] : topDown[index];
2633
- return $_4jja6kk5jfuvixx1.findIndex(children, eq$1(universe, item));
2634
  };
2635
  var startIndex = finder(ps1);
2636
  var endIndex = finder(ps2);
2637
  return startIndex.bind(function (sIndex) {
2638
  return endIndex.map(function (eIndex) {
2639
  var first = Math.min(sIndex, eIndex);
2640
- var last = Math.max(sIndex, eIndex);
2641
- return children.slice(first, last + 1);
2642
  });
2643
  });
2644
  };
2645
  var ancestors$2 = function (universe, start, end, _isRoot) {
2646
- var isRoot = _isRoot !== undefined ? _isRoot : $_fdch7uk7jfuvixxb.constant(false);
2647
  var ps1 = [start].concat(universe.up().all(start));
2648
  var ps2 = [end].concat(universe.up().all(end));
2649
  var prune = function (path) {
2650
- var index = $_4jja6kk5jfuvixx1.findIndex(path, isRoot);
2651
  return index.fold(function () {
2652
  return path;
2653
  }, function (ind) {
@@ -2656,13 +2361,13 @@ var table = (function () {
2656
  };
2657
  var pruned1 = prune(ps1);
2658
  var pruned2 = prune(ps2);
2659
- var shared = $_4jja6kk5jfuvixx1.find(pruned1, function (x) {
2660
- return $_4jja6kk5jfuvixx1.exists(pruned2, eq$1(universe, x));
2661
  });
2662
  return {
2663
- firstpath: $_fdch7uk7jfuvixxb.constant(pruned1),
2664
- secondpath: $_fdch7uk7jfuvixxb.constant(pruned2),
2665
- shared: $_fdch7uk7jfuvixxb.constant(shared)
2666
  };
2667
  };
2668
  var subset = function (universe, start, end) {
@@ -2671,30 +2376,30 @@ var table = (function () {
2671
  return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());
2672
  });
2673
  };
2674
- var $_gb7ghem0jfuviy9y = {
2675
  subset: subset,
2676
  ancestors: ancestors$2
2677
  };
2678
 
2679
  var sharedOne = function (universe, look, elements) {
2680
- return $_bupazclzjfuviy9n.oneAll(universe, look, elements);
2681
  };
2682
  var subset$1 = function (universe, start, finish) {
2683
- return $_gb7ghem0jfuviy9y.subset(universe, start, finish);
2684
  };
2685
  var ancestors$3 = function (universe, start, finish, _isRoot) {
2686
- return $_gb7ghem0jfuviy9y.ancestors(universe, start, finish, _isRoot);
2687
  };
2688
  var breakToLeft$1 = function (universe, parent, child) {
2689
- return $_abr277lyjfuviy9c.breakToLeft(universe, parent, child);
2690
  };
2691
  var breakToRight$1 = function (universe, parent, child) {
2692
- return $_abr277lyjfuviy9c.breakToRight(universe, parent, child);
2693
  };
2694
  var breakPath$1 = function (universe, child, isTop, breaker) {
2695
- return $_abr277lyjfuviy9c.breakPath(universe, child, isTop, breaker);
2696
  };
2697
- var $_11qknclxjfuviy9a = {
2698
  sharedOne: sharedOne,
2699
  subset: subset$1,
2700
  ancestors: ancestors$3,
@@ -2705,28 +2410,28 @@ var table = (function () {
2705
 
2706
  var universe = DomUniverse();
2707
  var sharedOne$1 = function (look, elements) {
2708
- return $_11qknclxjfuviy9a.sharedOne(universe, function (universe, element) {
2709
  return look(element);
2710
  }, elements);
2711
  };
2712
  var subset$2 = function (start, finish) {
2713
- return $_11qknclxjfuviy9a.subset(universe, start, finish);
2714
  };
2715
  var ancestors$4 = function (start, finish, _isRoot) {
2716
- return $_11qknclxjfuviy9a.ancestors(universe, start, finish, _isRoot);
2717
  };
2718
  var breakToLeft$2 = function (parent, child) {
2719
- return $_11qknclxjfuviy9a.breakToLeft(universe, parent, child);
2720
  };
2721
  var breakToRight$2 = function (parent, child) {
2722
- return $_11qknclxjfuviy9a.breakToRight(universe, parent, child);
2723
  };
2724
  var breakPath$2 = function (child, isTop, breaker) {
2725
- return $_11qknclxjfuviy9a.breakPath(universe, child, isTop, function (u, p, c) {
2726
  return breaker(p, c);
2727
  });
2728
  };
2729
- var $_1tw8e1lujfuviy7z = {
2730
  sharedOne: sharedOne$1,
2731
  subset: subset$2,
2732
  ancestors: ancestors$4,
@@ -2747,26 +2452,26 @@ var table = (function () {
2747
  };
2748
  var isRectangular = function (warehouse, bounds) {
2749
  var isRect = true;
2750
- var detailIsWithin = $_fdch7uk7jfuvixxb.curry(isWithin, bounds);
2751
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
2752
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
2753
- isRect = isRect && $_bwrthsldjfuviy3q.getAt(warehouse, i, j).exists(detailIsWithin);
2754
  }
2755
  }
2756
  return isRect ? Option.some(bounds) : Option.none();
2757
  };
2758
- var $_5ehsnem3jfuviyal = {
2759
  inSelection: inSelection,
2760
  isWithin: isWithin,
2761
  isRectangular: isRectangular
2762
  };
2763
 
2764
  var getBounds = function (detailA, detailB) {
2765
- return $_g02m1vkgjfuvixyt.bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));
2766
  };
2767
  var getAnyBox = function (warehouse, startCell, finishCell) {
2768
- var startCoords = $_bwrthsldjfuviy3q.findItem(warehouse, startCell, $_g6ztqikojfuviy13.eq);
2769
- var finishCoords = $_bwrthsldjfuviy3q.findItem(warehouse, finishCell, $_g6ztqikojfuviy13.eq);
2770
  return startCoords.bind(function (sc) {
2771
  return finishCoords.map(function (fc) {
2772
  return getBounds(sc, fc);
@@ -2775,71 +2480,71 @@ var table = (function () {
2775
  };
2776
  var getBox = function (warehouse, startCell, finishCell) {
2777
  return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {
2778
- return $_5ehsnem3jfuviyal.isRectangular(warehouse, bounds);
2779
  });
2780
  };
2781
- var $_dmj7zzm4jfuviyas = {
2782
  getAnyBox: getAnyBox,
2783
  getBox: getBox
2784
  };
2785
 
2786
  var moveBy = function (warehouse, cell, row, column) {
2787
- return $_bwrthsldjfuviy3q.findItem(warehouse, cell, $_g6ztqikojfuviy13.eq).bind(function (detail) {
2788
  var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();
2789
  var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();
2790
- var dest = $_bwrthsldjfuviy3q.getAt(warehouse, startRow + row, startCol + column);
2791
  return dest.map(function (d) {
2792
  return d.element();
2793
  });
2794
  });
2795
  };
2796
  var intercepts = function (warehouse, start, finish) {
2797
- return $_dmj7zzm4jfuviyas.getAnyBox(warehouse, start, finish).map(function (bounds) {
2798
- var inside = $_bwrthsldjfuviy3q.filterItems(warehouse, $_fdch7uk7jfuvixxb.curry($_5ehsnem3jfuviyal.inSelection, bounds));
2799
- return $_4jja6kk5jfuvixx1.map(inside, function (detail) {
2800
  return detail.element();
2801
  });
2802
  });
2803
  };
2804
  var parentCell = function (warehouse, innerCell) {
2805
  var isContainedBy = function (c1, c2) {
2806
- return $_g6ztqikojfuviy13.contains(c2, c1);
2807
  };
2808
- return $_bwrthsldjfuviy3q.findItem(warehouse, innerCell, isContainedBy).bind(function (detail) {
2809
  return detail.element();
2810
  });
2811
  };
2812
- var $_6im98qm2jfuviyac = {
2813
  moveBy: moveBy,
2814
  intercepts: intercepts,
2815
  parentCell: parentCell
2816
  };
2817
 
2818
  var moveBy$1 = function (cell, deltaRow, deltaColumn) {
2819
- return $_dmqxswkhjfuvixyz.table(cell).bind(function (table) {
2820
  var warehouse = getWarehouse(table);
2821
- return $_6im98qm2jfuviyac.moveBy(warehouse, cell, deltaRow, deltaColumn);
2822
  });
2823
  };
2824
  var intercepts$1 = function (table, first, last) {
2825
  var warehouse = getWarehouse(table);
2826
- return $_6im98qm2jfuviyac.intercepts(warehouse, first, last);
2827
  };
2828
  var nestedIntercepts = function (table, first, firstTable, last, lastTable) {
2829
  var warehouse = getWarehouse(table);
2830
- var startCell = $_g6ztqikojfuviy13.eq(table, firstTable) ? first : $_6im98qm2jfuviyac.parentCell(warehouse, first);
2831
- var lastCell = $_g6ztqikojfuviy13.eq(table, lastTable) ? last : $_6im98qm2jfuviyac.parentCell(warehouse, last);
2832
- return $_6im98qm2jfuviyac.intercepts(warehouse, startCell, lastCell);
2833
  };
2834
  var getBox$1 = function (table, first, last) {
2835
  var warehouse = getWarehouse(table);
2836
- return $_dmj7zzm4jfuviyas.getBox(warehouse, first, last);
2837
  };
2838
  var getWarehouse = function (table) {
2839
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
2840
- return $_bwrthsldjfuviy3q.generate(list);
2841
  };
2842
- var $_dzfbvm1jfuviya7 = {
2843
  moveBy: moveBy$1,
2844
  intercepts: intercepts$1,
2845
  nestedIntercepts: nestedIntercepts,
@@ -2847,9 +2552,9 @@ var table = (function () {
2847
  };
2848
 
2849
  var lookupTable = function (container, isRoot) {
2850
- return $_26gnp6lajfuviy35.ancestor(container, 'table');
2851
  };
2852
- var identified = $_96oqrskbjfuvixya.immutableBag([
2853
  'boxes',
2854
  'start',
2855
  'finish'
@@ -2857,10 +2562,10 @@ var table = (function () {
2857
  var identify = function (start, finish, isRoot) {
2858
  var getIsRoot = function (rootTable) {
2859
  return function (element) {
2860
- return isRoot(element) || $_g6ztqikojfuviy13.eq(element, rootTable);
2861
  };
2862
  };
2863
- if ($_g6ztqikojfuviy13.eq(start, finish)) {
2864
  return Option.some(identified({
2865
  boxes: Option.some([start]),
2866
  start: start,
@@ -2869,37 +2574,37 @@ var table = (function () {
2869
  } else {
2870
  return lookupTable(start, isRoot).bind(function (startTable) {
2871
  return lookupTable(finish, isRoot).bind(function (finishTable) {
2872
- if ($_g6ztqikojfuviy13.eq(startTable, finishTable)) {
2873
  return Option.some(identified({
2874
- boxes: $_dzfbvm1jfuviya7.intercepts(startTable, start, finish),
2875
  start: start,
2876
  finish: finish
2877
  }));
2878
- } else if ($_g6ztqikojfuviy13.contains(startTable, finishTable)) {
2879
- var ancestorCells = $_a3hs1bl7jfuviy2w.ancestors(finish, 'td,th', getIsRoot(startTable));
2880
  var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;
2881
  return Option.some(identified({
2882
- boxes: $_dzfbvm1jfuviya7.nestedIntercepts(startTable, start, startTable, finish, finishTable),
2883
  start: start,
2884
  finish: finishCell
2885
  }));
2886
- } else if ($_g6ztqikojfuviy13.contains(finishTable, startTable)) {
2887
- var ancestorCells = $_a3hs1bl7jfuviy2w.ancestors(start, 'td,th', getIsRoot(finishTable));
2888
  var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;
2889
  return Option.some(identified({
2890
- boxes: $_dzfbvm1jfuviya7.nestedIntercepts(finishTable, start, startTable, finish, finishTable),
2891
  start: start,
2892
  finish: startCell
2893
  }));
2894
  } else {
2895
- return $_1tw8e1lujfuviy7z.ancestors(start, finish).shared().bind(function (lca) {
2896
- return $_26gnp6lajfuviy35.closest(lca, 'table', isRoot).bind(function (lcaTable) {
2897
- var finishAncestorCells = $_a3hs1bl7jfuviy2w.ancestors(finish, 'td,th', getIsRoot(lcaTable));
2898
  var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;
2899
- var startAncestorCells = $_a3hs1bl7jfuviy2w.ancestors(start, 'td,th', getIsRoot(lcaTable));
2900
  var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;
2901
  return Option.some(identified({
2902
- boxes: $_dzfbvm1jfuviya7.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),
2903
  start: startCell,
2904
  finish: finishCell
2905
  }));
@@ -2911,39 +2616,39 @@ var table = (function () {
2911
  }
2912
  };
2913
  var retrieve = function (container, selector) {
2914
- var sels = $_a3hs1bl7jfuviy2w.descendants(container, selector);
2915
  return sels.length > 0 ? Option.some(sels) : Option.none();
2916
  };
2917
  var getLast = function (boxes, lastSelectedSelector) {
2918
- return $_4jja6kk5jfuvixx1.find(boxes, function (box) {
2919
- return $_aphf8fkjjfuviy04.is(box, lastSelectedSelector);
2920
  });
2921
  };
2922
  var getEdges = function (container, firstSelectedSelector, lastSelectedSelector) {
2923
- return $_26gnp6lajfuviy35.descendant(container, firstSelectedSelector).bind(function (first) {
2924
- return $_26gnp6lajfuviy35.descendant(container, lastSelectedSelector).bind(function (last) {
2925
- return $_1tw8e1lujfuviy7z.sharedOne(lookupTable, [
2926
  first,
2927
- last
2928
  ]).map(function (tbl) {
2929
  return {
2930
- first: $_fdch7uk7jfuvixxb.constant(first),
2931
- last: $_fdch7uk7jfuvixxb.constant(last),
2932
- table: $_fdch7uk7jfuvixxb.constant(tbl)
2933
  };
2934
  });
2935
  });
2936
  });
2937
  };
2938
  var expandTo = function (finish, firstSelectedSelector) {
2939
- return $_26gnp6lajfuviy35.ancestor(finish, 'table').bind(function (table) {
2940
- return $_26gnp6lajfuviy35.descendant(table, firstSelectedSelector).bind(function (start) {
2941
  return identify(start, finish).bind(function (identified) {
2942
  return identified.boxes().map(function (boxes) {
2943
  return {
2944
- boxes: $_fdch7uk7jfuvixxb.constant(boxes),
2945
- start: $_fdch7uk7jfuvixxb.constant(identified.start()),
2946
- finish: $_fdch7uk7jfuvixxb.constant(identified.finish())
2947
  };
2948
  });
2949
  });
@@ -2951,13 +2656,13 @@ var table = (function () {
2951
  });
2952
  };
2953
  var shiftSelection = function (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) {
2954
- return getLast(boxes, lastSelectedSelector).bind(function (last) {
2955
- return $_dzfbvm1jfuviya7.moveBy(last, deltaRow, deltaColumn).bind(function (finish) {
2956
  return expandTo(finish, firstSelectedSelector);
2957
  });
2958
  });
2959
  };
2960
- var $_8vwxtkltjfuviy76 = {
2961
  identify: identify,
2962
  retrieve: retrieve,
2963
  shiftSelection: shiftSelection,
@@ -2965,23 +2670,23 @@ var table = (function () {
2965
  };
2966
 
2967
  var retrieve$1 = function (container, selector) {
2968
- return $_8vwxtkltjfuviy76.retrieve(container, selector);
2969
  };
2970
  var retrieveBox = function (container, firstSelectedSelector, lastSelectedSelector) {
2971
- return $_8vwxtkltjfuviy76.getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(function (edges) {
2972
  var isRoot = function (ancestor) {
2973
- return $_g6ztqikojfuviy13.eq(container, ancestor);
2974
  };
2975
- var firstAncestor = $_26gnp6lajfuviy35.ancestor(edges.first(), 'thead,tfoot,tbody,table', isRoot);
2976
- var lastAncestor = $_26gnp6lajfuviy35.ancestor(edges.last(), 'thead,tfoot,tbody,table', isRoot);
2977
  return firstAncestor.bind(function (fA) {
2978
  return lastAncestor.bind(function (lA) {
2979
- return $_g6ztqikojfuviy13.eq(fA, lA) ? $_dzfbvm1jfuviya7.getBox(edges.table(), edges.first(), edges.last()) : Option.none();
2980
  });
2981
  });
2982
  });
2983
  };
2984
- var $_7o7mthlsjfuviy6v = {
2985
  retrieve: retrieve$1,
2986
  retrieveBox: retrieveBox
2987
  };
@@ -2993,18 +2698,18 @@ var table = (function () {
2993
  var firstSelectedSelector = 'td[' + firstSelected + '],th[' + firstSelected + ']';
2994
  var lastSelected = 'data-mce-last-selected';
2995
  var lastSelectedSelector = 'td[' + lastSelected + '],th[' + lastSelected + ']';
2996
- var $_g37vw7m5jfuviyax = {
2997
- selected: $_fdch7uk7jfuvixxb.constant(selected),
2998
- selectedSelector: $_fdch7uk7jfuvixxb.constant(selectedSelector),
2999
- attributeSelector: $_fdch7uk7jfuvixxb.constant(attributeSelector),
3000
- firstSelected: $_fdch7uk7jfuvixxb.constant(firstSelected),
3001
- firstSelectedSelector: $_fdch7uk7jfuvixxb.constant(firstSelectedSelector),
3002
- lastSelected: $_fdch7uk7jfuvixxb.constant(lastSelected),
3003
- lastSelectedSelector: $_fdch7uk7jfuvixxb.constant(lastSelectedSelector)
3004
  };
3005
 
3006
  var generate$1 = function (cases) {
3007
- if (!$_13kw1fk8jfuvixxd.isArray(cases)) {
3008
  throw new Error('cases must be an array');
3009
  }
3010
  if (cases.length === 0) {
@@ -3012,18 +2717,18 @@ var table = (function () {
3012
  }
3013
  var constructors = [];
3014
  var adt = {};
3015
- $_4jja6kk5jfuvixx1.each(cases, function (acase, count) {
3016
- var keys = $_afb9m6kajfuvixy8.keys(acase);
3017
- if (keys.length !== 1) {
3018
  throw new Error('one and only one name per case');
3019
  }
3020
- var key = keys[0];
3021
  var value = acase[key];
3022
  if (adt[key] !== undefined) {
3023
  throw new Error('duplicate key detected:' + key);
3024
  } else if (key === 'cata') {
3025
  throw new Error('cannot have a case named cata (sorry)');
3026
- } else if (!$_13kw1fk8jfuvixxd.isArray(value)) {
3027
  throw new Error('case arguments must be an array');
3028
  }
3029
  constructors.push(key);
@@ -3036,12 +2741,12 @@ var table = (function () {
3036
  for (var i = 0; i < args.length; i++)
3037
  args[i] = arguments[i];
3038
  var match = function (branches) {
3039
- var branchKeys = $_afb9m6kajfuvixy8.keys(branches);
3040
  if (constructors.length !== branchKeys.length) {
3041
  throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(','));
3042
  }
3043
- var allReqd = $_4jja6kk5jfuvixx1.forall(constructors, function (reqKey) {
3044
- return $_4jja6kk5jfuvixx1.contains(branchKeys, reqKey);
3045
  });
3046
  if (!allReqd)
3047
  throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
@@ -3068,9 +2773,9 @@ var table = (function () {
3068
  });
3069
  return adt;
3070
  };
3071
- var $_27harem7jfuviyb3 = { generate: generate$1 };
3072
 
3073
- var type$1 = $_27harem7jfuviyb3.generate([
3074
  { none: [] },
3075
  { multiple: ['elements'] },
3076
  { single: ['selection'] }
@@ -3078,7 +2783,7 @@ var table = (function () {
3078
  var cata = function (subject, onNone, onMultiple, onSingle) {
3079
  return subject.fold(onNone, onMultiple, onSingle);
3080
  };
3081
- var $_1jmyeim6jfuviyb0 = {
3082
  cata: cata,
3083
  none: type$1.none,
3084
  multiple: type$1.multiple,
@@ -3086,29 +2791,29 @@ var table = (function () {
3086
  };
3087
 
3088
  var selection = function (cell, selections) {
3089
- return $_1jmyeim6jfuviyb0.cata(selections.get(), $_fdch7uk7jfuvixxb.constant([]), $_fdch7uk7jfuvixxb.identity, $_fdch7uk7jfuvixxb.constant([cell]));
3090
  };
3091
  var unmergable = function (cell, selections) {
3092
  var hasSpan = function (elem) {
3093
- return $_2ekobel5jfuviy2m.has(elem, 'rowspan') && parseInt($_2ekobel5jfuviy2m.get(elem, 'rowspan'), 10) > 1 || $_2ekobel5jfuviy2m.has(elem, 'colspan') && parseInt($_2ekobel5jfuviy2m.get(elem, 'colspan'), 10) > 1;
3094
  };
3095
  var candidates = selection(cell, selections);
3096
- return candidates.length > 0 && $_4jja6kk5jfuvixx1.forall(candidates, hasSpan) ? Option.some(candidates) : Option.none();
3097
  };
3098
  var mergable = function (table, selections) {
3099
- return $_1jmyeim6jfuviyb0.cata(selections.get(), Option.none, function (cells, _env) {
3100
  if (cells.length === 0) {
3101
  return Option.none();
3102
  }
3103
- return $_7o7mthlsjfuviy6v.retrieveBox(table, $_g37vw7m5jfuviyax.firstSelectedSelector(), $_g37vw7m5jfuviyax.lastSelectedSelector()).bind(function (bounds) {
3104
  return cells.length > 1 ? Option.some({
3105
- bounds: $_fdch7uk7jfuvixxb.constant(bounds),
3106
- cells: $_fdch7uk7jfuvixxb.constant(cells)
3107
  }) : Option.none();
3108
  });
3109
  }, Option.none);
3110
  };
3111
- var $_fnw8s9lrjfuviy6g = {
3112
  mergable: mergable,
3113
  unmergable: unmergable,
3114
  selection: selection
@@ -3116,35 +2821,35 @@ var table = (function () {
3116
 
3117
  var noMenu = function (cell) {
3118
  return {
3119
- element: $_fdch7uk7jfuvixxb.constant(cell),
3120
  mergable: Option.none,
3121
  unmergable: Option.none,
3122
- selection: $_fdch7uk7jfuvixxb.constant([cell])
3123
  };
3124
  };
3125
  var forMenu = function (selections, table, cell) {
3126
  return {
3127
- element: $_fdch7uk7jfuvixxb.constant(cell),
3128
- mergable: $_fdch7uk7jfuvixxb.constant($_fnw8s9lrjfuviy6g.mergable(table, selections)),
3129
- unmergable: $_fdch7uk7jfuvixxb.constant($_fnw8s9lrjfuviy6g.unmergable(cell, selections)),
3130
- selection: $_fdch7uk7jfuvixxb.constant($_fnw8s9lrjfuviy6g.selection(cell, selections))
3131
  };
3132
  };
3133
  var notCell$1 = function (element) {
3134
  return noMenu(element);
3135
  };
3136
- var paste$1 = $_96oqrskbjfuvixya.immutable('element', 'clipboard', 'generators');
3137
  var pasteRows = function (selections, table, cell, clipboard, generators) {
3138
  return {
3139
- element: $_fdch7uk7jfuvixxb.constant(cell),
3140
  mergable: Option.none,
3141
  unmergable: Option.none,
3142
- selection: $_fdch7uk7jfuvixxb.constant($_fnw8s9lrjfuviy6g.selection(cell, selections)),
3143
- clipboard: $_fdch7uk7jfuvixxb.constant(clipboard),
3144
- generators: $_fdch7uk7jfuvixxb.constant(generators)
3145
  };
3146
  };
3147
- var $_fgxiq3lqjfuviy6a = {
3148
  noMenu: noMenu,
3149
  forMenu: forMenu,
3150
  notCell: notCell$1,
@@ -3153,8 +2858,8 @@ var table = (function () {
3153
  };
3154
 
3155
  var extractSelected = function (cells) {
3156
- return $_dmqxswkhjfuvixyz.table(cells[0]).map($_1i39h2lkjfuviy5n.deep).map(function (replica) {
3157
- return [$_6u5qawk9jfuvixxg.extract(replica, $_g37vw7m5jfuviyax.attributeSelector())];
3158
  });
3159
  };
3160
  var serializeElement = function (editor, elm) {
@@ -3165,30 +2870,30 @@ var table = (function () {
3165
  var multiCellContext = function (cells) {
3166
  e.preventDefault();
3167
  extractSelected(cells).each(function (elements) {
3168
- e.content = $_4jja6kk5jfuvixx1.map(elements, function (elm) {
3169
  return serializeElement(editor, elm);
3170
  }).join('');
3171
  });
3172
  };
3173
  if (e.selection === true) {
3174
- $_1jmyeim6jfuviyb0.cata(selections.get(), $_fdch7uk7jfuvixxb.noop, multiCellContext, $_fdch7uk7jfuvixxb.noop);
3175
  }
3176
  });
3177
  editor.on('BeforeSetContent', function (e) {
3178
  if (e.selection === true && e.paste === true) {
3179
  var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
3180
  cellOpt.each(function (domCell) {
3181
- var cell = $_4sdhm4kkjfuviy0e.fromDom(domCell);
3182
- var table = $_dmqxswkhjfuvixyz.table(cell);
3183
  table.bind(function (table) {
3184
- var elements = $_4jja6kk5jfuvixx1.filter($_ek5zoelpjfuviy65.fromHtml(e.content), function (content) {
3185
- return $_6mcqmml6jfuviy2u.name(content) !== 'meta';
3186
  });
3187
- if (elements.length === 1 && $_6mcqmml6jfuviy2u.name(elements[0]) === 'table') {
3188
  e.preventDefault();
3189
- var doc = $_4sdhm4kkjfuviy0e.fromDom(editor.getDoc());
3190
- var generators = $_clky4ljjfuviy4t.paste(doc);
3191
- var targets = $_fgxiq3lqjfuviy6a.paste(cell, elements[0], generators);
3192
  actions.pasteCells(table, targets).each(function (rng) {
3193
  editor.selection.setRng(rng);
3194
  editor.focus();
@@ -3200,28 +2905,28 @@ var table = (function () {
3200
  }
3201
  });
3202
  };
3203
- var $_jmgm9k4jfuvixw9 = { registerEvents: registerEvents };
3204
 
3205
  function Dimension (name, getOffset) {
3206
  var set = function (element, h) {
3207
- if (!$_13kw1fk8jfuvixxd.isNumber(h) && !h.match(/^[0-9]+$/))
3208
  throw name + '.set accepts only positive integer values. Value was ' + h;
3209
  var dom = element.dom();
3210
- if ($_3bn25blfjfuviy4f.isSupported(dom))
3211
  dom.style[name] = h + 'px';
3212
  };
3213
  var get = function (element) {
3214
  var r = getOffset(element);
3215
  if (r <= 0 || r === null) {
3216
- var css = $_2lr8nrlejfuviy40.get(element, name);
3217
  return parseFloat(css) || 0;
3218
  }
3219
  return r;
3220
  };
3221
  var getOuter = get;
3222
  var aggregate = function (element, properties) {
3223
- return $_4jja6kk5jfuvixx1.foldl(properties, function (acc, property) {
3224
- var val = $_2lr8nrlejfuviy40.get(element, property);
3225
  var value = val === undefined ? 0 : parseInt(val, 10);
3226
  return isNaN(value) ? acc : acc + value;
3227
  }, 0);
@@ -3241,7 +2946,8 @@ var table = (function () {
3241
  }
3242
 
3243
  var api$1 = Dimension('height', function (element) {
3244
- return $_43dxxcl9jfuviy31.inBody(element) ? element.dom().getBoundingClientRect().height : element.dom().offsetHeight;
 
3245
  });
3246
  var set$3 = function (element, h) {
3247
  api$1.set(element, h);
@@ -3262,9 +2968,9 @@ var table = (function () {
3262
  'margin-bottom'
3263
  ];
3264
  var absMax = api$1.max(element, value, inclusions);
3265
- $_2lr8nrlejfuviy40.set(element, 'max-height', absMax + 'px');
3266
  };
3267
- var $_e3phjumcjfuviyct = {
3268
  set: set$3,
3269
  get: get$3,
3270
  getOuter: getOuter,
@@ -3293,16 +2999,16 @@ var table = (function () {
3293
  'margin-right'
3294
  ];
3295
  var absMax = api$2.max(element, value, inclusions);
3296
- $_2lr8nrlejfuviy40.set(element, 'max-width', absMax + 'px');
3297
  };
3298
- var $_4u9lbfmejfuviyd2 = {
3299
  set: set$4,
3300
  get: get$4,
3301
  getOuter: getOuter$1,
3302
  setMax: setMax$1
3303
  };
3304
 
3305
- var platform = $_8chrc7ktjfuviy1m.detect();
3306
  var needManualCalc = function () {
3307
  return platform.browser.isIE() || platform.browser.isEdge();
3308
  };
@@ -3311,7 +3017,7 @@ var table = (function () {
3311
  return isNaN(num) ? fallback : num;
3312
  };
3313
  var getProp = function (elm, name, fallback) {
3314
- return toNumber($_2lr8nrlejfuviy40.get(elm, name), fallback);
3315
  };
3316
  var getCalculatedHeight = function (cell) {
3317
  var paddingTop = getProp(cell, 'padding-top', 0);
@@ -3319,17 +3025,17 @@ var table = (function () {
3319
  var borderTop = getProp(cell, 'border-top-width', 0);
3320
  var borderBottom = getProp(cell, 'border-bottom-width', 0);
3321
  var height = cell.dom().getBoundingClientRect().height;
3322
- var boxSizing = $_2lr8nrlejfuviy40.get(cell, 'box-sizing');
3323
  var borders = borderTop + borderBottom;
3324
  return boxSizing === 'border-box' ? height : height - paddingTop - paddingBottom - borders;
3325
  };
3326
  var getWidth = function (cell) {
3327
- return getProp(cell, 'width', $_4u9lbfmejfuviyd2.get(cell));
3328
  };
3329
  var getHeight = function (cell) {
3330
- return needManualCalc() ? getCalculatedHeight(cell) : getProp(cell, 'height', $_e3phjumcjfuviyct.get(cell));
3331
  };
3332
- var $_d797pzmbjfuviyci = {
3333
  getWidth: getWidth,
3334
  getHeight: getHeight
3335
  };
@@ -3338,21 +3044,21 @@ var table = (function () {
3338
  var percentageBasedSizeRegex = /(\d+(\.\d+)?)%/;
3339
  var pixelBasedSizeRegex = /(\d+(\.\d+)?)px|em/;
3340
  var setPixelWidth = function (cell, amount) {
3341
- $_2lr8nrlejfuviy40.set(cell, 'width', amount + 'px');
3342
  };
3343
  var setPercentageWidth = function (cell, amount) {
3344
- $_2lr8nrlejfuviy40.set(cell, 'width', amount + '%');
3345
  };
3346
  var setHeight = function (cell, amount) {
3347
- $_2lr8nrlejfuviy40.set(cell, 'height', amount + 'px');
3348
  };
3349
  var getHeightValue = function (cell) {
3350
- return $_2lr8nrlejfuviy40.getRaw(cell, 'height').getOrThunk(function () {
3351
- return $_d797pzmbjfuviyci.getHeight(cell) + 'px';
3352
  });
3353
  };
3354
  var convert = function (cell, number, getter, setter) {
3355
- var newSize = $_dmqxswkhjfuvixyz.table(cell).map(function (table) {
3356
  var total = getter(table);
3357
  return Math.floor(number / 100 * total);
3358
  }).getOr(number);
@@ -3361,13 +3067,13 @@ var table = (function () {
3361
  };
3362
  var normalizePixelSize = function (value, cell, getter, setter) {
3363
  var number = parseInt(value, 10);
3364
- return $_2rmckll2jfuviy2d.endsWith(value, '%') && $_6mcqmml6jfuviy2u.name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;
3365
  };
3366
  var getTotalHeight = function (cell) {
3367
  var value = getHeightValue(cell);
3368
  if (!value)
3369
- return $_e3phjumcjfuviyct.get(cell);
3370
- return normalizePixelSize(value, cell, $_e3phjumcjfuviyct.get, setHeight);
3371
  };
3372
  var get$5 = function (cell, type, f) {
3373
  var v = f(cell);
@@ -3375,12 +3081,12 @@ var table = (function () {
3375
  return v / span;
3376
  };
3377
  var getSpan = function (cell, type) {
3378
- return $_2ekobel5jfuviy2m.has(cell, type) ? parseInt($_2ekobel5jfuviy2m.get(cell, type), 10) : 1;
3379
  };
3380
  var getRawWidth = function (element) {
3381
- var cssWidth = $_2lr8nrlejfuviy40.getRaw(element, 'width');
3382
  return cssWidth.fold(function () {
3383
- return Option.from($_2ekobel5jfuviy2m.get(element, 'width'));
3384
  }, function (width) {
3385
  return Option.some(width);
3386
  });
@@ -3393,16 +3099,14 @@ var table = (function () {
3393
  var percentMatch = percentageBasedSizeRegex.exec(width);
3394
  return parseFloat(percentMatch[1]);
3395
  } else {
3396
- var fallbackWidth = $_4u9lbfmejfuviyd2.get(element);
3397
- var intWidth = parseInt(fallbackWidth, 10);
3398
  return normalizePercentageWidth(intWidth, tableSize);
3399
  }
3400
  };
3401
  var getPercentageWidth = function (cell, tableSize) {
3402
  var width = getRawWidth(cell);
3403
  return width.fold(function () {
3404
- var width = $_4u9lbfmejfuviyd2.get(cell);
3405
- var intWidth = parseInt(width, 10);
3406
  return normalizePercentageWidth(intWidth, tableSize);
3407
  }, function (width) {
3408
  return choosePercentageSize(cell, width, tableSize);
@@ -3420,16 +3124,13 @@ var table = (function () {
3420
  var floatWidth = parseFloat(percentMatch[1]);
3421
  return normalizePixelWidth(floatWidth, tableSize);
3422
  } else {
3423
- var fallbackWidth = $_4u9lbfmejfuviyd2.get(element);
3424
- return parseInt(fallbackWidth, 10);
3425
  }
3426
  };
3427
  var getPixelWidth = function (cell, tableSize) {
3428
  var width = getRawWidth(cell);
3429
  return width.fold(function () {
3430
- var width = $_4u9lbfmejfuviyd2.get(cell);
3431
- var intWidth = parseInt(width, 10);
3432
- return intWidth;
3433
  }, function (width) {
3434
  return choosePixelSize(cell, width, tableSize);
3435
  });
@@ -3443,8 +3144,8 @@ var table = (function () {
3443
  if (genericSizeRegex.test(width)) {
3444
  var match = genericSizeRegex.exec(width);
3445
  return Option.some({
3446
- width: $_fdch7uk7jfuvixxb.constant(match[1]),
3447
- unit: $_fdch7uk7jfuvixxb.constant(match[3])
3448
  });
3449
  } else {
3450
  return Option.none();
@@ -3452,11 +3153,11 @@ var table = (function () {
3452
  });
3453
  };
3454
  var setGenericWidth = function (cell, amount, unit) {
3455
- $_2lr8nrlejfuviy40.set(cell, 'width', amount + unit);
3456
  };
3457
- var $_9h89znmajfuviybw = {
3458
- percentageBasedSizeRegex: $_fdch7uk7jfuvixxb.constant(percentageBasedSizeRegex),
3459
- pixelBasedSizeRegex: $_fdch7uk7jfuvixxb.constant(pixelBasedSizeRegex),
3460
  setPixelWidth: setPixelWidth,
3461
  setPercentageWidth: setPercentageWidth,
3462
  setHeight: setHeight,
@@ -3469,26 +3170,26 @@ var table = (function () {
3469
  };
3470
 
3471
  var halve = function (main, other) {
3472
- var width = $_9h89znmajfuviybw.getGenericWidth(main);
3473
  width.each(function (width) {
3474
  var newWidth = width.width() / 2;
3475
- $_9h89znmajfuviybw.setGenericWidth(main, newWidth, width.unit());
3476
- $_9h89znmajfuviybw.setGenericWidth(other, newWidth, width.unit());
3477
  });
3478
  };
3479
- var $_7fw3p6m9jfuviybu = { halve: halve };
3480
 
3481
  var attached = function (element, scope) {
3482
- var doc = scope || $_4sdhm4kkjfuviy0e.fromDom(document.documentElement);
3483
- return $_eg4f87lbjfuviy37.ancestor(element, $_fdch7uk7jfuvixxb.curry($_g6ztqikojfuviy13.eq, doc)).isSome();
3484
  };
3485
  var windowOf = function (element) {
3486
  var dom = element.dom();
3487
- if (dom === dom.window)
3488
  return element;
3489
- return $_6mcqmml6jfuviy2u.isDocument(element) ? dom.defaultView || dom.parentWindow : null;
3490
  };
3491
- var $_1liz6umjjfuviydr = {
3492
  attached: attached,
3493
  windowOf: windowOf
3494
  };
@@ -3498,15 +3199,16 @@ var table = (function () {
3498
  return r(left + x, top + y);
3499
  };
3500
  return {
3501
- left: $_fdch7uk7jfuvixxb.constant(left),
3502
- top: $_fdch7uk7jfuvixxb.constant(top),
3503
  translate: translate
3504
  };
3505
  };
 
3506
 
3507
  var boxPosition = function (dom) {
3508
  var box = dom.getBoundingClientRect();
3509
- return r(box.left, box.top);
3510
  };
3511
  var firstDefinedOrZero = function (a, b) {
3512
  return a !== undefined ? a : b !== undefined ? b : 0;
@@ -3514,7 +3216,7 @@ var table = (function () {
3514
  var absolute = function (element) {
3515
  var doc = element.dom().ownerDocument;
3516
  var body = doc.body;
3517
- var win = $_1liz6umjjfuviydr.windowOf($_4sdhm4kkjfuviy0e.fromDom(doc));
3518
  var html = doc.documentElement;
3519
  var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);
3520
  var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);
@@ -3524,33 +3226,33 @@ var table = (function () {
3524
  };
3525
  var relative = function (element) {
3526
  var dom = element.dom();
3527
- return r(dom.offsetLeft, dom.offsetTop);
3528
  };
3529
  var viewport = function (element) {
3530
  var dom = element.dom();
3531
  var doc = dom.ownerDocument;
3532
  var body = doc.body;
3533
- var html = $_4sdhm4kkjfuviy0e.fromDom(doc.documentElement);
3534
  if (body === dom)
3535
- return r(body.offsetLeft, body.offsetTop);
3536
- if (!$_1liz6umjjfuviydr.attached(element, html))
3537
- return r(0, 0);
3538
  return boxPosition(dom);
3539
  };
3540
- var $_6ti42xmijfuviydp = {
3541
  absolute: absolute,
3542
  relative: relative,
3543
  viewport: viewport
3544
  };
3545
 
3546
- var rowInfo = $_96oqrskbjfuvixya.immutable('row', 'y');
3547
- var colInfo = $_96oqrskbjfuvixya.immutable('col', 'x');
3548
  var rtlEdge = function (cell) {
3549
- var pos = $_6ti42xmijfuviydp.absolute(cell);
3550
- return pos.left() + $_4u9lbfmejfuviyd2.getOuter(cell);
3551
  };
3552
  var ltrEdge = function (cell) {
3553
- return $_6ti42xmijfuviydp.absolute(cell).left();
3554
  };
3555
  var getLeftEdge = function (index, cell) {
3556
  return colInfo(index, ltrEdge(cell));
@@ -3559,18 +3261,18 @@ var table = (function () {
3559
  return colInfo(index, rtlEdge(cell));
3560
  };
3561
  var getTop = function (cell) {
3562
- return $_6ti42xmijfuviydp.absolute(cell).top();
3563
  };
3564
  var getTopEdge = function (index, cell) {
3565
  return rowInfo(index, getTop(cell));
3566
  };
3567
  var getBottomEdge = function (index, cell) {
3568
- return rowInfo(index, getTop(cell) + $_e3phjumcjfuviyct.getOuter(cell));
3569
  };
3570
  var findPositions = function (getInnerEdge, getOuterEdge, array) {
3571
  if (array.length === 0)
3572
  return [];
3573
- var lines = $_4jja6kk5jfuvixx1.map(array.slice(1), function (cellOption, index) {
3574
  return cellOption.map(function (cell) {
3575
  return getInnerEdge(index, cell);
3576
  });
@@ -3584,34 +3286,34 @@ var table = (function () {
3584
  return -step;
3585
  };
3586
  var height = {
3587
- delta: $_fdch7uk7jfuvixxb.identity,
3588
- positions: $_fdch7uk7jfuvixxb.curry(findPositions, getTopEdge, getBottomEdge),
3589
  edge: getTop
3590
  };
3591
  var ltr = {
3592
- delta: $_fdch7uk7jfuvixxb.identity,
3593
  edge: ltrEdge,
3594
- positions: $_fdch7uk7jfuvixxb.curry(findPositions, getLeftEdge, getRightEdge)
3595
  };
3596
  var rtl = {
3597
  delta: negate,
3598
  edge: rtlEdge,
3599
- positions: $_fdch7uk7jfuvixxb.curry(findPositions, getRightEdge, getLeftEdge)
3600
  };
3601
- var $_bj1b3kmhjfuviyd6 = {
3602
  height: height,
3603
  rtl: rtl,
3604
  ltr: ltr
3605
  };
3606
 
3607
- var $_66dmn1mgjfuviyd5 = {
3608
- ltr: $_bj1b3kmhjfuviyd6.ltr,
3609
- rtl: $_bj1b3kmhjfuviyd6.rtl
3610
  };
3611
 
3612
  function TableDirection (directionAt) {
3613
  var auto = function (table) {
3614
- return directionAt(table).isRtl() ? $_66dmn1mgjfuviyd5.rtl : $_66dmn1mgjfuviyd5.ltr;
3615
  };
3616
  var delta = function (amount, table) {
3617
  return auto(table).delta(amount, table);
@@ -3630,11 +3332,11 @@ var table = (function () {
3630
  }
3631
 
3632
  var getGridSize = function (table) {
3633
- var input = $_2vc4gykfjfuvixyi.fromTable(table);
3634
- var warehouse = $_bwrthsldjfuviy3q.generate(input);
3635
  return warehouse.grid();
3636
  };
3637
- var $_23hnlomljfuviydz = { getGridSize: getGridSize };
3638
 
3639
  var Cell = function (initial) {
3640
  var value = initial;
@@ -3656,52 +3358,49 @@ var table = (function () {
3656
 
3657
  var base = function (handleUnsupported, required) {
3658
  return baseWith(handleUnsupported, required, {
3659
- validate: $_13kw1fk8jfuvixxd.isFunction,
3660
  label: 'function'
3661
  });
3662
  };
3663
  var baseWith = function (handleUnsupported, required, pred) {
3664
  if (required.length === 0)
3665
  throw new Error('You must specify at least one required field.');
3666
- $_cov59pkejfuvixyf.validateStrArr('required', required);
3667
- $_cov59pkejfuvixyf.checkDupes(required);
3668
  return function (obj) {
3669
- var keys = $_afb9m6kajfuvixy8.keys(obj);
3670
- var allReqd = $_4jja6kk5jfuvixx1.forall(required, function (req) {
3671
- return $_4jja6kk5jfuvixx1.contains(keys, req);
3672
  });
3673
  if (!allReqd)
3674
- $_cov59pkejfuvixyf.reqMessage(required, keys);
3675
- handleUnsupported(required, keys);
3676
- var invalidKeys = $_4jja6kk5jfuvixx1.filter(required, function (key) {
3677
  return !pred.validate(obj[key], key);
3678
  });
3679
  if (invalidKeys.length > 0)
3680
- $_cov59pkejfuvixyf.invalidTypeMessage(invalidKeys, pred.label);
3681
  return obj;
3682
  };
3683
  };
3684
- var handleExact = function (required, keys) {
3685
- var unsupported = $_4jja6kk5jfuvixx1.filter(keys, function (key) {
3686
- return !$_4jja6kk5jfuvixx1.contains(required, key);
3687
  });
3688
  if (unsupported.length > 0)
3689
- $_cov59pkejfuvixyf.unsuppMessage(unsupported);
3690
  };
3691
- var allowExtra = $_fdch7uk7jfuvixxb.noop;
3692
- var $_5ebbzmpjfuviyf6 = {
3693
- exactly: $_fdch7uk7jfuvixxb.curry(base, handleExact),
3694
- ensure: $_fdch7uk7jfuvixxb.curry(base, allowExtra),
3695
- ensureWith: $_fdch7uk7jfuvixxb.curry(baseWith, allowExtra)
3696
  };
3697
 
3698
  var elementToData = function (element) {
3699
- var colspan = $_2ekobel5jfuviy2m.has(element, 'colspan') ? parseInt($_2ekobel5jfuviy2m.get(element, 'colspan'), 10) : 1;
3700
- var rowspan = $_2ekobel5jfuviy2m.has(element, 'rowspan') ? parseInt($_2ekobel5jfuviy2m.get(element, 'rowspan'), 10) : 1;
3701
  return {
3702
- element: $_fdch7uk7jfuvixxb.constant(element),
3703
- colspan: $_fdch7uk7jfuvixxb.constant(colspan),
3704
- rowspan: $_fdch7uk7jfuvixxb.constant(rowspan)
3705
  };
3706
  };
3707
  var modification = function (generators, _toData) {
@@ -3743,8 +3442,8 @@ var table = (function () {
3743
  var position = Cell(Option.none());
3744
  contract(generators);
3745
  var list = [];
3746
- var find = function (element, comparator) {
3747
- return $_4jja6kk5jfuvixx1.find(list, function (x) {
3748
  return comparator(x.item, element);
3749
  });
3750
  };
@@ -3759,7 +3458,7 @@ var table = (function () {
3759
  return cell;
3760
  };
3761
  var replaceOrInit = function (element, comparator) {
3762
- return find(element, comparator).fold(function () {
3763
  return makeNew(element);
3764
  }, function (p) {
3765
  return comparator(element, p.item) ? p.sub : makeNew(element);
@@ -3779,12 +3478,12 @@ var table = (function () {
3779
  position.set(Option.some(cell));
3780
  return function () {
3781
  var raw = generators.cell({
3782
- element: $_fdch7uk7jfuvixxb.constant(cell),
3783
- colspan: $_fdch7uk7jfuvixxb.constant(1),
3784
- rowspan: $_fdch7uk7jfuvixxb.constant(1)
3785
  });
3786
- $_2lr8nrlejfuviy40.remove(raw, 'width');
3787
- $_2lr8nrlejfuviy40.remove(cell, 'width');
3788
  return raw;
3789
  };
3790
  };
@@ -3793,13 +3492,13 @@ var table = (function () {
3793
  cursor: position.get
3794
  };
3795
  };
3796
- var contract = $_5ebbzmpjfuviyf6.exactly([
3797
  'cell',
3798
  'row',
3799
  'replace',
3800
  'gap'
3801
  ]);
3802
- var $_blm67mmnjfuviyel = {
3803
  modification: modification,
3804
  transform: transform,
3805
  merging: merging
@@ -3839,18 +3538,18 @@ var table = (function () {
3839
  ];
3840
  var isList = function (universe, item) {
3841
  var tagName = universe.property().name(item);
3842
- return $_4jja6kk5jfuvixx1.contains([
3843
  'ol',
3844
  'ul'
3845
  ], tagName);
3846
  };
3847
  var isBlock = function (universe, item) {
3848
  var tagName = universe.property().name(item);
3849
- return $_4jja6kk5jfuvixx1.contains(blockList, tagName);
3850
  };
3851
  var isFormatting = function (universe, item) {
3852
  var tagName = universe.property().name(item);
3853
- return $_4jja6kk5jfuvixx1.contains([
3854
  'address',
3855
  'pre',
3856
  'p',
@@ -3864,7 +3563,7 @@ var table = (function () {
3864
  };
3865
  var isHeading = function (universe, item) {
3866
  var tagName = universe.property().name(item);
3867
- return $_4jja6kk5jfuvixx1.contains([
3868
  'h1',
3869
  'h2',
3870
  'h3',
@@ -3874,7 +3573,7 @@ var table = (function () {
3874
  ], tagName);
3875
  };
3876
  var isContainer = function (universe, item) {
3877
- return $_4jja6kk5jfuvixx1.contains([
3878
  'div',
3879
  'li',
3880
  'td',
@@ -3885,7 +3584,7 @@ var table = (function () {
3885
  ], universe.property().name(item));
3886
  };
3887
  var isEmptyTag = function (universe, item) {
3888
- return $_4jja6kk5jfuvixx1.contains([
3889
  'br',
3890
  'img',
3891
  'hr',
@@ -3898,7 +3597,7 @@ var table = (function () {
3898
  var isInline = function (universe, item) {
3899
  return !(isBlock(universe, item) || isEmptyTag(universe, item)) && universe.property().name(item) !== 'li';
3900
  };
3901
- var $_2jungumsjfuviyg6 = {
3902
  isBlock: isBlock,
3903
  isList: isList,
3904
  isFormatting: isFormatting,
@@ -3911,30 +3610,30 @@ var table = (function () {
3911
 
3912
  var universe$1 = DomUniverse();
3913
  var isBlock$1 = function (element) {
3914
- return $_2jungumsjfuviyg6.isBlock(universe$1, element);
3915
  };
3916
  var isList$1 = function (element) {
3917
- return $_2jungumsjfuviyg6.isList(universe$1, element);
3918
  };
3919
  var isFormatting$1 = function (element) {
3920
- return $_2jungumsjfuviyg6.isFormatting(universe$1, element);
3921
  };
3922
  var isHeading$1 = function (element) {
3923
- return $_2jungumsjfuviyg6.isHeading(universe$1, element);
3924
  };
3925
  var isContainer$1 = function (element) {
3926
- return $_2jungumsjfuviyg6.isContainer(universe$1, element);
3927
  };
3928
  var isEmptyTag$1 = function (element) {
3929
- return $_2jungumsjfuviyg6.isEmptyTag(universe$1, element);
3930
  };
3931
  var isFrame$1 = function (element) {
3932
- return $_2jungumsjfuviyg6.isFrame(universe$1, element);
3933
  };
3934
  var isInline$1 = function (element) {
3935
- return $_2jungumsjfuviyg6.isInline(universe$1, element);
3936
  };
3937
- var $_fkl6wvmrjfuviyg2 = {
3938
  isBlock: isBlock$1,
3939
  isList: isList$1,
3940
  isFormatting: isFormatting$1,
@@ -3947,53 +3646,50 @@ var table = (function () {
3947
 
3948
  var merge = function (cells) {
3949
  var isBr = function (el) {
3950
- return $_6mcqmml6jfuviy2u.name(el) === 'br';
3951
  };
3952
  var advancedBr = function (children) {
3953
- return $_4jja6kk5jfuvixx1.forall(children, function (c) {
3954
- return isBr(c) || $_6mcqmml6jfuviy2u.isText(c) && $_cvagqflnjfuviy5y.get(c).trim().length === 0;
3955
  });
3956
  };
3957
  var isListItem = function (el) {
3958
- return $_6mcqmml6jfuviy2u.name(el) === 'li' || $_eg4f87lbjfuviy37.ancestor(el, $_fkl6wvmrjfuviyg2.isList).isSome();
3959
  };
3960
  var siblingIsBlock = function (el) {
3961
- return $_87w3h3kmjfuviy0m.nextSibling(el).map(function (rightSibling) {
3962
- if ($_fkl6wvmrjfuviyg2.isBlock(rightSibling))
3963
  return true;
3964
- if ($_fkl6wvmrjfuviyg2.isEmptyTag(rightSibling)) {
3965
- return $_6mcqmml6jfuviy2u.name(rightSibling) === 'img' ? false : true;
3966
  }
3967
  }).getOr(false);
3968
  };
3969
  var markCell = function (cell) {
3970
- return $_dsfijblljfuviy5q.last(cell).bind(function (rightEdge) {
3971
  var rightSiblingIsBlock = siblingIsBlock(rightEdge);
3972
- return $_87w3h3kmjfuviy0m.parent(rightEdge).map(function (parent) {
3973
- return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || $_fkl6wvmrjfuviyg2.isBlock(parent) && !$_g6ztqikojfuviy13.eq(cell, parent) ? [] : [$_4sdhm4kkjfuviy0e.fromTag('br')];
3974
  });
3975
  }).getOr([]);
3976
  };
3977
  var markContent = function () {
3978
- var content = $_4jja6kk5jfuvixx1.bind(cells, function (cell) {
3979
- var children = $_87w3h3kmjfuviy0m.children(cell);
3980
  return advancedBr(children) ? [] : children.concat(markCell(cell));
3981
  });
3982
- return content.length === 0 ? [$_4sdhm4kkjfuviy0e.fromTag('br')] : content;
3983
  };
3984
  var contents = markContent();
3985
- $_5ud3colhjfuviy4l.empty(cells[0]);
3986
- $_44mr3plijfuviy4p.append(cells[0], contents);
3987
  };
3988
- var $_af8qgymqjfuviyf9 = { merge: merge };
3989
 
 
3990
  var shallow$1 = function (old, nu) {
3991
  return nu;
3992
  };
3993
- var deep$1 = function (old, nu) {
3994
- var bothObjects = $_13kw1fk8jfuvixxd.isObject(old) && $_13kw1fk8jfuvixxd.isObject(nu);
3995
- return bothObjects ? deepMerge(old, nu) : nu;
3996
- };
3997
  var baseMerge = function (merger) {
3998
  return function () {
3999
  var objects = new Array(arguments.length);
@@ -4005,19 +3701,15 @@ var table = (function () {
4005
  for (var j = 0; j < objects.length; j++) {
4006
  var curObject = objects[j];
4007
  for (var key in curObject)
4008
- if (curObject.hasOwnProperty(key)) {
4009
  ret[key] = merger(ret[key], curObject[key]);
4010
  }
4011
  }
4012
  return ret;
4013
  };
4014
  };
4015
- var deepMerge = baseMerge(deep$1);
4016
  var merge$1 = baseMerge(shallow$1);
4017
- var $_8d366dmujfuviygv = {
4018
- deepMerge: deepMerge,
4019
- merge: merge$1
4020
- };
4021
 
4022
  var cat = function (arr) {
4023
  var r = [];
@@ -4038,23 +3730,6 @@ var table = (function () {
4038
  }
4039
  return Option.none();
4040
  };
4041
- var liftN = function (arr, f) {
4042
- var r = [];
4043
- for (var i = 0; i < arr.length; i++) {
4044
- var x = arr[i];
4045
- if (x.isSome()) {
4046
- r.push(x.getOrDie());
4047
- } else {
4048
- return Option.none();
4049
- }
4050
- }
4051
- return Option.some(f.apply(null, r));
4052
- };
4053
- var $_6i1r9dmvjfuviygw = {
4054
- cat: cat,
4055
- findMap: findMap,
4056
- liftN: liftN
4057
- };
4058
 
4059
  var addCell = function (gridRow, index, cell) {
4060
  var cells = gridRow.cells();
@@ -4068,12 +3743,12 @@ var table = (function () {
4068
  cells[index] = cell;
4069
  };
4070
  var setCells = function (gridRow, cells) {
4071
- return $_g02m1vkgjfuvixyt.rowcells(cells, gridRow.section());
4072
  };
4073
  var mapCells = function (gridRow, f) {
4074
  var cells = gridRow.cells();
4075
- var r = $_4jja6kk5jfuvixx1.map(cells, f);
4076
- return $_g02m1vkgjfuvixyt.rowcells(r, gridRow.section());
4077
  };
4078
  var getCell = function (gridRow, index) {
4079
  return gridRow.cells()[index];
@@ -4084,7 +3759,7 @@ var table = (function () {
4084
  var cellLength = function (gridRow) {
4085
  return gridRow.cells().length;
4086
  };
4087
- var $_f8bgbgmyjfuviyha = {
4088
  addCell: addCell,
4089
  setCells: setCells,
4090
  mutateCell: mutateCell,
@@ -4095,8 +3770,8 @@ var table = (function () {
4095
  };
4096
 
4097
  var getColumn = function (grid, index) {
4098
- return $_4jja6kk5jfuvixx1.map(grid, function (row) {
4099
- return $_f8bgbgmyjfuviyha.getCell(row, index);
4100
  });
4101
  };
4102
  var getRow = function (grid, index) {
@@ -4106,7 +3781,7 @@ var table = (function () {
4106
  if (xs.length === 0)
4107
  return 0;
4108
  var first = xs[0];
4109
- var index = $_4jja6kk5jfuvixx1.findIndex(xs, function (x) {
4110
  return !comp(first.element(), x.element());
4111
  });
4112
  return index.fold(function () {
@@ -4121,15 +3796,15 @@ var table = (function () {
4121
  var restOfColumn = getColumn(grid, column).slice(row);
4122
  var endRowIndex = findDiff(restOfColumn, comparator);
4123
  return {
4124
- colspan: $_fdch7uk7jfuvixxb.constant(endColIndex),
4125
- rowspan: $_fdch7uk7jfuvixxb.constant(endRowIndex)
4126
  };
4127
  };
4128
- var $_gf3zj4mxjfuviyh3 = { subgrid: subgrid };
4129
 
4130
  var toDetails = function (grid, comparator) {
4131
- var seen = $_4jja6kk5jfuvixx1.map(grid, function (row, ri) {
4132
- return $_4jja6kk5jfuvixx1.map(row.cells(), function (col, ci) {
4133
  return false;
4134
  });
4135
  });
@@ -4140,17 +3815,17 @@ var table = (function () {
4140
  }
4141
  }
4142
  };
4143
- return $_4jja6kk5jfuvixx1.map(grid, function (row, ri) {
4144
- var details = $_4jja6kk5jfuvixx1.bind(row.cells(), function (cell, ci) {
4145
  if (seen[ri][ci] === false) {
4146
- var result = $_gf3zj4mxjfuviyh3.subgrid(grid, ri, ci, comparator);
4147
  updateSeen(ri, ci, result.rowspan(), result.colspan());
4148
- return [$_g02m1vkgjfuvixyt.detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];
4149
  } else {
4150
  return [];
4151
  }
4152
  });
4153
- return $_g02m1vkgjfuvixyt.rowdetails(details, row.section());
4154
  });
4155
  };
4156
  var toGrid = function (warehouse, generators, isNew) {
@@ -4158,59 +3833,59 @@ var table = (function () {
4158
  for (var i = 0; i < warehouse.grid().rows(); i++) {
4159
  var rowCells = [];
4160
  for (var j = 0; j < warehouse.grid().columns(); j++) {
4161
- var element = $_bwrthsldjfuviy3q.getAt(warehouse, i, j).map(function (item) {
4162
- return $_g02m1vkgjfuvixyt.elementnew(item.element(), isNew);
4163
  }).getOrThunk(function () {
4164
- return $_g02m1vkgjfuvixyt.elementnew(generators.gap(), true);
4165
  });
4166
  rowCells.push(element);
4167
  }
4168
- var row = $_g02m1vkgjfuvixyt.rowcells(rowCells, warehouse.all()[i].section());
4169
  grid.push(row);
4170
  }
4171
  return grid;
4172
  };
4173
- var $_b883t1mwjfuviygz = {
4174
  toDetails: toDetails,
4175
  toGrid: toGrid
4176
  };
4177
 
4178
  var setIfNot = function (element, property, value, ignore) {
4179
  if (value === ignore)
4180
- $_2ekobel5jfuviy2m.remove(element, property);
4181
  else
4182
- $_2ekobel5jfuviy2m.set(element, property, value);
4183
  };
4184
  var render = function (table, grid) {
4185
  var newRows = [];
4186
  var newCells = [];
4187
  var renderSection = function (gridSection, sectionName) {
4188
- var section = $_26gnp6lajfuviy35.child(table, sectionName).getOrThunk(function () {
4189
- var tb = $_4sdhm4kkjfuviy0e.fromTag(sectionName, $_87w3h3kmjfuviy0m.owner(table).dom());
4190
- $_5zcsfmlgjfuviy4g.append(table, tb);
4191
  return tb;
4192
  });
4193
- $_5ud3colhjfuviy4l.empty(section);
4194
- var rows = $_4jja6kk5jfuvixx1.map(gridSection, function (row) {
4195
  if (row.isNew()) {
4196
  newRows.push(row.element());
4197
  }
4198
  var tr = row.element();
4199
- $_5ud3colhjfuviy4l.empty(tr);
4200
- $_4jja6kk5jfuvixx1.each(row.cells(), function (cell) {
4201
  if (cell.isNew()) {
4202
  newCells.push(cell.element());
4203
  }
4204
  setIfNot(cell.element(), 'colspan', cell.colspan(), 1);
4205
  setIfNot(cell.element(), 'rowspan', cell.rowspan(), 1);
4206
- $_5zcsfmlgjfuviy4g.append(tr, cell.element());
4207
  });
4208
  return tr;
4209
  });
4210
- $_44mr3plijfuviy4p.append(section, rows);
4211
  };
4212
  var removeSection = function (sectionName) {
4213
- $_26gnp6lajfuviy35.child(table, sectionName).bind($_5ud3colhjfuviy4l.remove);
4214
  };
4215
  var renderOrRemoveSection = function (gridSection, sectionName) {
4216
  if (gridSection.length > 0) {
@@ -4222,7 +3897,7 @@ var table = (function () {
4222
  var headSection = [];
4223
  var bodySection = [];
4224
  var footSection = [];
4225
- $_4jja6kk5jfuvixx1.each(grid, function (row) {
4226
  switch (row.section()) {
4227
  case 'thead':
4228
  headSection.push(row);
@@ -4239,24 +3914,24 @@ var table = (function () {
4239
  renderOrRemoveSection(bodySection, 'tbody');
4240
  renderOrRemoveSection(footSection, 'tfoot');
4241
  return {
4242
- newRows: $_fdch7uk7jfuvixxb.constant(newRows),
4243
- newCells: $_fdch7uk7jfuvixxb.constant(newCells)
4244
  };
4245
  };
4246
  var copy$2 = function (grid) {
4247
- var rows = $_4jja6kk5jfuvixx1.map(grid, function (row) {
4248
- var tr = $_1i39h2lkjfuviy5n.shallow(row.element());
4249
- $_4jja6kk5jfuvixx1.each(row.cells(), function (cell) {
4250
- var clonedCell = $_1i39h2lkjfuviy5n.deep(cell.element());
4251
  setIfNot(clonedCell, 'colspan', cell.colspan(), 1);
4252
  setIfNot(clonedCell, 'rowspan', cell.rowspan(), 1);
4253
- $_5zcsfmlgjfuviy4g.append(tr, clonedCell);
4254
  });
4255
  return tr;
4256
  });
4257
  return rows;
4258
  };
4259
- var $_clwdhumzjfuviyhf = {
4260
  render: render,
4261
  copy: copy$2
4262
  };
@@ -4277,7 +3952,7 @@ var table = (function () {
4277
  };
4278
  var unique = function (xs, comparator) {
4279
  var result = [];
4280
- $_4jja6kk5jfuvixx1.each(xs, function (x, i) {
4281
  if (i < xs.length - 1 && !comparator(x, xs[i + 1])) {
4282
  result.push(x);
4283
  } else if (i === xs.length - 1) {
@@ -4290,8 +3965,8 @@ var table = (function () {
4290
  if (index < 0 || index >= xs.length - 1)
4291
  return Option.none();
4292
  var current = xs[index].fold(function () {
4293
- var rest = $_4jja6kk5jfuvixx1.reverse(xs.slice(0, index));
4294
- return $_6i1r9dmvjfuviygw.findMap(rest, function (a, i) {
4295
  return a.map(function (aa) {
4296
  return {
4297
  value: aa,
@@ -4307,7 +3982,7 @@ var table = (function () {
4307
  });
4308
  var next = xs[index + 1].fold(function () {
4309
  var rest = xs.slice(index + 1);
4310
- return $_6i1r9dmvjfuviygw.findMap(rest, function (a, i) {
4311
  return a.map(function (aa) {
4312
  return {
4313
  value: aa,
@@ -4328,7 +4003,7 @@ var table = (function () {
4328
  });
4329
  });
4330
  };
4331
- var $_7hhay7n2jfuviyj3 = {
4332
  repeat: repeat,
4333
  range: range$1,
4334
  unique: unique,
@@ -4337,14 +4012,14 @@ var table = (function () {
4337
 
4338
  var columns = function (warehouse) {
4339
  var grid = warehouse.grid();
4340
- var cols = $_7hhay7n2jfuviyj3.range(0, grid.columns());
4341
- var rows = $_7hhay7n2jfuviyj3.range(0, grid.rows());
4342
- return $_4jja6kk5jfuvixx1.map(cols, function (col) {
4343
  var getBlock = function () {
4344
- return $_4jja6kk5jfuvixx1.bind(rows, function (r) {
4345
- return $_bwrthsldjfuviy3q.getAt(warehouse, r, col).filter(function (detail) {
4346
  return detail.column() === col;
4347
- }).fold($_fdch7uk7jfuvixxb.constant([]), function (detail) {
4348
  return [detail];
4349
  });
4350
  });
@@ -4353,14 +4028,14 @@ var table = (function () {
4353
  return detail.colspan() === 1;
4354
  };
4355
  var getFallback = function () {
4356
- return $_bwrthsldjfuviy3q.getAt(warehouse, 0, col);
4357
  };
4358
  return decide(getBlock, isSingle, getFallback);
4359
  });
4360
  };
4361
  var decide = function (getBlock, isSingle, getFallback) {
4362
  var inBlock = getBlock();
4363
- var singleInBlock = $_4jja6kk5jfuvixx1.find(inBlock, isSingle);
4364
  var detailOption = singleInBlock.orThunk(function () {
4365
  return Option.from(inBlock[0]).orThunk(getFallback);
4366
  });
@@ -4370,14 +4045,14 @@ var table = (function () {
4370
  };
4371
  var rows$1 = function (warehouse) {
4372
  var grid = warehouse.grid();
4373
- var rows = $_7hhay7n2jfuviyj3.range(0, grid.rows());
4374
- var cols = $_7hhay7n2jfuviyj3.range(0, grid.columns());
4375
- return $_4jja6kk5jfuvixx1.map(rows, function (row) {
4376
  var getBlock = function () {
4377
- return $_4jja6kk5jfuvixx1.bind(cols, function (c) {
4378
- return $_bwrthsldjfuviy3q.getAt(warehouse, row, c).filter(function (detail) {
4379
  return detail.row() === row;
4380
- }).fold($_fdch7uk7jfuvixxb.constant([]), function (detail) {
4381
  return [detail];
4382
  });
4383
  });
@@ -4386,47 +4061,47 @@ var table = (function () {
4386
  return detail.rowspan() === 1;
4387
  };
4388
  var getFallback = function () {
4389
- return $_bwrthsldjfuviy3q.getAt(warehouse, row, 0);
4390
  };
4391
  return decide(getBlock, isSingle, getFallback);
4392
  });
4393
  };
4394
- var $_beg7ofn1jfuviyiu = {
4395
  columns: columns,
4396
  rows: rows$1
4397
  };
4398
 
4399
  var col = function (column, x, y, w, h) {
4400
- var blocker = $_4sdhm4kkjfuviy0e.fromTag('div');
4401
- $_2lr8nrlejfuviy40.setAll(blocker, {
4402
  position: 'absolute',
4403
  left: x - w / 2 + 'px',
4404
  top: y + 'px',
4405
  height: h + 'px',
4406
  width: w + 'px'
4407
  });
4408
- $_2ekobel5jfuviy2m.setAll(blocker, {
4409
  'data-column': column,
4410
  'role': 'presentation'
4411
  });
4412
  return blocker;
4413
  };
4414
  var row$1 = function (row, x, y, w, h) {
4415
- var blocker = $_4sdhm4kkjfuviy0e.fromTag('div');
4416
- $_2lr8nrlejfuviy40.setAll(blocker, {
4417
  position: 'absolute',
4418
  left: x + 'px',
4419
  top: y - h / 2 + 'px',
4420
  height: h + 'px',
4421
  width: w + 'px'
4422
  });
4423
- $_2ekobel5jfuviy2m.setAll(blocker, {
4424
  'data-row': row,
4425
  'role': 'presentation'
4426
  });
4427
  return blocker;
4428
  };
4429
- var $_97ni1cn3jfuviyjc = {
4430
  col: col,
4431
  row: row$1
4432
  };
@@ -4438,10 +4113,9 @@ var table = (function () {
4438
  };
4439
  return { resolve: resolve };
4440
  };
4441
- var $_13iai7n5jfuviyjr = { css: css };
4442
 
4443
- var styles = $_13iai7n5jfuviyjr.css('ephox-snooker');
4444
- var $_a98vnwn4jfuviyjo = { resolve: styles.resolve };
4445
 
4446
  function Toggler (turnOff, turnOn, initial) {
4447
  var active = initial || false;
@@ -4469,24 +4143,26 @@ var table = (function () {
4469
  }
4470
 
4471
  var read = function (element, attr) {
4472
- var value = $_2ekobel5jfuviy2m.get(element, attr);
4473
  return value === undefined || value === '' ? [] : value.split(' ');
4474
  };
4475
  var add = function (element, attr, id) {
4476
  var old = read(element, attr);
4477
  var nu = old.concat([id]);
4478
- $_2ekobel5jfuviy2m.set(element, attr, nu.join(' '));
 
4479
  };
4480
  var remove$3 = function (element, attr, id) {
4481
- var nu = $_4jja6kk5jfuvixx1.filter(read(element, attr), function (v) {
4482
  return v !== id;
4483
  });
4484
  if (nu.length > 0)
4485
- $_2ekobel5jfuviy2m.set(element, attr, nu.join(' '));
4486
  else
4487
- $_2ekobel5jfuviy2m.remove(element, attr);
 
4488
  };
4489
- var $_3iq9wqn9jfuviyjz = {
4490
  read: read,
4491
  add: add,
4492
  remove: remove$3
@@ -4496,22 +4172,22 @@ var table = (function () {
4496
  return element.dom().classList !== undefined;
4497
  };
4498
  var get$6 = function (element) {
4499
- return $_3iq9wqn9jfuviyjz.read(element, 'class');
4500
  };
4501
  var add$1 = function (element, clazz) {
4502
- return $_3iq9wqn9jfuviyjz.add(element, 'class', clazz);
4503
  };
4504
  var remove$4 = function (element, clazz) {
4505
- return $_3iq9wqn9jfuviyjz.remove(element, 'class', clazz);
4506
  };
4507
  var toggle = function (element, clazz) {
4508
- if ($_4jja6kk5jfuvixx1.contains(get$6(element), clazz)) {
4509
- remove$4(element, clazz);
4510
  } else {
4511
- add$1(element, clazz);
4512
  }
4513
  };
4514
- var $_1jx5cbn8jfuviyjv = {
4515
  get: get$6,
4516
  add: add$1,
4517
  remove: remove$4,
@@ -4520,49 +4196,49 @@ var table = (function () {
4520
  };
4521
 
4522
  var add$2 = function (element, clazz) {
4523
- if ($_1jx5cbn8jfuviyjv.supports(element))
4524
  element.dom().classList.add(clazz);
4525
  else
4526
- $_1jx5cbn8jfuviyjv.add(element, clazz);
4527
  };
4528
  var cleanClass = function (element) {
4529
- var classList = $_1jx5cbn8jfuviyjv.supports(element) ? element.dom().classList : $_1jx5cbn8jfuviyjv.get(element);
4530
  if (classList.length === 0) {
4531
- $_2ekobel5jfuviy2m.remove(element, 'class');
4532
  }
4533
  };
4534
  var remove$5 = function (element, clazz) {
4535
- if ($_1jx5cbn8jfuviyjv.supports(element)) {
4536
  var classList = element.dom().classList;
4537
  classList.remove(clazz);
4538
  } else
4539
- $_1jx5cbn8jfuviyjv.remove(element, clazz);
4540
  cleanClass(element);
4541
  };
4542
  var toggle$1 = function (element, clazz) {
4543
- return $_1jx5cbn8jfuviyjv.supports(element) ? element.dom().classList.toggle(clazz) : $_1jx5cbn8jfuviyjv.toggle(element, clazz);
4544
  };
4545
  var toggler = function (element, clazz) {
4546
- var hasClasslist = $_1jx5cbn8jfuviyjv.supports(element);
4547
  var classList = element.dom().classList;
4548
  var off = function () {
4549
  if (hasClasslist)
4550
  classList.remove(clazz);
4551
  else
4552
- $_1jx5cbn8jfuviyjv.remove(element, clazz);
4553
  };
4554
  var on = function () {
4555
  if (hasClasslist)
4556
  classList.add(clazz);
4557
  else
4558
- $_1jx5cbn8jfuviyjv.add(element, clazz);
4559
  };
4560
  return Toggler(off, on, has$1(element, clazz));
4561
  };
4562
  var has$1 = function (element, clazz) {
4563
- return $_1jx5cbn8jfuviyjv.supports(element) && element.dom().classList.contains(clazz);
4564
  };
4565
- var $_c1zp6in6jfuviyjs = {
4566
  add: add$2,
4567
  remove: remove$5,
4568
  toggle: toggle$1,
@@ -4570,74 +4246,74 @@ var table = (function () {
4570
  has: has$1
4571
  };
4572
 
4573
- var resizeBar = $_a98vnwn4jfuviyjo.resolve('resizer-bar');
4574
- var resizeRowBar = $_a98vnwn4jfuviyjo.resolve('resizer-rows');
4575
- var resizeColBar = $_a98vnwn4jfuviyjo.resolve('resizer-cols');
4576
  var BAR_THICKNESS = 7;
4577
  var clear = function (wire) {
4578
- var previous = $_a3hs1bl7jfuviy2w.descendants(wire.parent(), '.' + resizeBar);
4579
- $_4jja6kk5jfuvixx1.each(previous, $_5ud3colhjfuviy4l.remove);
4580
  };
4581
  var drawBar = function (wire, positions, create) {
4582
  var origin = wire.origin();
4583
- $_4jja6kk5jfuvixx1.each(positions, function (cpOption, i) {
4584
  cpOption.each(function (cp) {
4585
  var bar = create(origin, cp);
4586
- $_c1zp6in6jfuviyjs.add(bar, resizeBar);
4587
- $_5zcsfmlgjfuviy4g.append(wire.parent(), bar);
4588
  });
4589
  });
4590
  };
4591
  var refreshCol = function (wire, colPositions, position, tableHeight) {
4592
  drawBar(wire, colPositions, function (origin, cp) {
4593
- var colBar = $_97ni1cn3jfuviyjc.col(cp.col(), cp.x() - origin.left(), position.top() - origin.top(), BAR_THICKNESS, tableHeight);
4594
- $_c1zp6in6jfuviyjs.add(colBar, resizeColBar);
4595
  return colBar;
4596
  });
4597
  };
4598
  var refreshRow = function (wire, rowPositions, position, tableWidth) {
4599
  drawBar(wire, rowPositions, function (origin, cp) {
4600
- var rowBar = $_97ni1cn3jfuviyjc.row(cp.row(), position.left() - origin.left(), cp.y() - origin.top(), tableWidth, BAR_THICKNESS);
4601
- $_c1zp6in6jfuviyjs.add(rowBar, resizeRowBar);
4602
  return rowBar;
4603
  });
4604
  };
4605
  var refreshGrid = function (wire, table, rows, cols, hdirection, vdirection) {
4606
- var position = $_6ti42xmijfuviydp.absolute(table);
4607
  var rowPositions = rows.length > 0 ? hdirection.positions(rows, table) : [];
4608
- refreshRow(wire, rowPositions, position, $_4u9lbfmejfuviyd2.getOuter(table));
4609
  var colPositions = cols.length > 0 ? vdirection.positions(cols, table) : [];
4610
- refreshCol(wire, colPositions, position, $_e3phjumcjfuviyct.getOuter(table));
4611
  };
4612
  var refresh = function (wire, table, hdirection, vdirection) {
4613
  clear(wire);
4614
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
4615
- var warehouse = $_bwrthsldjfuviy3q.generate(list);
4616
- var rows = $_beg7ofn1jfuviyiu.rows(warehouse);
4617
- var cols = $_beg7ofn1jfuviyiu.columns(warehouse);
4618
  refreshGrid(wire, table, rows, cols, hdirection, vdirection);
4619
  };
4620
  var each$2 = function (wire, f) {
4621
- var bars = $_a3hs1bl7jfuviy2w.descendants(wire.parent(), '.' + resizeBar);
4622
- $_4jja6kk5jfuvixx1.each(bars, f);
4623
  };
4624
  var hide = function (wire) {
4625
  each$2(wire, function (bar) {
4626
- $_2lr8nrlejfuviy40.set(bar, 'display', 'none');
4627
  });
4628
  };
4629
  var show = function (wire) {
4630
  each$2(wire, function (bar) {
4631
- $_2lr8nrlejfuviy40.set(bar, 'display', 'block');
4632
  });
4633
  };
4634
  var isRowBar = function (element) {
4635
- return $_c1zp6in6jfuviyjs.has(element, resizeRowBar);
4636
  };
4637
  var isColBar = function (element) {
4638
- return $_c1zp6in6jfuviyjs.has(element, resizeColBar);
4639
  };
4640
- var $_8qdnrkn0jfuviyi7 = {
4641
  refresh: refresh,
4642
  hide: hide,
4643
  show: show,
@@ -4647,57 +4323,57 @@ var table = (function () {
4647
  };
4648
 
4649
  var fromWarehouse = function (warehouse, generators) {
4650
- return $_b883t1mwjfuviygz.toGrid(warehouse, generators, false);
4651
  };
4652
  var deriveRows = function (rendered, generators) {
4653
  var findRow = function (details) {
4654
- var rowOfCells = $_6i1r9dmvjfuviygw.findMap(details, function (detail) {
4655
- return $_87w3h3kmjfuviy0m.parent(detail.element()).map(function (row) {
4656
- var isNew = $_87w3h3kmjfuviy0m.parent(row).isNone();
4657
- return $_g02m1vkgjfuvixyt.elementnew(row, isNew);
4658
  });
4659
  });
4660
  return rowOfCells.getOrThunk(function () {
4661
- return $_g02m1vkgjfuvixyt.elementnew(generators.row(), true);
4662
  });
4663
  };
4664
- return $_4jja6kk5jfuvixx1.map(rendered, function (details) {
4665
  var row = findRow(details.details());
4666
- return $_g02m1vkgjfuvixyt.rowdatanew(row.element(), details.details(), details.section(), row.isNew());
4667
  });
4668
  };
4669
  var toDetailList = function (grid, generators) {
4670
- var rendered = $_b883t1mwjfuviygz.toDetails(grid, $_g6ztqikojfuviy13.eq);
4671
  return deriveRows(rendered, generators);
4672
  };
4673
  var findInWarehouse = function (warehouse, element) {
4674
- var all = $_4jja6kk5jfuvixx1.flatten($_4jja6kk5jfuvixx1.map(warehouse.all(), function (r) {
4675
  return r.cells();
4676
  }));
4677
- return $_4jja6kk5jfuvixx1.find(all, function (e) {
4678
- return $_g6ztqikojfuviy13.eq(element, e.element());
4679
  });
4680
  };
4681
  var run = function (operation, extract, adjustment, postAction, genWrappers) {
4682
  return function (wire, table, target, generators, direction) {
4683
- var input = $_2vc4gykfjfuvixyi.fromTable(table);
4684
- var warehouse = $_bwrthsldjfuviy3q.generate(input);
4685
  var output = extract(warehouse, target).map(function (info) {
4686
  var model = fromWarehouse(warehouse, generators);
4687
- var result = operation(model, info, $_g6ztqikojfuviy13.eq, genWrappers(generators));
4688
  var grid = toDetailList(result.grid(), generators);
4689
  return {
4690
- grid: $_fdch7uk7jfuvixxb.constant(grid),
4691
  cursor: result.cursor
4692
  };
4693
  });
4694
  return output.fold(function () {
4695
  return Option.none();
4696
  }, function (out) {
4697
- var newElements = $_clwdhumzjfuviyhf.render(table, out.grid());
4698
  adjustment(table, out.grid(), direction);
4699
  postAction(table);
4700
- $_8qdnrkn0jfuviyi7.refresh(wire, table, $_bj1b3kmhjfuviyd6.height, direction);
4701
  return Option.some({
4702
  cursor: out.cursor,
4703
  newRows: newElements.newRows,
@@ -4707,14 +4383,14 @@ var table = (function () {
4707
  };
4708
  };
4709
  var onCell = function (warehouse, target) {
4710
- return $_dmqxswkhjfuvixyz.cell(target.element()).bind(function (cell) {
4711
  return findInWarehouse(warehouse, cell);
4712
  });
4713
  };
4714
  var onPaste = function (warehouse, target) {
4715
- return $_dmqxswkhjfuvixyz.cell(target.element()).bind(function (cell) {
4716
  return findInWarehouse(warehouse, cell).map(function (details) {
4717
- return $_8d366dmujfuviygv.merge(details, {
4718
  generators: target.generators,
4719
  clipboard: target.clipboard
4720
  });
@@ -4722,13 +4398,13 @@ var table = (function () {
4722
  });
4723
  };
4724
  var onPasteRows = function (warehouse, target) {
4725
- var details = $_4jja6kk5jfuvixx1.map(target.selection(), function (cell) {
4726
- return $_dmqxswkhjfuvixyz.cell(cell).bind(function (lc) {
4727
  return findInWarehouse(warehouse, lc);
4728
  });
4729
  });
4730
- var cells = $_6i1r9dmvjfuviygw.cat(details);
4731
- return cells.length > 0 ? Option.some($_8d366dmujfuviygv.merge({ cells: cells }, {
4732
  generators: target.generators,
4733
  clipboard: target.clipboard
4734
  })) : Option.none();
@@ -4740,15 +4416,15 @@ var table = (function () {
4740
  return target.unmergable();
4741
  };
4742
  var onCells = function (warehouse, target) {
4743
- var details = $_4jja6kk5jfuvixx1.map(target.selection(), function (cell) {
4744
- return $_dmqxswkhjfuvixyz.cell(cell).bind(function (lc) {
4745
  return findInWarehouse(warehouse, lc);
4746
  });
4747
  });
4748
- var cells = $_6i1r9dmvjfuviygw.cat(details);
4749
  return cells.length > 0 ? Option.some(cells) : Option.none();
4750
  };
4751
- var $_b9rtfhmtjfuviygc = {
4752
  run: run,
4753
  toDetailList: toDetailList,
4754
  onCell: onCell,
@@ -4792,11 +4468,11 @@ var table = (function () {
4792
  };
4793
  return {
4794
  is: is,
4795
- isValue: $_fdch7uk7jfuvixxb.always,
4796
- isError: $_fdch7uk7jfuvixxb.never,
4797
- getOr: $_fdch7uk7jfuvixxb.constant(o),
4798
- getOrThunk: $_fdch7uk7jfuvixxb.constant(o),
4799
- getOrDie: $_fdch7uk7jfuvixxb.constant(o),
4800
  or: or,
4801
  orThunk: orThunk,
4802
  fold: fold,
@@ -4813,7 +4489,7 @@ var table = (function () {
4813
  return f();
4814
  };
4815
  var getOrDie = function () {
4816
- return $_fdch7uk7jfuvixxb.die(String(message))();
4817
  };
4818
  var or = function (opt) {
4819
  return opt;
@@ -4831,20 +4507,20 @@ var table = (function () {
4831
  return onError(message);
4832
  };
4833
  return {
4834
- is: $_fdch7uk7jfuvixxb.never,
4835
- isValue: $_fdch7uk7jfuvixxb.never,
4836
- isError: $_fdch7uk7jfuvixxb.always,
4837
- getOr: $_fdch7uk7jfuvixxb.identity,
4838
  getOrThunk: getOrThunk,
4839
  getOrDie: getOrDie,
4840
  or: or,
4841
  orThunk: orThunk,
4842
  fold: fold,
4843
  map: map,
4844
- each: $_fdch7uk7jfuvixxb.noop,
4845
  bind: bind,
4846
- exists: $_fdch7uk7jfuvixxb.never,
4847
- forall: $_fdch7uk7jfuvixxb.always,
4848
  toOption: Option.none
4849
  };
4850
  };
@@ -4854,48 +4530,48 @@ var table = (function () {
4854
  };
4855
 
4856
  var measure = function (startAddress, gridA, gridB) {
4857
- if (startAddress.row() >= gridA.length || startAddress.column() > $_f8bgbgmyjfuviyha.cellLength(gridA[0]))
4858
  return Result.error('invalid start address out of table bounds, row: ' + startAddress.row() + ', column: ' + startAddress.column());
4859
  var rowRemainder = gridA.slice(startAddress.row());
4860
  var colRemainder = rowRemainder[0].cells().slice(startAddress.column());
4861
- var colRequired = $_f8bgbgmyjfuviyha.cellLength(gridB[0]);
4862
  var rowRequired = gridB.length;
4863
  return Result.value({
4864
- rowDelta: $_fdch7uk7jfuvixxb.constant(rowRemainder.length - rowRequired),
4865
- colDelta: $_fdch7uk7jfuvixxb.constant(colRemainder.length - colRequired)
4866
  });
4867
  };
4868
  var measureWidth = function (gridA, gridB) {
4869
- var colLengthA = $_f8bgbgmyjfuviyha.cellLength(gridA[0]);
4870
- var colLengthB = $_f8bgbgmyjfuviyha.cellLength(gridB[0]);
4871
  return {
4872
- rowDelta: $_fdch7uk7jfuvixxb.constant(0),
4873
- colDelta: $_fdch7uk7jfuvixxb.constant(colLengthA - colLengthB)
4874
  };
4875
  };
4876
  var fill = function (cells, generator) {
4877
- return $_4jja6kk5jfuvixx1.map(cells, function () {
4878
- return $_g02m1vkgjfuvixyt.elementnew(generator.cell(), true);
4879
  });
4880
  };
4881
  var rowFill = function (grid, amount, generator) {
4882
- return grid.concat($_7hhay7n2jfuviyj3.repeat(amount, function (_row) {
4883
- return $_f8bgbgmyjfuviyha.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));
4884
  }));
4885
  };
4886
  var colFill = function (grid, amount, generator) {
4887
- return $_4jja6kk5jfuvixx1.map(grid, function (row) {
4888
- return $_f8bgbgmyjfuviyha.setCells(row, row.cells().concat(fill($_7hhay7n2jfuviyj3.range(0, amount), generator)));
4889
  });
4890
  };
4891
  var tailor = function (gridA, delta, generator) {
4892
- var fillCols = delta.colDelta() < 0 ? colFill : $_fdch7uk7jfuvixxb.identity;
4893
- var fillRows = delta.rowDelta() < 0 ? rowFill : $_fdch7uk7jfuvixxb.identity;
4894
  var modifiedCols = fillCols(gridA, Math.abs(delta.colDelta()), generator);
4895
  var tailoredGrid = fillRows(modifiedCols, Math.abs(delta.rowDelta()), generator);
4896
  return tailoredGrid;
4897
  };
4898
- var $_b36tqhnbjfuviyk9 = {
4899
  measure: measure,
4900
  measureWidth: measureWidth,
4901
  tailor: tailor
@@ -4906,7 +4582,7 @@ var table = (function () {
4906
  return grid;
4907
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
4908
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
4909
- $_f8bgbgmyjfuviyha.mutateCell(grid[i], j, $_g02m1vkgjfuvixyt.elementnew(substitution(), false));
4910
  }
4911
  }
4912
  return grid;
@@ -4914,11 +4590,11 @@ var table = (function () {
4914
  var unmerge = function (grid, target, comparator, substitution) {
4915
  var first = true;
4916
  for (var i = 0; i < grid.length; i++) {
4917
- for (var j = 0; j < $_f8bgbgmyjfuviyha.cellLength(grid[0]); j++) {
4918
- var current = $_f8bgbgmyjfuviyha.getCellElement(grid[i], j);
4919
  var isToReplace = comparator(current, target);
4920
  if (isToReplace === true && first === false) {
4921
- $_f8bgbgmyjfuviyha.mutateCell(grid[i], j, $_g02m1vkgjfuvixyt.elementnew(substitution(), true));
4922
  } else if (isToReplace === true) {
4923
  first = false;
4924
  }
@@ -4927,8 +4603,8 @@ var table = (function () {
4927
  return grid;
4928
  };
4929
  var uniqueCells = function (row, comparator) {
4930
- return $_4jja6kk5jfuvixx1.foldl(row, function (rest, cell) {
4931
- return $_4jja6kk5jfuvixx1.exists(rest, function (currentCell) {
4932
  return comparator(currentCell.element(), cell.element());
4933
  }) ? rest : rest.concat([cell]);
4934
  }, []);
@@ -4937,10 +4613,10 @@ var table = (function () {
4937
  if (index > 0 && index < grid.length) {
4938
  var rowPrevCells = grid[index - 1].cells();
4939
  var cells = uniqueCells(rowPrevCells, comparator);
4940
- $_4jja6kk5jfuvixx1.each(cells, function (cell) {
4941
  var replacement = Option.none();
4942
  for (var i = index; i < grid.length; i++) {
4943
- for (var j = 0; j < $_f8bgbgmyjfuviyha.cellLength(grid[0]); j++) {
4944
  var current = grid[i].cells()[j];
4945
  var isToReplace = comparator(current.element(), cell.element());
4946
  if (isToReplace) {
@@ -4948,7 +4624,7 @@ var table = (function () {
4948
  replacement = Option.some(substitution());
4949
  }
4950
  replacement.each(function (sub) {
4951
- $_f8bgbgmyjfuviyha.mutateCell(grid[i], j, $_g02m1vkgjfuvixyt.elementnew(sub, true));
4952
  });
4953
  }
4954
  }
@@ -4957,53 +4633,53 @@ var table = (function () {
4957
  }
4958
  return grid;
4959
  };
4960
- var $_aovyapndjfuviykl = {
4961
  merge: merge$2,
4962
  unmerge: unmerge,
4963
  splitRows: splitRows
4964
  };
4965
 
4966
  var isSpanning = function (grid, row, col, comparator) {
4967
- var candidate = $_f8bgbgmyjfuviyha.getCell(grid[row], col);
4968
- var matching = $_fdch7uk7jfuvixxb.curry(comparator, candidate.element());
4969
  var currentRow = grid[row];
4970
- return grid.length > 1 && $_f8bgbgmyjfuviyha.cellLength(currentRow) > 1 && (col > 0 && matching($_f8bgbgmyjfuviyha.getCellElement(currentRow, col - 1)) || col < currentRow.length - 1 && matching($_f8bgbgmyjfuviyha.getCellElement(currentRow, col + 1)) || row > 0 && matching($_f8bgbgmyjfuviyha.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching($_f8bgbgmyjfuviyha.getCellElement(grid[row + 1], col)));
4971
  };
4972
  var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {
4973
  var startRow = startAddress.row();
4974
  var startCol = startAddress.column();
4975
  var mergeHeight = gridB.length;
4976
- var mergeWidth = $_f8bgbgmyjfuviyha.cellLength(gridB[0]);
4977
  var endRow = startRow + mergeHeight;
4978
  var endCol = startCol + mergeWidth;
4979
  for (var r = startRow; r < endRow; r++) {
4980
  for (var c = startCol; c < endCol; c++) {
4981
  if (isSpanning(gridA, r, c, comparator)) {
4982
- $_aovyapndjfuviykl.unmerge(gridA, $_f8bgbgmyjfuviyha.getCellElement(gridA[r], c), comparator, generator.cell);
4983
  }
4984
- var newCell = $_f8bgbgmyjfuviyha.getCellElement(gridB[r - startRow], c - startCol);
4985
  var replacement = generator.replace(newCell);
4986
- $_f8bgbgmyjfuviyha.mutateCell(gridA[r], c, $_g02m1vkgjfuvixyt.elementnew(replacement, true));
4987
  }
4988
  }
4989
  return gridA;
4990
  };
4991
  var merge$3 = function (startAddress, gridA, gridB, generator, comparator) {
4992
- var result = $_b36tqhnbjfuviyk9.measure(startAddress, gridA, gridB);
4993
  return result.map(function (delta) {
4994
- var fittedGrid = $_b36tqhnbjfuviyk9.tailor(gridA, delta, generator);
4995
  return mergeTables(startAddress, fittedGrid, gridB, generator, comparator);
4996
  });
4997
  };
4998
  var insert = function (index, gridA, gridB, generator, comparator) {
4999
- $_aovyapndjfuviykl.splitRows(gridA, index, comparator, generator.cell);
5000
- var delta = $_b36tqhnbjfuviyk9.measureWidth(gridB, gridA);
5001
- var fittedNewGrid = $_b36tqhnbjfuviyk9.tailor(gridB, delta, generator);
5002
- var secondDelta = $_b36tqhnbjfuviyk9.measureWidth(gridA, fittedNewGrid);
5003
- var fittedOldGrid = $_b36tqhnbjfuviyk9.tailor(gridA, secondDelta, generator);
5004
  return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));
5005
  };
5006
- var $_e6g8nvnajfuviyk4 = {
5007
  merge: merge$3,
5008
  insert: insert
5009
  };
@@ -5011,51 +4687,51 @@ var table = (function () {
5011
  var insertRowAt = function (grid, index, example, comparator, substitution) {
5012
  var before = grid.slice(0, index);
5013
  var after = grid.slice(index);
5014
- var between = $_f8bgbgmyjfuviyha.mapCells(grid[example], function (ex, c) {
5015
- var withinSpan = index > 0 && index < grid.length && comparator($_f8bgbgmyjfuviyha.getCellElement(grid[index - 1], c), $_f8bgbgmyjfuviyha.getCellElement(grid[index], c));
5016
- var ret = withinSpan ? $_f8bgbgmyjfuviyha.getCell(grid[index], c) : $_g02m1vkgjfuvixyt.elementnew(substitution(ex.element(), comparator), true);
5017
  return ret;
5018
  });
5019
  return before.concat([between]).concat(after);
5020
  };
5021
  var insertColumnAt = function (grid, index, example, comparator, substitution) {
5022
- return $_4jja6kk5jfuvixx1.map(grid, function (row) {
5023
- var withinSpan = index > 0 && index < $_f8bgbgmyjfuviyha.cellLength(row) && comparator($_f8bgbgmyjfuviyha.getCellElement(row, index - 1), $_f8bgbgmyjfuviyha.getCellElement(row, index));
5024
- var sub = withinSpan ? $_f8bgbgmyjfuviyha.getCell(row, index) : $_g02m1vkgjfuvixyt.elementnew(substitution($_f8bgbgmyjfuviyha.getCellElement(row, example), comparator), true);
5025
- return $_f8bgbgmyjfuviyha.addCell(row, index, sub);
5026
  });
5027
  };
5028
  var splitCellIntoColumns = function (grid, exampleRow, exampleCol, comparator, substitution) {
5029
  var index = exampleCol + 1;
5030
- return $_4jja6kk5jfuvixx1.map(grid, function (row, i) {
5031
  var isTargetCell = i === exampleRow;
5032
- var sub = isTargetCell ? $_g02m1vkgjfuvixyt.elementnew(substitution($_f8bgbgmyjfuviyha.getCellElement(row, exampleCol), comparator), true) : $_f8bgbgmyjfuviyha.getCell(row, exampleCol);
5033
- return $_f8bgbgmyjfuviyha.addCell(row, index, sub);
5034
  });
5035
  };
5036
  var splitCellIntoRows = function (grid, exampleRow, exampleCol, comparator, substitution) {
5037
  var index = exampleRow + 1;
5038
  var before = grid.slice(0, index);
5039
  var after = grid.slice(index);
5040
- var between = $_f8bgbgmyjfuviyha.mapCells(grid[exampleRow], function (ex, i) {
5041
  var isTargetCell = i === exampleCol;
5042
- return isTargetCell ? $_g02m1vkgjfuvixyt.elementnew(substitution(ex.element(), comparator), true) : ex;
5043
  });
5044
  return before.concat([between]).concat(after);
5045
  };
5046
  var deleteColumnsAt = function (grid, start, finish) {
5047
- var rows = $_4jja6kk5jfuvixx1.map(grid, function (row) {
5048
  var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));
5049
- return $_g02m1vkgjfuvixyt.rowcells(cells, row.section());
5050
  });
5051
- return $_4jja6kk5jfuvixx1.filter(rows, function (row) {
5052
  return row.cells().length > 0;
5053
  });
5054
  };
5055
  var deleteRowsAt = function (grid, start, finish) {
5056
  return grid.slice(0, start).concat(grid.slice(finish + 1));
5057
  };
5058
- var $_3fg4ocnejfuviykt = {
5059
  insertRowAt: insertRowAt,
5060
  insertColumnAt: insertColumnAt,
5061
  splitCellIntoColumns: splitCellIntoColumns,
@@ -5066,38 +4742,38 @@ var table = (function () {
5066
 
5067
  var replaceIn = function (grid, targets, comparator, substitution) {
5068
  var isTarget = function (cell) {
5069
- return $_4jja6kk5jfuvixx1.exists(targets, function (target) {
5070
  return comparator(cell.element(), target.element());
5071
  });
5072
  };
5073
- return $_4jja6kk5jfuvixx1.map(grid, function (row) {
5074
- return $_f8bgbgmyjfuviyha.mapCells(row, function (cell) {
5075
- return isTarget(cell) ? $_g02m1vkgjfuvixyt.elementnew(substitution(cell.element(), comparator), true) : cell;
5076
  });
5077
  });
5078
  };
5079
  var notStartRow = function (grid, rowIndex, colIndex, comparator) {
5080
- return $_f8bgbgmyjfuviyha.getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator($_f8bgbgmyjfuviyha.getCellElement(grid[rowIndex - 1], colIndex), $_f8bgbgmyjfuviyha.getCellElement(grid[rowIndex], colIndex)));
5081
  };
5082
  var notStartColumn = function (row, index, comparator) {
5083
- return index > 0 && comparator($_f8bgbgmyjfuviyha.getCellElement(row, index - 1), $_f8bgbgmyjfuviyha.getCellElement(row, index));
5084
  };
5085
  var replaceColumn = function (grid, index, comparator, substitution) {
5086
- var targets = $_4jja6kk5jfuvixx1.bind(grid, function (row, i) {
5087
  var alreadyAdded = notStartRow(grid, i, index, comparator) || notStartColumn(row, index, comparator);
5088
- return alreadyAdded ? [] : [$_f8bgbgmyjfuviyha.getCell(row, index)];
5089
  });
5090
  return replaceIn(grid, targets, comparator, substitution);
5091
  };
5092
  var replaceRow = function (grid, index, comparator, substitution) {
5093
  var targetRow = grid[index];
5094
- var targets = $_4jja6kk5jfuvixx1.bind(targetRow.cells(), function (item, i) {
5095
  var alreadyAdded = notStartRow(grid, index, i, comparator) || notStartColumn(targetRow, i, comparator);
5096
  return alreadyAdded ? [] : [item];
5097
  });
5098
  return replaceIn(grid, targets, comparator, substitution);
5099
  };
5100
- var $_qcrcfnfjfuviykz = {
5101
  replaceColumn: replaceColumn,
5102
  replaceRow: replaceRow
5103
  };
@@ -5130,7 +4806,7 @@ var table = (function () {
5130
  var folder = function (fold) {
5131
  return { fold: fold };
5132
  };
5133
- var $_16dvf6nijfuviylf = {
5134
  none: none$1,
5135
  only: only,
5136
  left: left,
@@ -5140,24 +4816,24 @@ var table = (function () {
5140
 
5141
  var neighbours$1 = function (input, index) {
5142
  if (input.length === 0)
5143
- return $_16dvf6nijfuviylf.none();
5144
  if (input.length === 1)
5145
- return $_16dvf6nijfuviylf.only(0);
5146
  if (index === 0)
5147
- return $_16dvf6nijfuviylf.left(0, 1);
5148
  if (index === input.length - 1)
5149
- return $_16dvf6nijfuviylf.right(index - 1, index);
5150
  if (index > 0 && index < input.length - 1)
5151
- return $_16dvf6nijfuviylf.middle(index - 1, index, index + 1);
5152
- return $_16dvf6nijfuviylf.none();
5153
  };
5154
  var determine = function (input, column, step, tableSize) {
5155
  var result = input.slice(0);
5156
  var context = neighbours$1(input, column);
5157
  var zero = function (array) {
5158
- return $_4jja6kk5jfuvixx1.map(array, $_fdch7uk7jfuvixxb.constant(0));
5159
  };
5160
- var onNone = $_fdch7uk7jfuvixxb.constant(zero(result));
5161
  var onOnly = function (index) {
5162
  return tableSize.singleColumnWidth(result[index], step);
5163
  };
@@ -5191,10 +4867,10 @@ var table = (function () {
5191
  };
5192
  return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);
5193
  };
5194
- var $_1cyj6ynhjfuviyl9 = { determine: determine };
5195
 
5196
  var getSpan$1 = function (cell, type) {
5197
- return $_2ekobel5jfuviy2m.has(cell, type) && parseInt($_2ekobel5jfuviy2m.get(cell, type), 10) > 1;
5198
  };
5199
  var hasColspan = function (cell) {
5200
  return getSpan$1(cell, 'colspan');
@@ -5203,38 +4879,38 @@ var table = (function () {
5203
  return getSpan$1(cell, 'rowspan');
5204
  };
5205
  var getInt = function (element, property) {
5206
- return parseInt($_2lr8nrlejfuviy40.get(element, property), 10);
5207
  };
5208
- var $_edgkrmnkjfuviylu = {
5209
  hasColspan: hasColspan,
5210
  hasRowspan: hasRowspan,
5211
- minWidth: $_fdch7uk7jfuvixxb.constant(10),
5212
- minHeight: $_fdch7uk7jfuvixxb.constant(10),
5213
  getInt: getInt
5214
  };
5215
 
5216
  var getRaw$1 = function (cell, property, getter) {
5217
- return $_2lr8nrlejfuviy40.getRaw(cell, property).fold(function () {
5218
  return getter(cell) + 'px';
5219
  }, function (raw) {
5220
  return raw;
5221
  });
5222
  };
5223
  var getRawW = function (cell) {
5224
- return getRaw$1(cell, 'width', $_9h89znmajfuviybw.getPixelWidth);
5225
  };
5226
  var getRawH = function (cell) {
5227
- return getRaw$1(cell, 'height', $_9h89znmajfuviybw.getHeight);
5228
  };
5229
  var getWidthFrom = function (warehouse, direction, getWidth, fallback, tableSize) {
5230
- var columns = $_beg7ofn1jfuviyiu.columns(warehouse);
5231
- var backups = $_4jja6kk5jfuvixx1.map(columns, function (cellOption) {
5232
  return cellOption.map(direction.edge);
5233
  });
5234
- return $_4jja6kk5jfuvixx1.map(columns, function (cellOption, c) {
5235
- var columnCell = cellOption.filter($_fdch7uk7jfuvixxb.not($_edgkrmnkjfuviylu.hasColspan));
5236
  return columnCell.fold(function () {
5237
- var deduced = $_7hhay7n2jfuviyj3.deduce(backups, c);
5238
  return fallback(deduced);
5239
  }, function (cell) {
5240
  return getWidth(cell, tableSize);
@@ -5250,7 +4926,7 @@ var table = (function () {
5250
  return getWidthFrom(warehouse, direction, getRawW, getDeduced);
5251
  };
5252
  var getPercentageWidths = function (warehouse, direction, tableSize) {
5253
- return getWidthFrom(warehouse, direction, $_9h89znmajfuviybw.getPercentageWidth, function (deduced) {
5254
  return deduced.fold(function () {
5255
  return tableSize.minCellWidth();
5256
  }, function (cellWidth) {
@@ -5259,19 +4935,19 @@ var table = (function () {
5259
  }, tableSize);
5260
  };
5261
  var getPixelWidths = function (warehouse, direction, tableSize) {
5262
- return getWidthFrom(warehouse, direction, $_9h89znmajfuviybw.getPixelWidth, function (deduced) {
5263
  return deduced.getOrThunk(tableSize.minCellWidth);
5264
  }, tableSize);
5265
  };
5266
  var getHeightFrom = function (warehouse, direction, getHeight, fallback) {
5267
- var rows = $_beg7ofn1jfuviyiu.rows(warehouse);
5268
- var backups = $_4jja6kk5jfuvixx1.map(rows, function (cellOption) {
5269
  return cellOption.map(direction.edge);
5270
  });
5271
- return $_4jja6kk5jfuvixx1.map(rows, function (cellOption, c) {
5272
- var rowCell = cellOption.filter($_fdch7uk7jfuvixxb.not($_edgkrmnkjfuviylu.hasRowspan));
5273
  return rowCell.fold(function () {
5274
- var deduced = $_7hhay7n2jfuviyj3.deduce(backups, c);
5275
  return fallback(deduced);
5276
  }, function (cell) {
5277
  return getHeight(cell);
@@ -5279,14 +4955,14 @@ var table = (function () {
5279
  });
5280
  };
5281
  var getPixelHeights = function (warehouse, direction) {
5282
- return getHeightFrom(warehouse, direction, $_9h89znmajfuviybw.getHeight, function (deduced) {
5283
- return deduced.getOrThunk($_edgkrmnkjfuviylu.minHeight);
5284
  });
5285
  };
5286
  var getRawHeights = function (warehouse, direction) {
5287
  return getHeightFrom(warehouse, direction, getRawH, getDeduced);
5288
  };
5289
- var $_4g5tkonjjfuviylh = {
5290
  getRawWidths: getRawWidths,
5291
  getPixelWidths: getPixelWidths,
5292
  getPercentageWidths: getPercentageWidths,
@@ -5302,36 +4978,36 @@ var table = (function () {
5302
  return r;
5303
  };
5304
  var recalculateWidth = function (warehouse, widths) {
5305
- var all = $_bwrthsldjfuviy3q.justCells(warehouse);
5306
- return $_4jja6kk5jfuvixx1.map(all, function (cell) {
5307
  var width = total(cell.column(), cell.column() + cell.colspan(), widths);
5308
  return {
5309
  element: cell.element,
5310
- width: $_fdch7uk7jfuvixxb.constant(width),
5311
  colspan: cell.colspan
5312
  };
5313
  });
5314
  };
5315
  var recalculateHeight = function (warehouse, heights) {
5316
- var all = $_bwrthsldjfuviy3q.justCells(warehouse);
5317
- return $_4jja6kk5jfuvixx1.map(all, function (cell) {
5318
  var height = total(cell.row(), cell.row() + cell.rowspan(), heights);
5319
  return {
5320
  element: cell.element,
5321
- height: $_fdch7uk7jfuvixxb.constant(height),
5322
  rowspan: cell.rowspan
5323
  };
5324
  });
5325
  };
5326
  var matchRowHeight = function (warehouse, heights) {
5327
- return $_4jja6kk5jfuvixx1.map(warehouse.all(), function (row, i) {
5328
  return {
5329
  element: row.element,
5330
- height: $_fdch7uk7jfuvixxb.constant(heights[i])
5331
  };
5332
  });
5333
  };
5334
- var $_chwc6znljfuviym2 = {
5335
  recalculateWidth: recalculateWidth,
5336
  recalculateHeight: recalculateHeight,
5337
  matchRowHeight: matchRowHeight
@@ -5339,7 +5015,7 @@ var table = (function () {
5339
 
5340
  var percentageSize = function (width, element) {
5341
  var floatWidth = parseFloat(width);
5342
- var pixelWidth = $_4u9lbfmejfuviyd2.get(element);
5343
  var getCellDelta = function (delta) {
5344
  return delta / pixelWidth * 100;
5345
  };
@@ -5347,93 +5023,93 @@ var table = (function () {
5347
  return [100 - width];
5348
  };
5349
  var minCellWidth = function () {
5350
- return $_edgkrmnkjfuviylu.minWidth() / pixelWidth * 100;
5351
  };
5352
  var setTableWidth = function (table, _newWidths, delta) {
5353
  var total = floatWidth + delta;
5354
- $_9h89znmajfuviybw.setPercentageWidth(table, total);
5355
  };
5356
  return {
5357
- width: $_fdch7uk7jfuvixxb.constant(floatWidth),
5358
- pixelWidth: $_fdch7uk7jfuvixxb.constant(pixelWidth),
5359
- getWidths: $_4g5tkonjjfuviylh.getPercentageWidths,
5360
  getCellDelta: getCellDelta,
5361
  singleColumnWidth: singleColumnWidth,
5362
  minCellWidth: minCellWidth,
5363
- setElementWidth: $_9h89znmajfuviybw.setPercentageWidth,
5364
  setTableWidth: setTableWidth
5365
  };
5366
  };
5367
  var pixelSize = function (width) {
5368
  var intWidth = parseInt(width, 10);
5369
- var getCellDelta = $_fdch7uk7jfuvixxb.identity;
5370
  var singleColumnWidth = function (width, delta) {
5371
- var newNext = Math.max($_edgkrmnkjfuviylu.minWidth(), width + delta);
5372
  return [newNext - width];
5373
  };
5374
  var setTableWidth = function (table, newWidths, _delta) {
5375
- var total = $_4jja6kk5jfuvixx1.foldr(newWidths, function (b, a) {
5376
  return b + a;
5377
  }, 0);
5378
- $_9h89znmajfuviybw.setPixelWidth(table, total);
5379
  };
5380
  return {
5381
- width: $_fdch7uk7jfuvixxb.constant(intWidth),
5382
- pixelWidth: $_fdch7uk7jfuvixxb.constant(intWidth),
5383
- getWidths: $_4g5tkonjjfuviylh.getPixelWidths,
5384
  getCellDelta: getCellDelta,
5385
  singleColumnWidth: singleColumnWidth,
5386
- minCellWidth: $_edgkrmnkjfuviylu.minWidth,
5387
- setElementWidth: $_9h89znmajfuviybw.setPixelWidth,
5388
  setTableWidth: setTableWidth
5389
  };
5390
  };
5391
  var chooseSize = function (element, width) {
5392
- if ($_9h89znmajfuviybw.percentageBasedSizeRegex().test(width)) {
5393
- var percentMatch = $_9h89znmajfuviybw.percentageBasedSizeRegex().exec(width);
5394
  return percentageSize(percentMatch[1], element);
5395
- } else if ($_9h89znmajfuviybw.pixelBasedSizeRegex().test(width)) {
5396
- var pixelMatch = $_9h89znmajfuviybw.pixelBasedSizeRegex().exec(width);
5397
  return pixelSize(pixelMatch[1]);
5398
  } else {
5399
- var fallbackWidth = $_4u9lbfmejfuviyd2.get(element);
5400
  return pixelSize(fallbackWidth);
5401
  }
5402
  };
5403
  var getTableSize = function (element) {
5404
- var width = $_9h89znmajfuviybw.getRawWidth(element);
5405
  return width.fold(function () {
5406
- var fallbackWidth = $_4u9lbfmejfuviyd2.get(element);
5407
  return pixelSize(fallbackWidth);
5408
  }, function (width) {
5409
  return chooseSize(element, width);
5410
  });
5411
  };
5412
- var $_707ctxnmjfuviym9 = { getTableSize: getTableSize };
5413
 
5414
  var getWarehouse$1 = function (list) {
5415
- return $_bwrthsldjfuviy3q.generate(list);
5416
  };
5417
  var sumUp = function (newSize) {
5418
- return $_4jja6kk5jfuvixx1.foldr(newSize, function (b, a) {
5419
  return b + a;
5420
  }, 0);
5421
  };
5422
  var getTableWarehouse = function (table) {
5423
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
5424
  return getWarehouse$1(list);
5425
  };
5426
  var adjustWidth = function (table, delta, index, direction) {
5427
- var tableSize = $_707ctxnmjfuviym9.getTableSize(table);
5428
  var step = tableSize.getCellDelta(delta);
5429
  var warehouse = getTableWarehouse(table);
5430
  var widths = tableSize.getWidths(warehouse, direction, tableSize);
5431
- var deltas = $_1cyj6ynhjfuviyl9.determine(widths, index, step, tableSize);
5432
- var newWidths = $_4jja6kk5jfuvixx1.map(deltas, function (dx, i) {
5433
  return dx + widths[i];
5434
  });
5435
- var newSizes = $_chwc6znljfuviym2.recalculateWidth(warehouse, newWidths);
5436
- $_4jja6kk5jfuvixx1.each(newSizes, function (cell) {
5437
  tableSize.setElementWidth(cell.element(), cell.width());
5438
  });
5439
  if (index === warehouse.grid().columns() - 1) {
@@ -5442,48 +5118,48 @@ var table = (function () {
5442
  };
5443
  var adjustHeight = function (table, delta, index, direction) {
5444
  var warehouse = getTableWarehouse(table);
5445
- var heights = $_4g5tkonjjfuviylh.getPixelHeights(warehouse, direction);
5446
- var newHeights = $_4jja6kk5jfuvixx1.map(heights, function (dy, i) {
5447
- return index === i ? Math.max(delta + dy, $_edgkrmnkjfuviylu.minHeight()) : dy;
5448
  });
5449
- var newCellSizes = $_chwc6znljfuviym2.recalculateHeight(warehouse, newHeights);
5450
- var newRowSizes = $_chwc6znljfuviym2.matchRowHeight(warehouse, newHeights);
5451
- $_4jja6kk5jfuvixx1.each(newRowSizes, function (row) {
5452
- $_9h89znmajfuviybw.setHeight(row.element(), row.height());
5453
  });
5454
- $_4jja6kk5jfuvixx1.each(newCellSizes, function (cell) {
5455
- $_9h89znmajfuviybw.setHeight(cell.element(), cell.height());
5456
  });
5457
  var total = sumUp(newHeights);
5458
- $_9h89znmajfuviybw.setHeight(table, total);
5459
  };
5460
  var adjustWidthTo = function (table, list, direction) {
5461
- var tableSize = $_707ctxnmjfuviym9.getTableSize(table);
5462
  var warehouse = getWarehouse$1(list);
5463
  var widths = tableSize.getWidths(warehouse, direction, tableSize);
5464
- var newSizes = $_chwc6znljfuviym2.recalculateWidth(warehouse, widths);
5465
- $_4jja6kk5jfuvixx1.each(newSizes, function (cell) {
5466
  tableSize.setElementWidth(cell.element(), cell.width());
5467
  });
5468
- var total = $_4jja6kk5jfuvixx1.foldr(widths, function (b, a) {
5469
  return a + b;
5470
  }, 0);
5471
  if (newSizes.length > 0) {
5472
  tableSize.setElementWidth(table, total);
5473
  }
5474
  };
5475
- var $_f6vpt3ngjfuviyl3 = {
5476
  adjustWidth: adjustWidth,
5477
  adjustHeight: adjustHeight,
5478
  adjustWidthTo: adjustWidthTo
5479
  };
5480
 
5481
  var prune = function (table) {
5482
- var cells = $_dmqxswkhjfuvixyz.cells(table);
5483
  if (cells.length === 0)
5484
- $_5ud3colhjfuviy4l.remove(table);
5485
  };
5486
- var outcome = $_96oqrskbjfuvixya.immutable('grid', 'cursor');
5487
  var elementFromGrid = function (grid, row, column) {
5488
  return findIn(grid, row, column).orThunk(function () {
5489
  return findIn(grid, 0, 0);
@@ -5500,8 +5176,8 @@ var table = (function () {
5500
  return outcome(grid, findIn(grid, row, column));
5501
  };
5502
  var uniqueRows = function (details) {
5503
- return $_4jja6kk5jfuvixx1.foldl(details, function (rest, detail) {
5504
- return $_4jja6kk5jfuvixx1.exists(rest, function (currentDetail) {
5505
  return currentDetail.row() === detail.row();
5506
  }) ? rest : rest.concat([detail]);
5507
  }, []).sort(function (detailA, detailB) {
@@ -5509,8 +5185,8 @@ var table = (function () {
5509
  });
5510
  };
5511
  var uniqueColumns = function (details) {
5512
- return $_4jja6kk5jfuvixx1.foldl(details, function (rest, detail) {
5513
- return $_4jja6kk5jfuvixx1.exists(rest, function (currentDetail) {
5514
  return currentDetail.column() === detail.column();
5515
  }) ? rest : rest.concat([detail]);
5516
  }, []).sort(function (detailA, detailB) {
@@ -5520,120 +5196,120 @@ var table = (function () {
5520
  var insertRowBefore = function (grid, detail, comparator, genWrappers) {
5521
  var example = detail.row();
5522
  var targetIndex = detail.row();
5523
- var newGrid = $_3fg4ocnejfuviykt.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5524
  return bundle(newGrid, targetIndex, detail.column());
5525
  };
5526
  var insertRowsBefore = function (grid, details, comparator, genWrappers) {
5527
  var example = details[0].row();
5528
  var targetIndex = details[0].row();
5529
  var rows = uniqueRows(details);
5530
- var newGrid = $_4jja6kk5jfuvixx1.foldl(rows, function (newGrid, _row) {
5531
- return $_3fg4ocnejfuviykt.insertRowAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5532
  }, grid);
5533
  return bundle(newGrid, targetIndex, details[0].column());
5534
  };
5535
  var insertRowAfter = function (grid, detail, comparator, genWrappers) {
5536
  var example = detail.row();
5537
  var targetIndex = detail.row() + detail.rowspan();
5538
- var newGrid = $_3fg4ocnejfuviykt.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5539
  return bundle(newGrid, targetIndex, detail.column());
5540
  };
5541
  var insertRowsAfter = function (grid, details, comparator, genWrappers) {
5542
  var rows = uniqueRows(details);
5543
  var example = rows[rows.length - 1].row();
5544
  var targetIndex = rows[rows.length - 1].row() + rows[rows.length - 1].rowspan();
5545
- var newGrid = $_4jja6kk5jfuvixx1.foldl(rows, function (newGrid, _row) {
5546
- return $_3fg4ocnejfuviykt.insertRowAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5547
  }, grid);
5548
  return bundle(newGrid, targetIndex, details[0].column());
5549
  };
5550
  var insertColumnBefore = function (grid, detail, comparator, genWrappers) {
5551
  var example = detail.column();
5552
  var targetIndex = detail.column();
5553
- var newGrid = $_3fg4ocnejfuviykt.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5554
  return bundle(newGrid, detail.row(), targetIndex);
5555
  };
5556
  var insertColumnsBefore = function (grid, details, comparator, genWrappers) {
5557
  var columns = uniqueColumns(details);
5558
  var example = columns[0].column();
5559
  var targetIndex = columns[0].column();
5560
- var newGrid = $_4jja6kk5jfuvixx1.foldl(columns, function (newGrid, _row) {
5561
- return $_3fg4ocnejfuviykt.insertColumnAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5562
  }, grid);
5563
  return bundle(newGrid, details[0].row(), targetIndex);
5564
  };
5565
  var insertColumnAfter = function (grid, detail, comparator, genWrappers) {
5566
  var example = detail.column();
5567
  var targetIndex = detail.column() + detail.colspan();
5568
- var newGrid = $_3fg4ocnejfuviykt.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5569
  return bundle(newGrid, detail.row(), targetIndex);
5570
  };
5571
  var insertColumnsAfter = function (grid, details, comparator, genWrappers) {
5572
  var example = details[details.length - 1].column();
5573
  var targetIndex = details[details.length - 1].column() + details[details.length - 1].colspan();
5574
  var columns = uniqueColumns(details);
5575
- var newGrid = $_4jja6kk5jfuvixx1.foldl(columns, function (newGrid, _row) {
5576
- return $_3fg4ocnejfuviykt.insertColumnAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5577
  }, grid);
5578
  return bundle(newGrid, details[0].row(), targetIndex);
5579
  };
5580
  var makeRowHeader = function (grid, detail, comparator, genWrappers) {
5581
- var newGrid = $_qcrcfnfjfuviykz.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);
5582
  return bundle(newGrid, detail.row(), detail.column());
5583
  };
5584
  var makeColumnHeader = function (grid, detail, comparator, genWrappers) {
5585
- var newGrid = $_qcrcfnfjfuviykz.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);
5586
  return bundle(newGrid, detail.row(), detail.column());
5587
  };
5588
  var unmakeRowHeader = function (grid, detail, comparator, genWrappers) {
5589
- var newGrid = $_qcrcfnfjfuviykz.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);
5590
  return bundle(newGrid, detail.row(), detail.column());
5591
  };
5592
  var unmakeColumnHeader = function (grid, detail, comparator, genWrappers) {
5593
- var newGrid = $_qcrcfnfjfuviykz.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);
5594
  return bundle(newGrid, detail.row(), detail.column());
5595
  };
5596
  var splitCellIntoColumns$1 = function (grid, detail, comparator, genWrappers) {
5597
- var newGrid = $_3fg4ocnejfuviykt.splitCellIntoColumns(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
5598
  return bundle(newGrid, detail.row(), detail.column());
5599
  };
5600
  var splitCellIntoRows$1 = function (grid, detail, comparator, genWrappers) {
5601
- var newGrid = $_3fg4ocnejfuviykt.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
5602
  return bundle(newGrid, detail.row(), detail.column());
5603
  };
5604
  var eraseColumns = function (grid, details, comparator, _genWrappers) {
5605
  var columns = uniqueColumns(details);
5606
- var newGrid = $_3fg4ocnejfuviykt.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());
5607
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
5608
  return outcome(newGrid, cursor);
5609
  };
5610
  var eraseRows = function (grid, details, comparator, _genWrappers) {
5611
  var rows = uniqueRows(details);
5612
- var newGrid = $_3fg4ocnejfuviykt.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());
5613
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
5614
  return outcome(newGrid, cursor);
5615
  };
5616
  var mergeCells = function (grid, mergable, comparator, _genWrappers) {
5617
  var cells = mergable.cells();
5618
- $_af8qgymqjfuviyf9.merge(cells);
5619
- var newGrid = $_aovyapndjfuviykl.merge(grid, mergable.bounds(), comparator, $_fdch7uk7jfuvixxb.constant(cells[0]));
5620
  return outcome(newGrid, Option.from(cells[0]));
5621
  };
5622
  var unmergeCells = function (grid, unmergable, comparator, genWrappers) {
5623
- var newGrid = $_4jja6kk5jfuvixx1.foldr(unmergable, function (b, cell) {
5624
- return $_aovyapndjfuviykl.unmerge(b, cell, comparator, genWrappers.combine(cell));
5625
  }, grid);
5626
  return outcome(newGrid, Option.from(unmergable[0]));
5627
  };
5628
  var pasteCells = function (grid, pasteDetails, comparator, genWrappers) {
5629
  var gridify = function (table, generators) {
5630
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
5631
- var wh = $_bwrthsldjfuviy3q.generate(list);
5632
- return $_b883t1mwjfuviygz.toGrid(wh, generators, true);
5633
  };
5634
  var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());
5635
- var startAddress = $_g02m1vkgjfuvixyt.address(pasteDetails.row(), pasteDetails.column());
5636
- var mergedGrid = $_e6g8nvnajfuviyk4.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);
5637
  return mergedGrid.fold(function () {
5638
  return outcome(grid, Option.some(pasteDetails.element()));
5639
  }, function (nuGrid) {
@@ -5642,15 +5318,15 @@ var table = (function () {
5642
  });
5643
  };
5644
  var gridifyRows = function (rows, generators, example) {
5645
- var pasteDetails = $_2vc4gykfjfuvixyi.fromPastedRows(rows, example);
5646
- var wh = $_bwrthsldjfuviy3q.generate(pasteDetails);
5647
- return $_b883t1mwjfuviygz.toGrid(wh, generators, true);
5648
  };
5649
  var pasteRowsBefore = function (grid, pasteDetails, comparator, genWrappers) {
5650
  var example = grid[pasteDetails.cells[0].row()];
5651
  var index = pasteDetails.cells[0].row();
5652
  var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);
5653
- var mergedGrid = $_e6g8nvnajfuviyk4.insert(index, grid, gridB, pasteDetails.generators(), comparator);
5654
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
5655
  return outcome(mergedGrid, cursor);
5656
  };
@@ -5658,41 +5334,47 @@ var table = (function () {
5658
  var example = grid[pasteDetails.cells[0].row()];
5659
  var index = pasteDetails.cells[pasteDetails.cells.length - 1].row() + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan();
5660
  var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);
5661
- var mergedGrid = $_e6g8nvnajfuviyk4.insert(index, grid, gridB, pasteDetails.generators(), comparator);
5662
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
5663
  return outcome(mergedGrid, cursor);
5664
  };
5665
- var resize = $_f6vpt3ngjfuviyl3.adjustWidthTo;
5666
- var $_gdqcovmmjfuviye2 = {
5667
- insertRowBefore: $_b9rtfhmtjfuviygc.run(insertRowBefore, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5668
- insertRowsBefore: $_b9rtfhmtjfuviygc.run(insertRowsBefore, $_b9rtfhmtjfuviygc.onCells, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5669
- insertRowAfter: $_b9rtfhmtjfuviygc.run(insertRowAfter, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5670
- insertRowsAfter: $_b9rtfhmtjfuviygc.run(insertRowsAfter, $_b9rtfhmtjfuviygc.onCells, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5671
- insertColumnBefore: $_b9rtfhmtjfuviygc.run(insertColumnBefore, $_b9rtfhmtjfuviygc.onCell, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5672
- insertColumnsBefore: $_b9rtfhmtjfuviygc.run(insertColumnsBefore, $_b9rtfhmtjfuviygc.onCells, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5673
- insertColumnAfter: $_b9rtfhmtjfuviygc.run(insertColumnAfter, $_b9rtfhmtjfuviygc.onCell, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5674
- insertColumnsAfter: $_b9rtfhmtjfuviygc.run(insertColumnsAfter, $_b9rtfhmtjfuviygc.onCells, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5675
- splitCellIntoColumns: $_b9rtfhmtjfuviygc.run(splitCellIntoColumns$1, $_b9rtfhmtjfuviygc.onCell, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5676
- splitCellIntoRows: $_b9rtfhmtjfuviygc.run(splitCellIntoRows$1, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5677
- eraseColumns: $_b9rtfhmtjfuviygc.run(eraseColumns, $_b9rtfhmtjfuviygc.onCells, resize, prune, $_blm67mmnjfuviyel.modification),
5678
- eraseRows: $_b9rtfhmtjfuviygc.run(eraseRows, $_b9rtfhmtjfuviygc.onCells, $_fdch7uk7jfuvixxb.noop, prune, $_blm67mmnjfuviyel.modification),
5679
- makeColumnHeader: $_b9rtfhmtjfuviygc.run(makeColumnHeader, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.transform('row', 'th')),
5680
- unmakeColumnHeader: $_b9rtfhmtjfuviygc.run(unmakeColumnHeader, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.transform(null, 'td')),
5681
- makeRowHeader: $_b9rtfhmtjfuviygc.run(makeRowHeader, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.transform('col', 'th')),
5682
- unmakeRowHeader: $_b9rtfhmtjfuviygc.run(unmakeRowHeader, $_b9rtfhmtjfuviygc.onCell, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.transform(null, 'td')),
5683
- mergeCells: $_b9rtfhmtjfuviygc.run(mergeCells, $_b9rtfhmtjfuviygc.onMergable, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.merging),
5684
- unmergeCells: $_b9rtfhmtjfuviygc.run(unmergeCells, $_b9rtfhmtjfuviygc.onUnmergable, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.merging),
5685
- pasteCells: $_b9rtfhmtjfuviygc.run(pasteCells, $_b9rtfhmtjfuviygc.onPaste, resize, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5686
- pasteRowsBefore: $_b9rtfhmtjfuviygc.run(pasteRowsBefore, $_b9rtfhmtjfuviygc.onPasteRows, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification),
5687
- pasteRowsAfter: $_b9rtfhmtjfuviygc.run(pasteRowsAfter, $_b9rtfhmtjfuviygc.onPasteRows, $_fdch7uk7jfuvixxb.noop, $_fdch7uk7jfuvixxb.noop, $_blm67mmnjfuviyel.modification)
5688
  };
5689
 
5690
  var getBody$1 = function (editor) {
5691
- return $_4sdhm4kkjfuviy0e.fromDom(editor.getBody());
 
 
 
 
 
 
5692
  };
5693
  var getIsRoot = function (editor) {
5694
  return function (element) {
5695
- return $_g6ztqikojfuviy13.eq(element, getBody$1(editor));
5696
  };
5697
  };
5698
  var removePxSuffix = function (size) {
@@ -5704,11 +5386,12 @@ var table = (function () {
5704
  }
5705
  return size;
5706
  };
5707
- var $_aheu0fnnjfuviymj = {
5708
- getBody: getBody$1,
5709
- getIsRoot: getIsRoot,
5710
- addSizeSuffix: addSizeSuffix,
5711
- removePxSuffix: removePxSuffix
 
5712
  };
5713
 
5714
  var onDirection = function (isLtr, isRtl) {
@@ -5717,20 +5400,20 @@ var table = (function () {
5717
  };
5718
  };
5719
  var getDirection = function (element) {
5720
- return $_2lr8nrlejfuviy40.get(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';
5721
  };
5722
- var $_8szyc1npjfuviyms = {
5723
  onDirection: onDirection,
5724
  getDirection: getDirection
5725
  };
5726
 
5727
- var ltr$1 = { isRtl: $_fdch7uk7jfuvixxb.constant(false) };
5728
- var rtl$1 = { isRtl: $_fdch7uk7jfuvixxb.constant(true) };
5729
  var directionAt = function (element) {
5730
- var dir = $_8szyc1npjfuviyms.getDirection(element);
5731
  return dir === 'rtl' ? rtl$1 : ltr$1;
5732
  };
5733
- var $_1g25rnojfuviymn = { directionAt: directionAt };
5734
 
5735
  var defaultTableToolbar = [
5736
  'tableprops',
@@ -5796,7 +5479,7 @@ var table = (function () {
5796
  };
5797
  var getCloneElements = function (editor) {
5798
  var cloneElements = editor.getParam('table_clone_elements');
5799
- if ($_13kw1fk8jfuvixxd.isString(cloneElements)) {
5800
  return Option.some(cloneElements.split(/[ ,]/));
5801
  } else if (Array.isArray(cloneElements)) {
5802
  return Option.some(cloneElements);
@@ -5812,9 +5495,9 @@ var table = (function () {
5812
  var toolbar = editor.getParam('table_toolbar', defaultTableToolbar);
5813
  if (toolbar === '' || toolbar === false) {
5814
  return [];
5815
- } else if ($_13kw1fk8jfuvixxd.isString(toolbar)) {
5816
  return toolbar.split(/[ ,]/);
5817
- } else if ($_13kw1fk8jfuvixxd.isArray(toolbar)) {
5818
  return toolbar;
5819
  } else {
5820
  return [];
@@ -5827,35 +5510,46 @@ var table = (function () {
5827
  var fireNewCell = function (editor, cell) {
5828
  return editor.fire('newcell', { node: cell });
5829
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5830
 
5831
  var TableActions = function (editor, lazyWire) {
5832
  var isTableBody = function (editor) {
5833
- return $_6mcqmml6jfuviy2u.name($_aheu0fnnjfuviymj.getBody(editor)) === 'table';
5834
  };
5835
  var lastRowGuard = function (table) {
5836
- var size = $_23hnlomljfuviydz.getGridSize(table);
5837
  return isTableBody(editor) === false || size.rows() > 1;
5838
  };
5839
  var lastColumnGuard = function (table) {
5840
- var size = $_23hnlomljfuviydz.getGridSize(table);
5841
  return isTableBody(editor) === false || size.columns() > 1;
5842
  };
5843
  var cloneFormats = getCloneElements(editor);
5844
  var execute = function (operation, guard, mutate, lazyWire) {
5845
  return function (table, target) {
5846
- var dataStyleCells = $_a3hs1bl7jfuviy2w.descendants(table, 'td[data-mce-style],th[data-mce-style]');
5847
- $_4jja6kk5jfuvixx1.each(dataStyleCells, function (cell) {
5848
- $_2ekobel5jfuviy2m.remove(cell, 'data-mce-style');
5849
- });
5850
  var wire = lazyWire();
5851
- var doc = $_4sdhm4kkjfuviy0e.fromDom(editor.getDoc());
5852
- var direction = TableDirection($_1g25rnojfuviymn.directionAt);
5853
- var generators = $_clky4ljjfuviy4t.cellOperations(mutate, doc, cloneFormats);
5854
  return guard(table) ? operation(wire, table, target, generators, direction).bind(function (result) {
5855
- $_4jja6kk5jfuvixx1.each(result.newRows(), function (row) {
5856
  fireNewRow(editor, row.dom());
5857
  });
5858
- $_4jja6kk5jfuvixx1.each(result.newCells(), function (cell) {
5859
  fireNewCell(editor, cell.dom());
5860
  });
5861
  return result.cursor().map(function (cell) {
@@ -5867,17 +5561,17 @@ var table = (function () {
5867
  }) : Option.none();
5868
  };
5869
  };
5870
- var deleteRow = execute($_gdqcovmmjfuviye2.eraseRows, lastRowGuard, $_fdch7uk7jfuvixxb.noop, lazyWire);
5871
- var deleteColumn = execute($_gdqcovmmjfuviye2.eraseColumns, lastColumnGuard, $_fdch7uk7jfuvixxb.noop, lazyWire);
5872
- var insertRowsBefore = execute($_gdqcovmmjfuviye2.insertRowsBefore, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5873
- var insertRowsAfter = execute($_gdqcovmmjfuviye2.insertRowsAfter, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5874
- var insertColumnsBefore = execute($_gdqcovmmjfuviye2.insertColumnsBefore, $_fdch7uk7jfuvixxb.always, $_7fw3p6m9jfuviybu.halve, lazyWire);
5875
- var insertColumnsAfter = execute($_gdqcovmmjfuviye2.insertColumnsAfter, $_fdch7uk7jfuvixxb.always, $_7fw3p6m9jfuviybu.halve, lazyWire);
5876
- var mergeCells = execute($_gdqcovmmjfuviye2.mergeCells, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5877
- var unmergeCells = execute($_gdqcovmmjfuviye2.unmergeCells, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5878
- var pasteRowsBefore = execute($_gdqcovmmjfuviye2.pasteRowsBefore, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5879
- var pasteRowsAfter = execute($_gdqcovmmjfuviye2.pasteRowsAfter, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5880
- var pasteCells = execute($_gdqcovmmjfuviye2.pasteCells, $_fdch7uk7jfuvixxb.always, $_fdch7uk7jfuvixxb.noop, lazyWire);
5881
  return {
5882
  deleteRow: deleteRow,
5883
  deleteColumn: deleteColumn,
@@ -5894,19 +5588,19 @@ var table = (function () {
5894
  };
5895
 
5896
  var copyRows = function (table, target, generators) {
5897
- var list = $_2vc4gykfjfuvixyi.fromTable(table);
5898
- var house = $_bwrthsldjfuviy3q.generate(list);
5899
- var details = $_b9rtfhmtjfuviygc.onCells(house, target);
5900
  return details.map(function (selectedCells) {
5901
- var grid = $_b883t1mwjfuviygz.toGrid(house, generators, false);
5902
  var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());
5903
- var slicedDetails = $_b9rtfhmtjfuviygc.toDetailList(slicedGrid, generators);
5904
- return $_clwdhumzjfuviyhf.copy(slicedDetails);
5905
  });
5906
  };
5907
- var $_bjdegsntjfuviynl = { copyRows: copyRows };
5908
 
5909
- var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
5910
 
5911
  var getTDTHOverallStyle = function (dom, elm, name) {
5912
  var cells = dom.select('td,th', elm);
@@ -5937,16 +5631,16 @@ var table = (function () {
5937
  }
5938
  };
5939
  var unApplyAlign = function (editor, elm) {
5940
- global$2.each('left center right'.split(' '), function (name) {
5941
  editor.formatter.remove('align' + name, {}, elm);
5942
  });
5943
  };
5944
  var unApplyVAlign = function (editor, elm) {
5945
- global$2.each('top middle bottom'.split(' '), function (name) {
5946
  editor.formatter.remove('valign' + name, {}, elm);
5947
  });
5948
  };
5949
- var $_35zgp3nwjfuviynz = {
5950
  applyAlign: applyAlign,
5951
  applyVAlign: applyVAlign,
5952
  unApplyAlign: unApplyAlign,
@@ -5957,7 +5651,7 @@ var table = (function () {
5957
  var buildListItems = function (inputList, itemCallback, startItems) {
5958
  var appendItems = function (values, output) {
5959
  output = output || [];
5960
- global$2.each(values, function (item) {
5961
  var menuItem = { text: item.text || item.title };
5962
  if (item.menu) {
5963
  menuItem.menu = appendItems(item.menu);
@@ -5973,26 +5667,39 @@ var table = (function () {
5973
  };
5974
  return appendItems(inputList, startItems || []);
5975
  };
 
 
 
 
 
 
 
 
 
 
5976
  var updateStyleField = function (editor, evt) {
5977
  var dom = editor.dom;
5978
  var rootControl = evt.control.rootControl;
5979
  var data = rootControl.toJSON();
5980
  var css = dom.parseStyle(data.style);
5981
- if (evt.control.name() === 'style') {
5982
- rootControl.find('#borderStyle').value(css['border-style'] || '')[0].fire('select');
5983
- rootControl.find('#borderColor').value(css['border-color'] || '')[0].fire('change');
5984
- rootControl.find('#backgroundColor').value(css['background-color'] || '')[0].fire('change');
5985
- rootControl.find('#width').value(css.width || '').fire('change');
5986
- rootControl.find('#height').value(css.height || '').fire('change');
5987
- } else {
5988
- css['border-style'] = data.borderStyle;
5989
- css['border-color'] = data.borderColor;
5990
- css['background-color'] = data.backgroundColor;
5991
- css.width = data.width ? $_aheu0fnnjfuviymj.addSizeSuffix(data.width) : '';
5992
- css.height = data.height ? $_aheu0fnnjfuviymj.addSizeSuffix(data.height) : '';
5993
- }
5994
  rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));
5995
  };
 
 
 
 
 
 
 
 
 
 
 
5996
  var extractAdvancedStyles = function (dom, elm) {
5997
  var css = dom.parseStyle(dom.getAttrib(elm, 'style'));
5998
  var data = {};
@@ -6022,12 +5729,13 @@ var table = (function () {
6022
  return {
6023
  title: 'Advanced',
6024
  type: 'form',
6025
- defaults: { onchange: $_fdch7uk7jfuvixxb.curry(updateStyleField, editor) },
6026
  items: [
6027
  {
6028
  label: 'Style',
6029
  name: 'style',
6030
- type: 'textbox'
 
6031
  },
6032
  {
6033
  type: 'form',
@@ -6046,7 +5754,7 @@ var table = (function () {
6046
  type: 'listbox',
6047
  name: 'borderStyle',
6048
  width: 90,
6049
- onselect: $_fdch7uk7jfuvixxb.curry(updateStyleField, editor),
6050
  values: [
6051
  {
6052
  text: 'Select...',
@@ -6111,11 +5819,13 @@ var table = (function () {
6111
  ]
6112
  };
6113
  };
6114
- var $_etnm2gnxjfuviyo0 = {
6115
  createStyleForm: createStyleForm,
6116
  buildListItems: buildListItems,
6117
  updateStyleField: updateStyleField,
6118
- extractAdvancedStyles: extractAdvancedStyles
 
 
6119
  };
6120
 
6121
  var updateStyles = function (elm, cssText) {
@@ -6134,18 +5844,18 @@ var table = (function () {
6134
  align: '',
6135
  valign: ''
6136
  };
6137
- global$2.each('left center right'.split(' '), function (name) {
6138
  if (editor.formatter.matchNode(elm, 'align' + name)) {
6139
  data.align = name;
6140
  }
6141
  });
6142
- global$2.each('top middle bottom'.split(' '), function (name) {
6143
  if (editor.formatter.matchNode(elm, 'valign' + name)) {
6144
  data.valign = name;
6145
  }
6146
  });
6147
  if (hasAdvancedCellTab(editor)) {
6148
- global$2.extend(data, $_etnm2gnxjfuviyo0.extractAdvancedStyles(dom, elm));
6149
  }
6150
  return data;
6151
  };
@@ -6153,19 +5863,21 @@ var table = (function () {
6153
  var dom = editor.dom;
6154
  var data;
6155
  function setAttrib(elm, name, value) {
6156
- if (value) {
6157
  dom.setAttrib(elm, name, value);
6158
  }
6159
  }
6160
  function setStyle(elm, name, value) {
6161
- if (value) {
6162
  dom.setStyle(elm, name, value);
6163
  }
6164
  }
6165
- $_etnm2gnxjfuviyo0.updateStyleField(editor, evt);
 
 
6166
  data = evt.control.rootControl.toJSON();
6167
  editor.undoManager.transact(function () {
6168
- global$2.each(cells, function (cellElm) {
6169
  setAttrib(cellElm, 'scope', data.scope);
6170
  if (cells.length === 1) {
6171
  setAttrib(cellElm, 'style', data.style);
@@ -6173,20 +5885,20 @@ var table = (function () {
6173
  updateStyles(cellElm, data.style);
6174
  }
6175
  setAttrib(cellElm, 'class', data.class);
6176
- setStyle(cellElm, 'width', $_aheu0fnnjfuviymj.addSizeSuffix(data.width));
6177
- setStyle(cellElm, 'height', $_aheu0fnnjfuviymj.addSizeSuffix(data.height));
6178
  if (data.type && cellElm.nodeName.toLowerCase() !== data.type) {
6179
  cellElm = dom.rename(cellElm, data.type);
6180
  }
6181
  if (cells.length === 1) {
6182
- $_35zgp3nwjfuviynz.unApplyAlign(editor, cellElm);
6183
- $_35zgp3nwjfuviynz.unApplyVAlign(editor, cellElm);
6184
  }
6185
  if (data.align) {
6186
- $_35zgp3nwjfuviynz.applyAlign(editor, cellElm, data.align);
6187
  }
6188
  if (data.valign) {
6189
- $_35zgp3nwjfuviynz.applyVAlign(editor, cellElm, data.valign);
6190
  }
6191
  });
6192
  editor.focus();
@@ -6222,7 +5934,7 @@ var table = (function () {
6222
  name: 'class',
6223
  type: 'listbox',
6224
  label: 'Class',
6225
- values: $_etnm2gnxjfuviyo0.buildListItems(getCellClassList(editor), function (item) {
6226
  if (item.value) {
6227
  item.textStyle = function () {
6228
  return editor.formatter.getCssText({
@@ -6255,12 +5967,12 @@ var table = (function () {
6255
  {
6256
  label: 'Width',
6257
  name: 'width',
6258
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6259
  },
6260
  {
6261
  label: 'Height',
6262
  name: 'height',
6263
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6264
  },
6265
  {
6266
  label: 'Cell type',
@@ -6378,20 +6090,20 @@ var table = (function () {
6378
  type: 'form',
6379
  items: generalCellForm
6380
  },
6381
- $_etnm2gnxjfuviyo0.createStyleForm(editor)
6382
  ],
6383
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitCellForm, editor, cells)
6384
  });
6385
  } else {
6386
  editor.windowManager.open({
6387
  title: 'Cell properties',
6388
  data: data,
6389
  body: generalCellForm,
6390
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitCellForm, editor, cells)
6391
  });
6392
  }
6393
  };
6394
- var $_ff2aywnvjfuviynt = { open: open };
6395
 
6396
  var extractDataFromElement$1 = function (editor, elm) {
6397
  var dom = editor.dom;
@@ -6403,13 +6115,13 @@ var table = (function () {
6403
  style: '',
6404
  type: elm.parentNode.nodeName.toLowerCase()
6405
  };
6406
- global$2.each('left center right'.split(' '), function (name) {
6407
  if (editor.formatter.matchNode(elm, 'align' + name)) {
6408
  data.align = name;
6409
  }
6410
  });
6411
  if (hasAdvancedRowTab(editor)) {
6412
- global$2.extend(data, $_etnm2gnxjfuviyo0.extractAdvancedStyles(dom, elm));
6413
  }
6414
  return data;
6415
  };
@@ -6437,29 +6149,31 @@ var table = (function () {
6437
  function onSubmitRowForm(editor, rows, oldData, evt) {
6438
  var dom = editor.dom;
6439
  function setAttrib(elm, name, value) {
6440
- if (value) {
6441
  dom.setAttrib(elm, name, value);
6442
  }
6443
  }
6444
  function setStyle(elm, name, value) {
6445
- if (value) {
6446
  dom.setStyle(elm, name, value);
6447
  }
6448
  }
6449
- $_etnm2gnxjfuviyo0.updateStyleField(editor, evt);
 
 
6450
  var data = evt.control.rootControl.toJSON();
6451
  editor.undoManager.transact(function () {
6452
- global$2.each(rows, function (rowElm) {
6453
  setAttrib(rowElm, 'scope', data.scope);
6454
  setAttrib(rowElm, 'style', data.style);
6455
  setAttrib(rowElm, 'class', data.class);
6456
- setStyle(rowElm, 'height', $_aheu0fnnjfuviymj.addSizeSuffix(data.height));
6457
  if (data.type !== rowElm.parentNode.nodeName.toLowerCase()) {
6458
  switchRowType(editor.dom, rowElm, data.type);
6459
  }
6460
  if (data.align !== oldData.align) {
6461
- $_35zgp3nwjfuviynz.unApplyAlign(editor, rowElm);
6462
- $_35zgp3nwjfuviynz.applyAlign(editor, rowElm, data.align);
6463
  }
6464
  });
6465
  editor.focus();
@@ -6472,8 +6186,8 @@ var table = (function () {
6472
  var generalRowForm;
6473
  tableElm = dom.getParent(editor.selection.getStart(), 'table');
6474
  cellElm = dom.getParent(editor.selection.getStart(), 'td,th');
6475
- global$2.each(tableElm.rows, function (row) {
6476
- global$2.each(row.cells, function (cell) {
6477
  if (dom.getAttrib(cell, 'data-mce-selected') || cell === cellElm) {
6478
  rows.push(row);
6479
  return false;
@@ -6501,7 +6215,7 @@ var table = (function () {
6501
  name: 'class',
6502
  type: 'listbox',
6503
  label: 'Class',
6504
- values: $_etnm2gnxjfuviyo0.buildListItems(getRowClassList(editor), function (item) {
6505
  if (item.value) {
6506
  item.textStyle = function () {
6507
  return editor.formatter.getCssText({
@@ -6583,22 +6297,22 @@ var table = (function () {
6583
  type: 'form',
6584
  items: generalRowForm
6585
  },
6586
- $_etnm2gnxjfuviyo0.createStyleForm(editor)
6587
  ],
6588
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitRowForm, editor, rows, data)
6589
  });
6590
  } else {
6591
  editor.windowManager.open({
6592
  title: 'Row properties',
6593
  data: data,
6594
  body: generalRowForm,
6595
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitRowForm, editor, rows, data)
6596
  });
6597
  }
6598
  };
6599
- var $_9342zrnyjfuviyo6 = { open: open$1 };
6600
 
6601
- var global$3 = tinymce.util.Tools.resolve('tinymce.Env');
6602
 
6603
  var DefaultRenderOptions = {
6604
  styles: {
@@ -6609,49 +6323,49 @@ var table = (function () {
6609
  percentages: true
6610
  };
6611
  var makeTable = function () {
6612
- return $_4sdhm4kkjfuviy0e.fromTag('table');
6613
  };
6614
  var tableBody = function () {
6615
- return $_4sdhm4kkjfuviy0e.fromTag('tbody');
6616
  };
6617
  var tableRow = function () {
6618
- return $_4sdhm4kkjfuviy0e.fromTag('tr');
6619
  };
6620
  var tableHeaderCell = function () {
6621
- return $_4sdhm4kkjfuviy0e.fromTag('th');
6622
  };
6623
  var tableCell = function () {
6624
- return $_4sdhm4kkjfuviy0e.fromTag('td');
6625
  };
6626
  var render$1 = function (rows, columns, rowHeaders, columnHeaders, renderOpts) {
6627
  if (renderOpts === void 0) {
6628
  renderOpts = DefaultRenderOptions;
6629
  }
6630
  var table = makeTable();
6631
- $_2lr8nrlejfuviy40.setAll(table, renderOpts.styles);
6632
- $_2ekobel5jfuviy2m.setAll(table, renderOpts.attributes);
6633
  var tbody = tableBody();
6634
- $_5zcsfmlgjfuviy4g.append(table, tbody);
6635
  var trs = [];
6636
  for (var i = 0; i < rows; i++) {
6637
  var tr = tableRow();
6638
  for (var j = 0; j < columns; j++) {
6639
  var td = i < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();
6640
  if (j < columnHeaders) {
6641
- $_2ekobel5jfuviy2m.set(td, 'scope', 'row');
6642
  }
6643
  if (i < rowHeaders) {
6644
- $_2ekobel5jfuviy2m.set(td, 'scope', 'col');
6645
  }
6646
- $_5zcsfmlgjfuviy4g.append(td, $_4sdhm4kkjfuviy0e.fromTag('br'));
6647
  if (renderOpts.percentages) {
6648
- $_2lr8nrlejfuviy40.set(td, 'width', 100 / columns + '%');
6649
  }
6650
- $_5zcsfmlgjfuviy4g.append(tr, td);
6651
  }
6652
  trs.push(tr);
6653
  }
6654
- $_44mr3plijfuviy4p.append(tbody, trs);
6655
  return table;
6656
  };
6657
 
@@ -6659,21 +6373,21 @@ var table = (function () {
6659
  return element.dom().innerHTML;
6660
  };
6661
  var set$5 = function (element, content) {
6662
- var owner = $_87w3h3kmjfuviy0m.owner(element);
6663
  var docDom = owner.dom();
6664
- var fragment = $_4sdhm4kkjfuviy0e.fromDom(docDom.createDocumentFragment());
6665
- var contentElements = $_ek5zoelpjfuviy65.fromHtml(content, docDom);
6666
- $_44mr3plijfuviy4p.append(fragment, contentElements);
6667
- $_5ud3colhjfuviy4l.empty(element);
6668
- $_5zcsfmlgjfuviy4g.append(element, fragment);
6669
  };
6670
  var getOuter$2 = function (element) {
6671
- var container = $_4sdhm4kkjfuviy0e.fromTag('div');
6672
- var clone = $_4sdhm4kkjfuviy0e.fromDom(element.dom().cloneNode(true));
6673
- $_5zcsfmlgjfuviy4g.append(container, clone);
6674
  return get$7(container);
6675
  };
6676
- var $_59qtovo4jfuviypd = {
6677
  get: get$7,
6678
  set: set$5,
6679
  getOuter: getOuter$2
@@ -6684,18 +6398,18 @@ var table = (function () {
6684
  editor.selection.collapse(true);
6685
  };
6686
  var selectFirstCellInTable = function (editor, tableElm) {
6687
- $_26gnp6lajfuviy35.descendant(tableElm, 'td,th').each($_fdch7uk7jfuvixxb.curry(placeCaretInCell, editor));
6688
  };
6689
  var fireEvents = function (editor, table) {
6690
- $_4jja6kk5jfuvixx1.each($_a3hs1bl7jfuviy2w.descendants(table, 'tr'), function (row) {
6691
  fireNewRow(editor, row.dom());
6692
- $_4jja6kk5jfuvixx1.each($_a3hs1bl7jfuviy2w.descendants(row, 'th,td'), function (cell) {
6693
  fireNewCell(editor, cell.dom());
6694
  });
6695
  });
6696
  };
6697
  var isPercentage = function (width) {
6698
- return $_13kw1fk8jfuvixxd.isString(width) && width.indexOf('%') !== -1;
6699
  };
6700
  var insert$1 = function (editor, columns, rows) {
6701
  var defaultStyles = getDefaultStyles(editor);
@@ -6705,20 +6419,20 @@ var table = (function () {
6705
  percentages: isPercentage(defaultStyles.width) && !isPixelsForced(editor)
6706
  };
6707
  var table = render$1(rows, columns, 0, 0, options);
6708
- $_2ekobel5jfuviy2m.set(table, 'data-mce-id', '__mce');
6709
- var html = $_59qtovo4jfuviypd.getOuter(table);
6710
  editor.insertContent(html);
6711
- return $_26gnp6lajfuviy35.descendant($_aheu0fnnjfuviymj.getBody(editor), 'table[data-mce-id="__mce"]').map(function (table) {
6712
  if (isPixelsForced(editor)) {
6713
- $_2lr8nrlejfuviy40.set(table, 'width', $_2lr8nrlejfuviy40.get(table, 'width'));
6714
  }
6715
- $_2ekobel5jfuviy2m.remove(table, 'data-mce-id');
6716
  fireEvents(editor, table);
6717
  selectFirstCellInTable(editor, table);
6718
  return table.dom();
6719
  }).getOr(null);
6720
  };
6721
- var $_53bmjpo1jfuviyoi = { insert: insert$1 };
6722
 
6723
  function styleTDTH(dom, elm, name, value) {
6724
  if (elm.tagName === 'TD' || elm.tagName === 'TH') {
@@ -6737,19 +6451,19 @@ var table = (function () {
6737
  width: dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width'),
6738
  height: dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height'),
6739
  cellspacing: dom.getStyle(tableElm, 'border-spacing') || dom.getAttrib(tableElm, 'cellspacing'),
6740
- cellpadding: dom.getAttrib(tableElm, 'data-mce-cell-padding') || dom.getAttrib(tableElm, 'cellpadding') || $_35zgp3nwjfuviynz.getTDTHOverallStyle(editor.dom, tableElm, 'padding'),
6741
- border: dom.getAttrib(tableElm, 'data-mce-border') || dom.getAttrib(tableElm, 'border') || $_35zgp3nwjfuviynz.getTDTHOverallStyle(editor.dom, tableElm, 'border'),
6742
  borderColor: dom.getAttrib(tableElm, 'data-mce-border-color'),
6743
  caption: !!dom.select('caption', tableElm)[0],
6744
  class: dom.getAttrib(tableElm, 'class')
6745
  };
6746
- global$2.each('left center right'.split(' '), function (name) {
6747
  if (editor.formatter.matchNode(tableElm, 'align' + name)) {
6748
  data.align = name;
6749
  }
6750
  });
6751
  if (hasAdvancedTableTab(editor)) {
6752
- global$2.extend(data, $_etnm2gnxjfuviyo0.extractAdvancedStyles(dom, tableElm));
6753
  }
6754
  return data;
6755
  };
@@ -6758,22 +6472,22 @@ var table = (function () {
6758
  var attrs = {};
6759
  var styles = {};
6760
  attrs.class = data.class;
6761
- styles.height = $_aheu0fnnjfuviymj.addSizeSuffix(data.height);
6762
  if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {
6763
- attrs.width = $_aheu0fnnjfuviymj.removePxSuffix(data.width);
6764
  } else {
6765
- styles.width = $_aheu0fnnjfuviymj.addSizeSuffix(data.width);
6766
  }
6767
  if (shouldStyleWithCss(editor)) {
6768
- styles['border-width'] = $_aheu0fnnjfuviymj.addSizeSuffix(data.border);
6769
- styles['border-spacing'] = $_aheu0fnnjfuviymj.addSizeSuffix(data.cellspacing);
6770
- global$2.extend(attrs, {
6771
  'data-mce-border-color': data.borderColor,
6772
  'data-mce-cell-padding': data.cellpadding,
6773
  'data-mce-border': data.border
6774
  });
6775
  } else {
6776
- global$2.extend(attrs, {
6777
  border: data.border,
6778
  cellpadding: data.cellpadding,
6779
  cellspacing: data.cellspacing
@@ -6783,17 +6497,17 @@ var table = (function () {
6783
  if (tableElm.children) {
6784
  for (var i = 0; i < tableElm.children.length; i++) {
6785
  styleTDTH(dom, tableElm.children[i], {
6786
- 'border-width': $_aheu0fnnjfuviymj.addSizeSuffix(data.border),
6787
  'border-color': data.borderColor,
6788
- 'padding': $_aheu0fnnjfuviymj.addSizeSuffix(data.cellpadding)
6789
  });
6790
  }
6791
  }
6792
  }
6793
  if (data.style) {
6794
- global$2.extend(styles, dom.parseStyle(data.style));
6795
  } else {
6796
- styles = global$2.extend({}, dom.parseStyle(dom.getAttrib(tableElm, 'style')), styles);
6797
  }
6798
  attrs.style = dom.serializeStyle(styles);
6799
  dom.setAttribs(tableElm, attrs);
@@ -6802,14 +6516,16 @@ var table = (function () {
6802
  var dom = editor.dom;
6803
  var captionElm;
6804
  var data;
6805
- $_etnm2gnxjfuviyo0.updateStyleField(editor, evt);
 
 
6806
  data = evt.control.rootControl.toJSON();
6807
  if (data.class === false) {
6808
  delete data.class;
6809
  }
6810
  editor.undoManager.transact(function () {
6811
  if (!tableElm) {
6812
- tableElm = $_53bmjpo1jfuviyoi.insert(editor, data.cols || 1, data.rows || 1);
6813
  }
6814
  applyDataToElement(editor, tableElm, data);
6815
  captionElm = dom.select('caption', tableElm)[0];
@@ -6818,12 +6534,12 @@ var table = (function () {
6818
  }
6819
  if (!captionElm && data.caption) {
6820
  captionElm = dom.create('caption');
6821
- captionElm.innerHTML = !global$3.ie ? '<br data-mce-bogus="1"/>' : '\xA0';
6822
  tableElm.insertBefore(captionElm, tableElm.firstChild);
6823
  }
6824
- $_35zgp3nwjfuviynz.unApplyAlign(editor, tableElm);
6825
  if (data.align) {
6826
- $_35zgp3nwjfuviynz.applyAlign(editor, tableElm, data.align);
6827
  }
6828
  editor.focus();
6829
  editor.addVisual();
@@ -6855,7 +6571,7 @@ var table = (function () {
6855
  name: 'class',
6856
  type: 'listbox',
6857
  label: 'Class',
6858
- values: $_etnm2gnxjfuviyo0.buildListItems(getTableClassList(editor), function (item) {
6859
  if (item.value) {
6860
  item.textStyle = function () {
6861
  return editor.formatter.getCssText({
@@ -6890,12 +6606,12 @@ var table = (function () {
6890
  {
6891
  label: 'Width',
6892
  name: 'width',
6893
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6894
  },
6895
  {
6896
  label: 'Height',
6897
  name: 'height',
6898
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6899
  },
6900
  {
6901
  label: 'Cell spacing',
@@ -6920,12 +6636,12 @@ var table = (function () {
6920
  {
6921
  label: 'Width',
6922
  name: 'width',
6923
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6924
  },
6925
  {
6926
  label: 'Height',
6927
  name: 'height',
6928
- onchange: $_fdch7uk7jfuvixxb.curry($_etnm2gnxjfuviyo0.updateStyleField, editor)
6929
  }
6930
  ]
6931
  },
@@ -6967,31 +6683,31 @@ var table = (function () {
6967
  type: 'form',
6968
  items: generalTableForm
6969
  },
6970
- $_etnm2gnxjfuviyo0.createStyleForm(editor)
6971
  ],
6972
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitTableForm, editor, tableElm)
6973
  });
6974
  } else {
6975
  editor.windowManager.open({
6976
  title: 'Table properties',
6977
  data: data,
6978
  body: generalTableForm,
6979
- onsubmit: $_fdch7uk7jfuvixxb.curry(onSubmitTableForm, editor, tableElm)
6980
  });
6981
  }
6982
  };
6983
- var $_53k9g0nzjfuviyoc = { open: open$2 };
6984
 
6985
- var each$3 = global$2.each;
6986
  var registerCommands = function (editor, actions, cellSelection, selections, clipboardRows) {
6987
- var isRoot = $_aheu0fnnjfuviymj.getIsRoot(editor);
6988
  var eraseTable = function () {
6989
- var cell = $_4sdhm4kkjfuviy0e.fromDom(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
6990
- var table = $_dmqxswkhjfuvixyz.table(cell, isRoot);
6991
- table.filter($_fdch7uk7jfuvixxb.not(isRoot)).each(function (table) {
6992
- var cursor = $_4sdhm4kkjfuviy0e.fromText('');
6993
- $_5zcsfmlgjfuviy4g.after(table, cursor);
6994
- $_5ud3colhjfuviy4l.remove(table);
6995
  var rng = editor.dom.createRng();
6996
  rng.setStart(cursor.dom(), 0);
6997
  rng.setEnd(cursor.dom(), 0);
@@ -6999,20 +6715,36 @@ var table = (function () {
6999
  });
7000
  };
7001
  var getSelectionStartCell = function () {
7002
- return $_4sdhm4kkjfuviy0e.fromDom(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
7003
  };
7004
  var getTableFromCell = function (cell) {
7005
- return $_dmqxswkhjfuvixyz.table(cell, isRoot);
 
 
 
 
 
 
 
 
 
 
 
 
 
7006
  };
7007
  var actOnSelection = function (execute) {
7008
  var cell = getSelectionStartCell();
7009
  var table = getTableFromCell(cell);
7010
  table.each(function (table) {
7011
- var targets = $_fgxiq3lqjfuviy6a.forMenu(selections, table, cell);
 
7012
  execute(table, targets).each(function (rng) {
 
7013
  editor.selection.setRng(rng);
7014
  editor.focus();
7015
  cellSelection.clear(table);
 
7016
  });
7017
  });
7018
  };
@@ -7020,23 +6752,23 @@ var table = (function () {
7020
  var cell = getSelectionStartCell();
7021
  var table = getTableFromCell(cell);
7022
  return table.bind(function (table) {
7023
- var doc = $_4sdhm4kkjfuviy0e.fromDom(editor.getDoc());
7024
- var targets = $_fgxiq3lqjfuviy6a.forMenu(selections, table, cell);
7025
- var generators = $_clky4ljjfuviy4t.cellOperations($_fdch7uk7jfuvixxb.noop, doc, Option.none());
7026
- return $_bjdegsntjfuviynl.copyRows(table, targets, generators);
7027
  });
7028
  };
7029
  var pasteOnSelection = function (execute) {
7030
  clipboardRows.get().each(function (rows) {
7031
- var clonedRows = $_4jja6kk5jfuvixx1.map(rows, function (row) {
7032
- return $_1i39h2lkjfuviy5n.deep(row);
7033
  });
7034
  var cell = getSelectionStartCell();
7035
  var table = getTableFromCell(cell);
7036
  table.bind(function (table) {
7037
- var doc = $_4sdhm4kkjfuviy0e.fromDom(editor.getDoc());
7038
- var generators = $_clky4ljjfuviy4t.paste(doc);
7039
- var targets = $_fgxiq3lqjfuviy6a.pasteRows(selections, table, cell, clonedRows, generators);
7040
  execute(table, targets).each(function (rng) {
7041
  editor.selection.setRng(rng);
7042
  editor.focus();
@@ -7088,82 +6820,82 @@ var table = (function () {
7088
  editor.addCommand(name, func);
7089
  });
7090
  each$3({
7091
- mceInsertTable: $_fdch7uk7jfuvixxb.curry($_53k9g0nzjfuviyoc.open, editor),
7092
- mceTableProps: $_fdch7uk7jfuvixxb.curry($_53k9g0nzjfuviyoc.open, editor, true),
7093
- mceTableRowProps: $_fdch7uk7jfuvixxb.curry($_9342zrnyjfuviyo6.open, editor),
7094
- mceTableCellProps: $_fdch7uk7jfuvixxb.curry($_ff2aywnvjfuviynt.open, editor)
7095
  }, function (func, name) {
7096
  editor.addCommand(name, function (ui, val) {
7097
  func(val);
7098
  });
7099
  });
7100
  };
7101
- var $_5hhd4unsjfuviyn2 = { registerCommands: registerCommands };
7102
 
7103
  var only$1 = function (element) {
7104
- var parent = Option.from(element.dom().documentElement).map($_4sdhm4kkjfuviy0e.fromDom).getOr(element);
7105
  return {
7106
- parent: $_fdch7uk7jfuvixxb.constant(parent),
7107
- view: $_fdch7uk7jfuvixxb.constant(element),
7108
- origin: $_fdch7uk7jfuvixxb.constant(r(0, 0))
7109
  };
7110
  };
7111
  var detached = function (editable, chrome) {
7112
- var origin = $_fdch7uk7jfuvixxb.curry($_6ti42xmijfuviydp.absolute, chrome);
7113
  return {
7114
- parent: $_fdch7uk7jfuvixxb.constant(chrome),
7115
- view: $_fdch7uk7jfuvixxb.constant(editable),
7116
  origin: origin
7117
  };
7118
  };
7119
  var body$1 = function (editable, chrome) {
7120
  return {
7121
- parent: $_fdch7uk7jfuvixxb.constant(chrome),
7122
- view: $_fdch7uk7jfuvixxb.constant(editable),
7123
- origin: $_fdch7uk7jfuvixxb.constant(r(0, 0))
7124
  };
7125
  };
7126
- var $_ar0shqo6jfuviyq0 = {
7127
  only: only$1,
7128
  detached: detached,
7129
  body: body$1
7130
  };
7131
 
7132
  function Event (fields) {
7133
- var struct = $_96oqrskbjfuvixya.immutable.apply(null, fields);
7134
  var handlers = [];
7135
- var bind = function (handler) {
7136
  if (handler === undefined) {
7137
  throw 'Event bind error: undefined handler';
7138
  }
7139
  handlers.push(handler);
7140
  };
7141
  var unbind = function (handler) {
7142
- handlers = $_4jja6kk5jfuvixx1.filter(handlers, function (h) {
7143
  return h !== handler;
7144
  });
7145
  };
7146
  var trigger = function () {
7147
  var event = struct.apply(null, arguments);
7148
- $_4jja6kk5jfuvixx1.each(handlers, function (handler) {
7149
  handler(event);
7150
  });
7151
  };
7152
  return {
7153
- bind: bind,
7154
  unbind: unbind,
7155
  trigger: trigger
7156
  };
7157
  }
7158
 
7159
  var create = function (typeDefs) {
7160
- var registry = $_afb9m6kajfuvixy8.map(typeDefs, function (event) {
7161
  return {
7162
  bind: event.bind,
7163
  unbind: event.unbind
7164
  };
7165
  });
7166
- var trigger = $_afb9m6kajfuvixy8.map(typeDefs, function (event) {
7167
  return event.trigger;
7168
  });
7169
  return {
@@ -7171,53 +6903,53 @@ var table = (function () {
7171
  trigger: trigger
7172
  };
7173
  };
7174
- var $_6yrn63o9jfuviyqu = { create: create };
7175
 
7176
- var mode = $_5ebbzmpjfuviyf6.exactly([
7177
  'compare',
7178
  'extract',
7179
  'mutate',
7180
  'sink'
7181
  ]);
7182
- var sink = $_5ebbzmpjfuviyf6.exactly([
7183
  'element',
7184
  'start',
7185
  'stop',
7186
  'destroy'
7187
  ]);
7188
- var api$3 = $_5ebbzmpjfuviyf6.exactly([
7189
  'forceDrop',
7190
  'drop',
7191
  'move',
7192
  'delayDrop'
7193
  ]);
7194
- var $_gabrxvodjfuviysh = {
7195
  mode: mode,
7196
  sink: sink,
7197
  api: api$3
7198
  };
7199
 
7200
- var styles$1 = $_13iai7n5jfuviyjr.css('ephox-dragster');
7201
- var $_3hw8i9ofjfuviysz = { resolve: styles$1.resolve };
7202
 
7203
  function Blocker (options) {
7204
- var settings = $_8d366dmujfuviygv.merge({ 'layerClass': $_3hw8i9ofjfuviysz.resolve('blocker') }, options);
7205
- var div = $_4sdhm4kkjfuviy0e.fromTag('div');
7206
- $_2ekobel5jfuviy2m.set(div, 'role', 'presentation');
7207
- $_2lr8nrlejfuviy40.setAll(div, {
7208
  position: 'fixed',
7209
  left: '0px',
7210
  top: '0px',
7211
  width: '100%',
7212
  height: '100%'
7213
  });
7214
- $_c1zp6in6jfuviyjs.add(div, $_3hw8i9ofjfuviysz.resolve('blocker'));
7215
- $_c1zp6in6jfuviyjs.add(div, settings.layerClass);
7216
  var element = function () {
7217
  return div;
7218
  };
7219
  var destroy = function () {
7220
- $_5ud3colhjfuviy4l.remove(div);
7221
  };
7222
  return {
7223
  element: element,
@@ -7227,27 +6959,27 @@ var table = (function () {
7227
 
7228
  var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
7229
  return {
7230
- 'target': $_fdch7uk7jfuvixxb.constant(target),
7231
- 'x': $_fdch7uk7jfuvixxb.constant(x),
7232
- 'y': $_fdch7uk7jfuvixxb.constant(y),
7233
  'stop': stop,
7234
  'prevent': prevent,
7235
  'kill': kill,
7236
- 'raw': $_fdch7uk7jfuvixxb.constant(raw)
7237
  };
7238
  };
7239
  var handle = function (filter, handler) {
7240
  return function (rawEvent) {
7241
  if (!filter(rawEvent))
7242
  return;
7243
- var target = $_4sdhm4kkjfuviy0e.fromDom(rawEvent.target);
7244
  var stop = function () {
7245
  rawEvent.stopPropagation();
7246
  };
7247
  var prevent = function () {
7248
  rawEvent.preventDefault();
7249
  };
7250
- var kill = $_fdch7uk7jfuvixxb.compose(prevent, stop);
7251
  var evt = mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);
7252
  handler(evt);
7253
  };
@@ -7255,7 +6987,7 @@ var table = (function () {
7255
  var binder = function (element, event, filter, handler, useCapture) {
7256
  var wrapped = handle(filter, handler);
7257
  element.dom().addEventListener(event, wrapped, useCapture);
7258
- return { unbind: $_fdch7uk7jfuvixxb.curry(unbind, element, event, wrapped, useCapture) };
7259
  };
7260
  var bind$1 = function (element, event, filter, handler) {
7261
  return binder(element, event, filter, handler, false);
@@ -7266,38 +6998,38 @@ var table = (function () {
7266
  var unbind = function (element, event, handler, useCapture) {
7267
  element.dom().removeEventListener(event, handler, useCapture);
7268
  };
7269
- var $_dn0nleohjfuviyt7 = {
7270
  bind: bind$1,
7271
  capture: capture
7272
  };
7273
 
7274
- var filter$1 = $_fdch7uk7jfuvixxb.constant(true);
7275
  var bind$2 = function (element, event, handler) {
7276
- return $_dn0nleohjfuviyt7.bind(element, event, filter$1, handler);
7277
  };
7278
  var capture$1 = function (element, event, handler) {
7279
- return $_dn0nleohjfuviyt7.capture(element, event, filter$1, handler);
7280
  };
7281
- var $_2t4o5uogjfuviyt3 = {
7282
  bind: bind$2,
7283
  capture: capture$1
7284
  };
7285
 
7286
  var compare = function (old, nu) {
7287
- return r(nu.left() - old.left(), nu.top() - old.top());
7288
  };
7289
  var extract$1 = function (event) {
7290
- return Option.some(r(event.x(), event.y()));
7291
  };
7292
  var mutate$1 = function (mutation, info) {
7293
  mutation.mutate(info.left(), info.top());
7294
  };
7295
  var sink$1 = function (dragApi, settings) {
7296
  var blocker = Blocker(settings);
7297
- var mdown = $_2t4o5uogjfuviyt3.bind(blocker.element(), 'mousedown', dragApi.forceDrop);
7298
- var mup = $_2t4o5uogjfuviyt3.bind(blocker.element(), 'mouseup', dragApi.drop);
7299
- var mmove = $_2t4o5uogjfuviyt3.bind(blocker.element(), 'mousemove', dragApi.move);
7300
- var mout = $_2t4o5uogjfuviyt3.bind(blocker.element(), 'mouseout', dragApi.delayDrop);
7301
  var destroy = function () {
7302
  blocker.destroy();
7303
  mup.unbind();
@@ -7306,19 +7038,19 @@ var table = (function () {
7306
  mdown.unbind();
7307
  };
7308
  var start = function (parent) {
7309
- $_5zcsfmlgjfuviy4g.append(parent, blocker.element());
7310
  };
7311
  var stop = function () {
7312
- $_5ud3colhjfuviy4l.remove(blocker.element());
7313
  };
7314
- return $_gabrxvodjfuviysh.sink({
7315
  element: blocker.element,
7316
  start: start,
7317
  stop: stop,
7318
  destroy: destroy
7319
  });
7320
  };
7321
- var MouseDrag = $_gabrxvodjfuviysh.mode({
7322
  compare: compare,
7323
  extract: extract$1,
7324
  sink: sink$1,
@@ -7346,7 +7078,7 @@ var table = (function () {
7346
  });
7347
  });
7348
  };
7349
- var events = $_6yrn63o9jfuviyqu.create({ move: Event(['info']) });
7350
  return {
7351
  onEvent: onEvent,
7352
  reset: reset,
@@ -7359,7 +7091,7 @@ var table = (function () {
7359
  };
7360
  return {
7361
  onEvent: onEvent,
7362
- reset: $_fdch7uk7jfuvixxb.noop
7363
  };
7364
  }
7365
 
@@ -7390,54 +7122,6 @@ var table = (function () {
7390
  };
7391
  }
7392
 
7393
- var adaptable = function (fn, rate) {
7394
- var timer = null;
7395
- var args = null;
7396
- var cancel = function () {
7397
- if (timer !== null) {
7398
- clearTimeout(timer);
7399
- timer = null;
7400
- args = null;
7401
- }
7402
- };
7403
- var throttle = function () {
7404
- args = arguments;
7405
- if (timer === null) {
7406
- timer = setTimeout(function () {
7407
- fn.apply(null, args);
7408
- timer = null;
7409
- args = null;
7410
- }, rate);
7411
- }
7412
- };
7413
- return {
7414
- cancel: cancel,
7415
- throttle: throttle
7416
- };
7417
- };
7418
- var first$4 = function (fn, rate) {
7419
- var timer = null;
7420
- var cancel = function () {
7421
- if (timer !== null) {
7422
- clearTimeout(timer);
7423
- timer = null;
7424
- }
7425
- };
7426
- var throttle = function () {
7427
- var args = arguments;
7428
- if (timer === null) {
7429
- timer = setTimeout(function () {
7430
- fn.apply(null, args);
7431
- timer = null;
7432
- args = null;
7433
- }, rate);
7434
- }
7435
- };
7436
- return {
7437
- cancel: cancel,
7438
- throttle: throttle
7439
- };
7440
- };
7441
  var last$3 = function (fn, rate) {
7442
  var timer = null;
7443
  var cancel = function () {
@@ -7447,13 +7131,15 @@ var table = (function () {
7447
  }
7448
  };
7449
  var throttle = function () {
7450
- var args = arguments;
 
 
 
7451
  if (timer !== null)
7452
  clearTimeout(timer);
7453
  timer = setTimeout(function () {
7454
  fn.apply(null, args);
7455
  timer = null;
7456
- args = null;
7457
  }, rate);
7458
  };
7459
  return {
@@ -7461,15 +7147,10 @@ var table = (function () {
7461
  throttle: throttle
7462
  };
7463
  };
7464
- var $_bjcpcmomjfuviyu4 = {
7465
- adaptable: adaptable,
7466
- first: first$4,
7467
- last: last$3
7468
- };
7469
 
7470
  var setup = function (mutation, mode, settings) {
7471
  var active = false;
7472
- var events = $_6yrn63o9jfuviyqu.create({
7473
  start: Event([]),
7474
  stop: Event([])
7475
  });
@@ -7481,7 +7162,7 @@ var table = (function () {
7481
  events.trigger.stop();
7482
  }
7483
  };
7484
- var throttledDrop = $_bjcpcmomjfuviyu4.last(drop, 200);
7485
  var go = function (parent) {
7486
  sink.start(parent);
7487
  movement.on();
@@ -7508,7 +7189,7 @@ var table = (function () {
7508
  }
7509
  };
7510
  };
7511
- var sink = mode.sink($_gabrxvodjfuviysh.api({
7512
  forceDrop: drop,
7513
  drop: runIfActive(drop),
7514
  move: runIfActive(mousemove),
@@ -7526,17 +7207,17 @@ var table = (function () {
7526
  events: events.registry
7527
  };
7528
  };
7529
- var $_3eefdkoijfuviytb = { setup: setup };
7530
 
7531
  var transform$1 = function (mutation, options) {
7532
  var settings = options !== undefined ? options : {};
7533
  var mode = settings.mode !== undefined ? settings.mode : MouseDrag;
7534
- return $_3eefdkoijfuviytb.setup(mutation, mode, options);
7535
  };
7536
- var $_al5begobjfuviys2 = { transform: transform$1 };
7537
 
7538
  function Mutation () {
7539
- var events = $_6yrn63o9jfuviyqu.create({
7540
  'drag': Event([
7541
  'xDelta',
7542
  'yDelta'
@@ -7552,7 +7233,7 @@ var table = (function () {
7552
  }
7553
 
7554
  function BarMutation () {
7555
- var events = $_6yrn63o9jfuviyqu.create({
7556
  drag: Event([
7557
  'xDelta',
7558
  'yDelta',
@@ -7581,24 +7262,24 @@ var table = (function () {
7581
  }
7582
 
7583
  var any = function (selector) {
7584
- return $_26gnp6lajfuviy35.first(selector).isSome();
7585
  };
7586
  var ancestor$2 = function (scope, selector, isRoot) {
7587
- return $_26gnp6lajfuviy35.ancestor(scope, selector, isRoot).isSome();
7588
  };
7589
  var sibling$2 = function (scope, selector) {
7590
- return $_26gnp6lajfuviy35.sibling(scope, selector).isSome();
7591
  };
7592
  var child$3 = function (scope, selector) {
7593
- return $_26gnp6lajfuviy35.child(scope, selector).isSome();
7594
  };
7595
  var descendant$2 = function (scope, selector) {
7596
- return $_26gnp6lajfuviy35.descendant(scope, selector).isSome();
7597
  };
7598
  var closest$2 = function (scope, selector, isRoot) {
7599
- return $_26gnp6lajfuviy35.closest(scope, selector, isRoot).isSome();
7600
  };
7601
- var $_a72h2qopjfuviyyz = {
7602
  any: any,
7603
  ancestor: ancestor$2,
7604
  sibling: sibling$2,
@@ -7607,27 +7288,27 @@ var table = (function () {
7607
  closest: closest$2
7608
  };
7609
 
7610
- var resizeBarDragging = $_a98vnwn4jfuviyjo.resolve('resizer-bar-dragging');
7611
  function BarManager (wire, direction, hdirection) {
7612
  var mutation = BarMutation();
7613
- var resizing = $_al5begobjfuviys2.transform(mutation, {});
7614
  var hoverTable = Option.none();
7615
  var getResizer = function (element, type) {
7616
- return Option.from($_2ekobel5jfuviy2m.get(element, type));
7617
  };
7618
  mutation.events.drag.bind(function (event) {
7619
  getResizer(event.target(), 'data-row').each(function (_dataRow) {
7620
- var currentRow = $_edgkrmnkjfuviylu.getInt(event.target(), 'top');
7621
- $_2lr8nrlejfuviy40.set(event.target(), 'top', currentRow + event.yDelta() + 'px');
7622
  });
7623
  getResizer(event.target(), 'data-column').each(function (_dataCol) {
7624
- var currentCol = $_edgkrmnkjfuviylu.getInt(event.target(), 'left');
7625
- $_2lr8nrlejfuviy40.set(event.target(), 'left', currentCol + event.xDelta() + 'px');
7626
  });
7627
  });
7628
  var getDelta = function (target, direction) {
7629
- var newX = $_edgkrmnkjfuviylu.getInt(target, direction);
7630
- var oldX = parseInt($_2ekobel5jfuviy2m.get(target, 'data-initial-' + direction), 10);
7631
  return newX - oldX;
7632
  };
7633
  resizing.events.stop.bind(function () {
@@ -7635,55 +7316,55 @@ var table = (function () {
7635
  hoverTable.each(function (table) {
7636
  getResizer(target, 'data-row').each(function (row) {
7637
  var delta = getDelta(target, 'top');
7638
- $_2ekobel5jfuviy2m.remove(target, 'data-initial-top');
7639
  events.trigger.adjustHeight(table, delta, parseInt(row, 10));
7640
  });
7641
  getResizer(target, 'data-column').each(function (column) {
7642
  var delta = getDelta(target, 'left');
7643
- $_2ekobel5jfuviy2m.remove(target, 'data-initial-left');
7644
  events.trigger.adjustWidth(table, delta, parseInt(column, 10));
7645
  });
7646
- $_8qdnrkn0jfuviyi7.refresh(wire, table, hdirection, direction);
7647
  });
7648
  });
7649
  });
7650
  var handler = function (target, direction) {
7651
  events.trigger.startAdjust();
7652
  mutation.assign(target);
7653
- $_2ekobel5jfuviy2m.set(target, 'data-initial-' + direction, parseInt($_2lr8nrlejfuviy40.get(target, direction), 10));
7654
- $_c1zp6in6jfuviyjs.add(target, resizeBarDragging);
7655
- $_2lr8nrlejfuviy40.set(target, 'opacity', '0.2');
7656
  resizing.go(wire.parent());
7657
  };
7658
- var mousedown = $_2t4o5uogjfuviyt3.bind(wire.parent(), 'mousedown', function (event) {
7659
- if ($_8qdnrkn0jfuviyi7.isRowBar(event.target()))
7660
  handler(event.target(), 'top');
7661
- if ($_8qdnrkn0jfuviyi7.isColBar(event.target()))
7662
  handler(event.target(), 'left');
7663
  });
7664
  var isRoot = function (e) {
7665
- return $_g6ztqikojfuviy13.eq(e, wire.view());
7666
  };
7667
- var mouseover = $_2t4o5uogjfuviyt3.bind(wire.view(), 'mouseover', function (event) {
7668
- if ($_6mcqmml6jfuviy2u.name(event.target()) === 'table' || $_a72h2qopjfuviyyz.closest(event.target(), 'table', isRoot)) {
7669
- hoverTable = $_6mcqmml6jfuviy2u.name(event.target()) === 'table' ? Option.some(event.target()) : $_26gnp6lajfuviy35.ancestor(event.target(), 'table', isRoot);
7670
  hoverTable.each(function (ht) {
7671
- $_8qdnrkn0jfuviyi7.refresh(wire, ht, hdirection, direction);
7672
  });
7673
- } else if ($_43dxxcl9jfuviy31.inBody(event.target())) {
7674
- $_8qdnrkn0jfuviyi7.destroy(wire);
7675
  }
7676
  });
7677
  var destroy = function () {
7678
  mousedown.unbind();
7679
  mouseover.unbind();
7680
  resizing.destroy();
7681
- $_8qdnrkn0jfuviyi7.destroy(wire);
7682
  };
7683
  var refresh = function (tbl) {
7684
- $_8qdnrkn0jfuviyi7.refresh(wire, tbl, hdirection, direction);
7685
  };
7686
- var events = $_6yrn63o9jfuviyqu.create({
7687
  adjustHeight: Event([
7688
  'table',
7689
  'delta',
@@ -7701,16 +7382,16 @@ var table = (function () {
7701
  refresh: refresh,
7702
  on: resizing.on,
7703
  off: resizing.off,
7704
- hideBars: $_fdch7uk7jfuvixxb.curry($_8qdnrkn0jfuviyi7.hide, wire),
7705
- showBars: $_fdch7uk7jfuvixxb.curry($_8qdnrkn0jfuviyi7.show, wire),
7706
  events: events.registry
7707
  };
7708
  }
7709
 
7710
  function TableResize (wire, vdirection) {
7711
- var hdirection = $_bj1b3kmhjfuviyd6.height;
7712
  var manager = BarManager(wire, vdirection, hdirection);
7713
- var events = $_6yrn63o9jfuviyqu.create({
7714
  beforeResize: Event(['table']),
7715
  afterResize: Event(['table']),
7716
  startDrag: Event([])
@@ -7718,7 +7399,7 @@ var table = (function () {
7718
  manager.events.adjustHeight.bind(function (event) {
7719
  events.trigger.beforeResize(event.table());
7720
  var delta = hdirection.delta(event.delta(), event.table());
7721
- $_f6vpt3ngjfuviyl3.adjustHeight(event.table(), delta, event.row(), hdirection);
7722
  events.trigger.afterResize(event.table());
7723
  });
7724
  manager.events.startAdjust.bind(function (event) {
@@ -7727,7 +7408,7 @@ var table = (function () {
7727
  manager.events.adjustWidth.bind(function (event) {
7728
  events.trigger.beforeResize(event.table());
7729
  var delta = vdirection.delta(event.delta(), event.table());
7730
- $_f6vpt3ngjfuviyl3.adjustWidth(event.table(), delta, event.column(), vdirection);
7731
  events.trigger.afterResize(event.table());
7732
  });
7733
  return {
@@ -7741,8 +7422,8 @@ var table = (function () {
7741
  }
7742
 
7743
  var createContainer = function () {
7744
- var container = $_4sdhm4kkjfuviy0e.fromTag('div');
7745
- $_2lr8nrlejfuviy40.setAll(container, {
7746
  position: 'static',
7747
  height: '0',
7748
  width: '0',
@@ -7750,18 +7431,18 @@ var table = (function () {
7750
  margin: '0',
7751
  border: '0'
7752
  });
7753
- $_5zcsfmlgjfuviy4g.append($_43dxxcl9jfuviy31.body(), container);
7754
  return container;
7755
  };
7756
  var get$8 = function (editor, container) {
7757
- return editor.inline ? $_ar0shqo6jfuviyq0.body($_aheu0fnnjfuviymj.getBody(editor), createContainer()) : $_ar0shqo6jfuviyq0.only($_4sdhm4kkjfuviy0e.fromDom(editor.getDoc()));
7758
  };
7759
  var remove$6 = function (editor, wire) {
7760
  if (editor.inline) {
7761
- $_5ud3colhjfuviy4l.remove(wire.parent());
7762
  }
7763
  };
7764
- var $_88ebgxoqjfuviyz1 = {
7765
  get: get$8,
7766
  remove: remove$6
7767
  };
@@ -7782,19 +7463,19 @@ var table = (function () {
7782
  return resize;
7783
  };
7784
  var lazyWire = function () {
7785
- return wire.getOr($_ar0shqo6jfuviyq0.only($_4sdhm4kkjfuviy0e.fromDom(editor.getBody())));
7786
  };
7787
  var destroy = function () {
7788
  resize.each(function (sz) {
7789
  sz.destroy();
7790
  });
7791
  wire.each(function (w) {
7792
- $_88ebgxoqjfuviyz1.remove(editor, w);
7793
  });
7794
  };
7795
  editor.on('init', function () {
7796
- var direction = TableDirection($_1g25rnojfuviymn.directionAt);
7797
- var rawWire = $_88ebgxoqjfuviyz1.get(editor);
7798
  wire = Option.some(rawWire);
7799
  if (hasObjectResizing(editor) && hasTableResizeBars(editor)) {
7800
  var sz = TableResize(rawWire, direction);
@@ -7802,16 +7483,19 @@ var table = (function () {
7802
  sz.events.startDrag.bind(function (event) {
7803
  selectionRng = Option.some(editor.selection.getRng());
7804
  });
 
 
 
 
7805
  sz.events.afterResize.bind(function (event) {
7806
  var table = event.table();
7807
- var dataStyleCells = $_a3hs1bl7jfuviy2w.descendants(table, 'td[data-mce-style],th[data-mce-style]');
7808
- $_4jja6kk5jfuvixx1.each(dataStyleCells, function (cell) {
7809
- $_2ekobel5jfuviy2m.remove(cell, 'data-mce-style');
7810
- });
7811
  selectionRng.each(function (rng) {
7812
  editor.selection.setRng(rng);
7813
  editor.focus();
7814
  });
 
7815
  editor.undoManager.add();
7816
  });
7817
  resize = Option.some(sz);
@@ -7834,8 +7518,8 @@ var table = (function () {
7834
  editor.dom.setStyle(table, 'width', targetPercentW + '%');
7835
  } else {
7836
  var newCellSizes_1 = [];
7837
- global$2.each(table.rows, function (row) {
7838
- global$2.each(row.cells, function (cell) {
7839
  var width = editor.dom.getStyle(cell, 'width', true);
7840
  newCellSizes_1.push({
7841
  cell: cell,
@@ -7843,7 +7527,7 @@ var table = (function () {
7843
  });
7844
  });
7845
  });
7846
- global$2.each(newCellSizes_1, function (newCellSize) {
7847
  editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);
7848
  editor.dom.setAttrib(newCellSize.cell, 'width', null);
7849
  });
@@ -7880,7 +7564,7 @@ var table = (function () {
7880
  var folder$1 = function (fold) {
7881
  return { fold: fold };
7882
  };
7883
- var $_5ee2qxotjfuviz05 = {
7884
  none: none$2,
7885
  first: first$5,
7886
  middle: middle$1,
@@ -7888,15 +7572,15 @@ var table = (function () {
7888
  };
7889
 
7890
  var detect$4 = function (current, isRoot) {
7891
- return $_dmqxswkhjfuvixyz.table(current, isRoot).bind(function (table) {
7892
- var all = $_dmqxswkhjfuvixyz.cells(table);
7893
- var index = $_4jja6kk5jfuvixx1.findIndex(all, function (x) {
7894
- return $_g6ztqikojfuviy13.eq(current, x);
7895
  });
7896
  return index.map(function (ind) {
7897
  return {
7898
- index: $_fdch7uk7jfuvixxb.constant(ind),
7899
- all: $_fdch7uk7jfuvixxb.constant(all)
7900
  };
7901
  });
7902
  });
@@ -7904,25 +7588,25 @@ var table = (function () {
7904
  var next = function (current, isRoot) {
7905
  var detection = detect$4(current, isRoot);
7906
  return detection.fold(function () {
7907
- return $_5ee2qxotjfuviz05.none(current);
7908
  }, function (info) {
7909
- return info.index() + 1 < info.all().length ? $_5ee2qxotjfuviz05.middle(current, info.all()[info.index() + 1]) : $_5ee2qxotjfuviz05.last(current);
7910
  });
7911
  };
7912
  var prev = function (current, isRoot) {
7913
  var detection = detect$4(current, isRoot);
7914
  return detection.fold(function () {
7915
- return $_5ee2qxotjfuviz05.none();
7916
  }, function (info) {
7917
- return info.index() - 1 >= 0 ? $_5ee2qxotjfuviz05.middle(current, info.all()[info.index() - 1]) : $_5ee2qxotjfuviz05.first(current);
7918
  });
7919
  };
7920
- var $_elg569osjfuviyzx = {
7921
  next: next,
7922
  prev: prev
7923
  };
7924
 
7925
- var adt = $_27harem7jfuviyb3.generate([
7926
  { 'before': ['element'] },
7927
  {
7928
  'on': [
@@ -7936,9 +7620,9 @@ var table = (function () {
7936
  return subject.fold(onBefore, onOn, onAfter);
7937
  };
7938
  var getStart = function (situ) {
7939
- return situ.fold($_fdch7uk7jfuvixxb.identity, $_fdch7uk7jfuvixxb.identity, $_fdch7uk7jfuvixxb.identity);
7940
  };
7941
- var $_8a4rxdovjfuviz0c = {
7942
  before: adt.before,
7943
  on: adt.on,
7944
  after: adt.after,
@@ -7946,7 +7630,7 @@ var table = (function () {
7946
  getStart: getStart
7947
  };
7948
 
7949
- var type$2 = $_27harem7jfuviyb3.generate([
7950
  { domRange: ['rng'] },
7951
  {
7952
  relative: [
@@ -7963,17 +7647,17 @@ var table = (function () {
7963
  ]
7964
  }
7965
  ]);
7966
- var range$2 = $_96oqrskbjfuvixya.immutable('start', 'soffset', 'finish', 'foffset');
7967
  var exactFromRange = function (simRange) {
7968
  return type$2.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());
7969
  };
7970
  var getStart$1 = function (selection) {
7971
  return selection.match({
7972
  domRange: function (rng) {
7973
- return $_4sdhm4kkjfuviy0e.fromDom(rng.startContainer);
7974
  },
7975
  relative: function (startSitu, finishSitu) {
7976
- return $_8a4rxdovjfuviz0c.getStart(startSitu);
7977
  },
7978
  exact: function (start, soffset, finish, foffset) {
7979
  return start;
@@ -7982,9 +7666,9 @@ var table = (function () {
7982
  };
7983
  var getWin = function (selection) {
7984
  var start = getStart$1(selection);
7985
- return $_87w3h3kmjfuviy0m.defaultView(start);
7986
  };
7987
- var $_cirtsuoujfuviz06 = {
7988
  domRange: type$2.domRange,
7989
  relative: type$2.relative,
7990
  exact: type$2.exact,
@@ -7994,7 +7678,7 @@ var table = (function () {
7994
  };
7995
 
7996
  var makeRange = function (start, soffset, finish, foffset) {
7997
- var doc = $_87w3h3kmjfuviy0m.owner(start);
7998
  var rng = doc.dom().createRange();
7999
  rng.setStart(start.dom(), soffset);
8000
  rng.setEnd(finish.dom(), foffset);
@@ -8002,14 +7686,14 @@ var table = (function () {
8002
  };
8003
  var commonAncestorContainer = function (start, soffset, finish, foffset) {
8004
  var r = makeRange(start, soffset, finish, foffset);
8005
- return $_4sdhm4kkjfuviy0e.fromDom(r.commonAncestorContainer);
8006
  };
8007
  var after$2 = function (start, soffset, finish, foffset) {
8008
  var r = makeRange(start, soffset, finish, foffset);
8009
- var same = $_g6ztqikojfuviy13.eq(start, finish) && soffset === foffset;
8010
  return r.collapsed && !same;
8011
  };
8012
- var $_uw3kloxjfuviz0o = {
8013
  after: after$2,
8014
  commonAncestorContainer: commonAncestorContainer
8015
  };
@@ -8017,12 +7701,12 @@ var table = (function () {
8017
  var fromElements = function (elements, scope) {
8018
  var doc = scope || document;
8019
  var fragment = doc.createDocumentFragment();
8020
- $_4jja6kk5jfuvixx1.each(elements, function (element) {
8021
  fragment.appendChild(element.dom());
8022
  });
8023
- return $_4sdhm4kkjfuviy0e.fromDom(fragment);
8024
  };
8025
- var $_6dn3efoyjfuviz0q = { fromElements: fromElements };
8026
 
8027
  var selectNodeContents = function (win, element) {
8028
  var rng = win.document.createRange();
@@ -8077,16 +7761,16 @@ var table = (function () {
8077
  };
8078
  var cloneFragment = function (rng) {
8079
  var fragment = rng.cloneContents();
8080
- return $_4sdhm4kkjfuviy0e.fromDom(fragment);
8081
  };
8082
  var toRect = function (rect) {
8083
  return {
8084
- left: $_fdch7uk7jfuvixxb.constant(rect.left),
8085
- top: $_fdch7uk7jfuvixxb.constant(rect.top),
8086
- right: $_fdch7uk7jfuvixxb.constant(rect.right),
8087
- bottom: $_fdch7uk7jfuvixxb.constant(rect.bottom),
8088
- width: $_fdch7uk7jfuvixxb.constant(rect.width),
8089
- height: $_fdch7uk7jfuvixxb.constant(rect.height)
8090
  };
8091
  };
8092
  var getFirstRect = function (rng) {
@@ -8101,7 +7785,7 @@ var table = (function () {
8101
  var toString = function (rng) {
8102
  return rng.toString();
8103
  };
8104
- var $_17pa03ozjfuviz0x = {
8105
  create: create$1,
8106
  replaceWith: replaceWith,
8107
  selectNodeContents: selectNodeContents,
@@ -8116,7 +7800,7 @@ var table = (function () {
8116
  toString: toString
8117
  };
8118
 
8119
- var adt$1 = $_27harem7jfuviyb3.generate([
8120
  {
8121
  ltr: [
8122
  'start',
@@ -8135,33 +7819,33 @@ var table = (function () {
8135
  }
8136
  ]);
8137
  var fromRange = function (win, type, range) {
8138
- return type($_4sdhm4kkjfuviy0e.fromDom(range.startContainer), range.startOffset, $_4sdhm4kkjfuviy0e.fromDom(range.endContainer), range.endOffset);
8139
  };
8140
  var getRanges = function (win, selection) {
8141
  return selection.match({
8142
  domRange: function (rng) {
8143
  return {
8144
- ltr: $_fdch7uk7jfuvixxb.constant(rng),
8145
  rtl: Option.none
8146
  };
8147
  },
8148
  relative: function (startSitu, finishSitu) {
8149
  return {
8150
- ltr: $_eprzwrkujfuviy1p.cached(function () {
8151
- return $_17pa03ozjfuviz0x.relativeToNative(win, startSitu, finishSitu);
8152
  }),
8153
- rtl: $_eprzwrkujfuviy1p.cached(function () {
8154
- return Option.some($_17pa03ozjfuviz0x.relativeToNative(win, finishSitu, startSitu));
8155
  })
8156
  };
8157
  },
8158
  exact: function (start, soffset, finish, foffset) {
8159
  return {
8160
- ltr: $_eprzwrkujfuviy1p.cached(function () {
8161
- return $_17pa03ozjfuviz0x.exactToNative(win, start, soffset, finish, foffset);
8162
  }),
8163
- rtl: $_eprzwrkujfuviy1p.cached(function () {
8164
- return Option.some($_17pa03ozjfuviz0x.exactToNative(win, finish, foffset, start, soffset));
8165
  })
8166
  };
8167
  }
@@ -8174,7 +7858,7 @@ var table = (function () {
8174
  return rev.collapsed === false;
8175
  });
8176
  return reversed.map(function (rev) {
8177
- return adt$1.rtl($_4sdhm4kkjfuviy0e.fromDom(rev.endContainer), rev.endOffset, $_4sdhm4kkjfuviy0e.fromDom(rev.startContainer), rev.startOffset);
8178
  }).getOrThunk(function () {
8179
  return fromRange(win, adt$1.ltr, rng);
8180
  });
@@ -8203,7 +7887,7 @@ var table = (function () {
8203
  }
8204
  });
8205
  };
8206
- var $_6ufympp0jfuviz14 = {
8207
  ltr: adt$1.ltr,
8208
  rtl: adt$1.rtl,
8209
  diagnose: diagnose,
@@ -8219,11 +7903,12 @@ var table = (function () {
8219
  for (var i = 1; i < length; i++) {
8220
  var rect = rectForOffset(i);
8221
  var curDeltaX = Math.abs(x - rect.left);
8222
- if (y > rect.bottom) {
8223
- } else if (y < rect.top || curDeltaX > xDelta) {
8224
- return i - 1;
8225
- } else {
8226
- xDelta = curDeltaX;
 
8227
  }
8228
  }
8229
  return 0;
@@ -8231,7 +7916,7 @@ var table = (function () {
8231
  var inRect = function (rect, x, y) {
8232
  return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
8233
  };
8234
- var $_69qd6cp3jfuviz1r = {
8235
  inRect: inRect,
8236
  searchForPoint: searchForPoint
8237
  };
@@ -8247,33 +7932,33 @@ var table = (function () {
8247
  var r = rangeForOffset(offset);
8248
  return r.getBoundingClientRect();
8249
  };
8250
- var length = $_cvagqflnjfuviy5y.get(textnode).length;
8251
- var offset = $_69qd6cp3jfuviz1r.searchForPoint(rectForOffset, x, y, rect.right, length);
8252
  return rangeForOffset(offset);
8253
  };
8254
  var locate = function (doc, node, x, y) {
8255
  var r = doc.dom().createRange();
8256
  r.selectNode(node.dom());
8257
  var rects = r.getClientRects();
8258
- var foundRect = $_6i1r9dmvjfuviygw.findMap(rects, function (rect) {
8259
- return $_69qd6cp3jfuviz1r.inRect(rect, x, y) ? Option.some(rect) : Option.none();
8260
  });
8261
  return foundRect.map(function (rect) {
8262
  return locateOffset(doc, node, x, y, rect);
8263
  });
8264
  };
8265
- var $_g1jcqdp4jfuviz1t = { locate: locate };
8266
 
8267
  var searchInChildren = function (doc, node, x, y) {
8268
  var r = doc.dom().createRange();
8269
- var nodes = $_87w3h3kmjfuviy0m.children(node);
8270
- return $_6i1r9dmvjfuviygw.findMap(nodes, function (n) {
8271
  r.selectNode(n.dom());
8272
- return $_69qd6cp3jfuviz1r.inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();
8273
  });
8274
  };
8275
  var locateNode = function (doc, node, x, y) {
8276
- var locator = $_6mcqmml6jfuviy2u.isText(node) ? $_g1jcqdp4jfuviz1t.locate : searchInChildren;
8277
  return locator(doc, node, x, y);
8278
  };
8279
  var locate$1 = function (doc, node, x, y) {
@@ -8284,7 +7969,7 @@ var table = (function () {
8284
  var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));
8285
  return locateNode(doc, node, boundedX, boundedY);
8286
  };
8287
- var $_7hieojp2jfuviz1k = { locate: locate$1 };
8288
 
8289
  var COLLAPSE_TO_LEFT = true;
8290
  var COLLAPSE_TO_RIGHT = false;
@@ -8302,7 +7987,7 @@ var table = (function () {
8302
  cursorRange.selectNode(node.dom());
8303
  var rect = cursorRange.getBoundingClientRect();
8304
  var collapseDirection = getCollapseDirection(rect, x);
8305
- var f = collapseDirection === COLLAPSE_TO_LEFT ? $_dsfijblljfuviy5q.first : $_dsfijblljfuviy5q.last;
8306
  return f(node).map(function (target) {
8307
  return createCollapsedNode(doc, target, collapseDirection);
8308
  });
@@ -8313,10 +7998,10 @@ var table = (function () {
8313
  return Option.some(createCollapsedNode(doc, node, collapseDirection));
8314
  };
8315
  var search = function (doc, node, x) {
8316
- var f = $_87w3h3kmjfuviy0m.children(node).length === 0 ? locateInEmpty : locateInElement;
8317
  return f(doc, node, x);
8318
  };
8319
- var $_f8hpchp5jfuviz1z = { search: search };
8320
 
8321
  var caretPositionFromPoint = function (doc, x, y) {
8322
  return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {
@@ -8337,75 +8022,75 @@ var table = (function () {
8337
  var rect = r.getBoundingClientRect();
8338
  var boundedX = Math.max(rect.left, Math.min(rect.right, x));
8339
  var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));
8340
- return $_7hieojp2jfuviz1k.locate(doc, node, boundedX, boundedY);
8341
  };
8342
  var searchFromPoint = function (doc, x, y) {
8343
- return $_4sdhm4kkjfuviy0e.fromPoint(doc, x, y).bind(function (elem) {
8344
  var fallback = function () {
8345
- return $_f8hpchp5jfuviz1z.search(doc, elem, x);
8346
  };
8347
- return $_87w3h3kmjfuviy0m.children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);
8348
  });
8349
  };
8350
  var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;
8351
  var fromPoint$1 = function (win, x, y) {
8352
- var doc = $_4sdhm4kkjfuviy0e.fromDom(win.document);
8353
  return availableSearch(doc, x, y).map(function (rng) {
8354
- return $_cirtsuoujfuviz06.range($_4sdhm4kkjfuviy0e.fromDom(rng.startContainer), rng.startOffset, $_4sdhm4kkjfuviy0e.fromDom(rng.endContainer), rng.endOffset);
8355
  });
8356
  };
8357
- var $_3rwbmap1jfuviz1g = { fromPoint: fromPoint$1 };
8358
 
8359
  var withinContainer = function (win, ancestor, outerRange, selector) {
8360
- var innerRange = $_17pa03ozjfuviz0x.create(win);
8361
- var self = $_aphf8fkjjfuviy04.is(ancestor, selector) ? [ancestor] : [];
8362
- var elements = self.concat($_a3hs1bl7jfuviy2w.descendants(ancestor, selector));
8363
- return $_4jja6kk5jfuvixx1.filter(elements, function (elem) {
8364
- $_17pa03ozjfuviz0x.selectNodeContentsUsing(innerRange, elem);
8365
- return $_17pa03ozjfuviz0x.isWithin(outerRange, innerRange);
8366
  });
8367
  };
8368
  var find$3 = function (win, selection, selector) {
8369
- var outerRange = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8370
- var ancestor = $_4sdhm4kkjfuviy0e.fromDom(outerRange.commonAncestorContainer);
8371
- return $_6mcqmml6jfuviy2u.isElement(ancestor) ? withinContainer(win, ancestor, outerRange, selector) : [];
8372
  };
8373
- var $_frv4mfp6jfuviz24 = { find: find$3 };
8374
 
8375
  var beforeSpecial = function (element, offset) {
8376
- var name = $_6mcqmml6jfuviy2u.name(element);
8377
  if ('input' === name)
8378
- return $_8a4rxdovjfuviz0c.after(element);
8379
- else if (!$_4jja6kk5jfuvixx1.contains([
8380
  'br',
8381
  'img'
8382
  ], name))
8383
- return $_8a4rxdovjfuviz0c.on(element, offset);
8384
  else
8385
- return offset === 0 ? $_8a4rxdovjfuviz0c.before(element) : $_8a4rxdovjfuviz0c.after(element);
8386
  };
8387
  var preprocessRelative = function (startSitu, finishSitu) {
8388
- var start = startSitu.fold($_8a4rxdovjfuviz0c.before, beforeSpecial, $_8a4rxdovjfuviz0c.after);
8389
- var finish = finishSitu.fold($_8a4rxdovjfuviz0c.before, beforeSpecial, $_8a4rxdovjfuviz0c.after);
8390
- return $_cirtsuoujfuviz06.relative(start, finish);
8391
  };
8392
  var preprocessExact = function (start, soffset, finish, foffset) {
8393
  var startSitu = beforeSpecial(start, soffset);
8394
  var finishSitu = beforeSpecial(finish, foffset);
8395
- return $_cirtsuoujfuviz06.relative(startSitu, finishSitu);
8396
  };
8397
  var preprocess = function (selection) {
8398
  return selection.match({
8399
  domRange: function (rng) {
8400
- var start = $_4sdhm4kkjfuviy0e.fromDom(rng.startContainer);
8401
- var finish = $_4sdhm4kkjfuviy0e.fromDom(rng.endContainer);
8402
  return preprocessExact(start, rng.startOffset, finish, rng.endOffset);
8403
  },
8404
  relative: preprocessRelative,
8405
  exact: preprocessExact
8406
  });
8407
  };
8408
- var $_9fuk5hp7jfuviz29 = {
8409
  beforeSpecial: beforeSpecial,
8410
  preprocess: preprocess,
8411
  preprocessRelative: preprocessRelative,
@@ -8419,14 +8104,18 @@ var table = (function () {
8419
  });
8420
  };
8421
  var doSetRange = function (win, start, soffset, finish, foffset) {
8422
- var rng = $_17pa03ozjfuviz0x.exactToNative(win, start, soffset, finish, foffset);
8423
  doSetNativeRange(win, rng);
8424
  };
8425
  var findWithin = function (win, selection, selector) {
8426
- return $_frv4mfp6jfuviz24.find(win, selection, selector);
 
 
 
 
8427
  };
8428
  var setRangeFromRelative = function (win, relative) {
8429
- return $_6ufympp0jfuviz14.diagnose(win, relative).match({
8430
  ltr: function (start, soffset, finish, foffset) {
8431
  doSetRange(win, start, soffset, finish, foffset);
8432
  },
@@ -8435,8 +8124,11 @@ var table = (function () {
8435
  if (selection.setBaseAndExtent) {
8436
  selection.setBaseAndExtent(start.dom(), soffset, finish.dom(), foffset);
8437
  } else if (selection.extend) {
8438
- selection.collapse(start.dom(), soffset);
8439
- selection.extend(finish.dom(), foffset);
 
 
 
8440
  } else {
8441
  doSetRange(win, finish, foffset, start, soffset);
8442
  }
@@ -8444,20 +8136,20 @@ var table = (function () {
8444
  });
8445
  };
8446
  var setExact = function (win, start, soffset, finish, foffset) {
8447
- var relative = $_9fuk5hp7jfuviz29.preprocessExact(start, soffset, finish, foffset);
8448
  setRangeFromRelative(win, relative);
8449
  };
8450
  var setRelative = function (win, startSitu, finishSitu) {
8451
- var relative = $_9fuk5hp7jfuviz29.preprocessRelative(startSitu, finishSitu);
8452
  setRangeFromRelative(win, relative);
8453
  };
8454
  var toNative = function (selection) {
8455
- var win = $_cirtsuoujfuviz06.getWin(selection).dom();
8456
  var getDomRange = function (start, soffset, finish, foffset) {
8457
- return $_17pa03ozjfuviz0x.exactToNative(win, start, soffset, finish, foffset);
8458
  };
8459
- var filtered = $_9fuk5hp7jfuviz29.preprocess(selection);
8460
- return $_6ufympp0jfuviz14.diagnose(win, filtered).match({
8461
  ltr: getDomRange,
8462
  rtl: getDomRange
8463
  });
@@ -8466,69 +8158,70 @@ var table = (function () {
8466
  if (selection.rangeCount > 0) {
8467
  var firstRng = selection.getRangeAt(0);
8468
  var lastRng = selection.getRangeAt(selection.rangeCount - 1);
8469
- return Option.some($_cirtsuoujfuviz06.range($_4sdhm4kkjfuviy0e.fromDom(firstRng.startContainer), firstRng.startOffset, $_4sdhm4kkjfuviy0e.fromDom(lastRng.endContainer), lastRng.endOffset));
8470
  } else {
8471
  return Option.none();
8472
  }
8473
  };
8474
  var doGetExact = function (selection) {
8475
- var anchorNode = $_4sdhm4kkjfuviy0e.fromDom(selection.anchorNode);
8476
- var focusNode = $_4sdhm4kkjfuviy0e.fromDom(selection.focusNode);
8477
- return $_uw3kloxjfuviz0o.after(anchorNode, selection.anchorOffset, focusNode, selection.focusOffset) ? Option.some($_cirtsuoujfuviz06.range($_4sdhm4kkjfuviy0e.fromDom(selection.anchorNode), selection.anchorOffset, $_4sdhm4kkjfuviy0e.fromDom(selection.focusNode), selection.focusOffset)) : readRange(selection);
8478
  };
8479
  var setToElement = function (win, element) {
8480
- var rng = $_17pa03ozjfuviz0x.selectNodeContents(win, element);
8481
  doSetNativeRange(win, rng);
8482
  };
8483
  var forElement = function (win, element) {
8484
- var rng = $_17pa03ozjfuviz0x.selectNodeContents(win, element);
8485
- return $_cirtsuoujfuviz06.range($_4sdhm4kkjfuviy0e.fromDom(rng.startContainer), rng.startOffset, $_4sdhm4kkjfuviy0e.fromDom(rng.endContainer), rng.endOffset);
8486
  };
8487
  var getExact = function (win) {
8488
- var selection = win.getSelection();
8489
- return selection.rangeCount > 0 ? doGetExact(selection) : Option.none();
 
8490
  };
8491
  var get$9 = function (win) {
8492
  return getExact(win).map(function (range) {
8493
- return $_cirtsuoujfuviz06.exact(range.start(), range.soffset(), range.finish(), range.foffset());
8494
  });
8495
  };
8496
  var getFirstRect$1 = function (win, selection) {
8497
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8498
- return $_17pa03ozjfuviz0x.getFirstRect(rng);
8499
  };
8500
  var getBounds$2 = function (win, selection) {
8501
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8502
- return $_17pa03ozjfuviz0x.getBounds(rng);
8503
  };
8504
  var getAtPoint = function (win, x, y) {
8505
- return $_3rwbmap1jfuviz1g.fromPoint(win, x, y);
8506
  };
8507
  var getAsString = function (win, selection) {
8508
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8509
- return $_17pa03ozjfuviz0x.toString(rng);
8510
  };
8511
  var clear$1 = function (win) {
8512
  var selection = win.getSelection();
8513
  selection.removeAllRanges();
8514
  };
8515
  var clone$2 = function (win, selection) {
8516
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8517
- return $_17pa03ozjfuviz0x.cloneFragment(rng);
8518
  };
8519
  var replace$1 = function (win, selection, elements) {
8520
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8521
- var fragment = $_6dn3efoyjfuviz0q.fromElements(elements, win.document);
8522
- $_17pa03ozjfuviz0x.replaceWith(rng, fragment);
8523
  };
8524
  var deleteAt = function (win, selection) {
8525
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8526
- $_17pa03ozjfuviz0x.deleteContents(rng);
8527
  };
8528
  var isCollapsed = function (start, soffset, finish, foffset) {
8529
- return $_g6ztqikojfuviy13.eq(start, finish) && soffset === foffset;
8530
  };
8531
- var $_3z0lbzowjfuviz0i = {
8532
  setExact: setExact,
8533
  getExact: getExact,
8534
  get: get$9,
@@ -8548,34 +8241,34 @@ var table = (function () {
8548
  isCollapsed: isCollapsed
8549
  };
8550
 
8551
- var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');
8552
 
8553
  var forward = function (editor, isRoot, cell, lazyWire) {
8554
- return go(editor, isRoot, $_elg569osjfuviyzx.next(cell), lazyWire);
8555
  };
8556
  var backward = function (editor, isRoot, cell, lazyWire) {
8557
- return go(editor, isRoot, $_elg569osjfuviyzx.prev(cell), lazyWire);
8558
  };
8559
  var getCellFirstCursorPosition = function (editor, cell) {
8560
- var selection = $_cirtsuoujfuviz06.exact(cell, 0, cell, 0);
8561
- return $_3z0lbzowjfuviz0i.toNative(selection);
8562
  };
8563
  var getNewRowCursorPosition = function (editor, table) {
8564
- var rows = $_a3hs1bl7jfuviy2w.descendants(table, 'tr');
8565
- return $_4jja6kk5jfuvixx1.last(rows).bind(function (last) {
8566
- return $_26gnp6lajfuviy35.descendant(last, 'td,th').map(function (first) {
8567
  return getCellFirstCursorPosition(editor, first);
8568
  });
8569
  });
8570
  };
8571
  var go = function (editor, isRoot, cell, actions, lazyWire) {
8572
  return cell.fold(Option.none, Option.none, function (current, next) {
8573
- return $_dsfijblljfuviy5q.first(next).map(function (cell) {
8574
  return getCellFirstCursorPosition(editor, cell);
8575
  });
8576
  }, function (current) {
8577
- return $_dmqxswkhjfuvixyz.table(current, isRoot).bind(function (table) {
8578
- var targets = $_fgxiq3lqjfuviy6a.noMenu(current);
8579
  editor.undoManager.transact(function () {
8580
  actions.insertRowsAfter(table, targets);
8581
  });
@@ -8589,30 +8282,30 @@ var table = (function () {
8589
  'dl'
8590
  ];
8591
  var handle$1 = function (event, editor, actions, lazyWire) {
8592
- if (event.keyCode === global$4.TAB) {
8593
- var body_1 = $_aheu0fnnjfuviymj.getBody(editor);
8594
  var isRoot_1 = function (element) {
8595
- var name = $_6mcqmml6jfuviy2u.name(element);
8596
- return $_g6ztqikojfuviy13.eq(element, body_1) || $_4jja6kk5jfuvixx1.contains(rootElements, name);
8597
  };
8598
  var rng = editor.selection.getRng();
8599
  if (rng.collapsed) {
8600
- var start = $_4sdhm4kkjfuviy0e.fromDom(rng.startContainer);
8601
- $_dmqxswkhjfuvixyz.cell(start, isRoot_1).each(function (cell) {
8602
  event.preventDefault();
8603
  var navigation = event.shiftKey ? backward : forward;
8604
  var rng = navigation(editor, isRoot_1, cell, actions, lazyWire);
8605
- rng.each(function (range) {
8606
- editor.selection.setRng(range);
8607
  });
8608
  });
8609
  }
8610
  }
8611
  };
8612
- var $_flm1p1orjfuviyzd = { handle: handle$1 };
8613
 
8614
- var response = $_96oqrskbjfuvixya.immutable('selection', 'kill');
8615
- var $_8nrj5cpbjfuviz3g = { response: response };
8616
 
8617
  var isKey = function (key) {
8618
  return function (keycode) {
@@ -8624,7 +8317,7 @@ var table = (function () {
8624
  var isNavigation = function (keycode) {
8625
  return keycode >= 37 && keycode <= 40;
8626
  };
8627
- var $_668mt4pcjfuviz3j = {
8628
  ltr: {
8629
  isBackward: isKey(37),
8630
  isForward: isKey(39)
@@ -8639,31 +8332,31 @@ var table = (function () {
8639
  };
8640
 
8641
  var convertToRange = function (win, selection) {
8642
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, selection);
8643
  return {
8644
- start: $_fdch7uk7jfuvixxb.constant($_4sdhm4kkjfuviy0e.fromDom(rng.startContainer)),
8645
- soffset: $_fdch7uk7jfuvixxb.constant(rng.startOffset),
8646
- finish: $_fdch7uk7jfuvixxb.constant($_4sdhm4kkjfuviy0e.fromDom(rng.endContainer)),
8647
- foffset: $_fdch7uk7jfuvixxb.constant(rng.endOffset)
8648
  };
8649
  };
8650
  var makeSitus = function (start, soffset, finish, foffset) {
8651
  return {
8652
- start: $_fdch7uk7jfuvixxb.constant($_8a4rxdovjfuviz0c.on(start, soffset)),
8653
- finish: $_fdch7uk7jfuvixxb.constant($_8a4rxdovjfuviz0c.on(finish, foffset))
8654
  };
8655
  };
8656
- var $_ehlw1upejfuviz45 = {
8657
  convertToRange: convertToRange,
8658
  makeSitus: makeSitus
8659
  };
8660
 
8661
- var isSafari = $_8chrc7ktjfuviy1m.detect().browser.isSafari();
8662
  var get$10 = function (_doc) {
8663
  var doc = _doc !== undefined ? _doc.dom() : document;
8664
  var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
8665
  var y = doc.body.scrollTop || doc.documentElement.scrollTop;
8666
- return r(x, y);
8667
  };
8668
  var to = function (x, y, _doc) {
8669
  var doc = _doc !== undefined ? _doc.dom() : document;
@@ -8676,8 +8369,8 @@ var table = (function () {
8676
  win.scrollBy(x, y);
8677
  };
8678
  var setToElement$1 = function (win, element) {
8679
- var pos = $_6ti42xmijfuviydp.absolute(element);
8680
- var doc = $_4sdhm4kkjfuviy0e.fromDom(win.document);
8681
  to(pos.left(), pos.top(), doc);
8682
  };
8683
  var preserve$1 = function (doc, f) {
@@ -8705,7 +8398,7 @@ var table = (function () {
8705
  };
8706
  };
8707
  var intoView = function (element, alignToTop) {
8708
- if (isSafari && $_13kw1fk8jfuvixxd.isFunction(element.dom().scrollIntoViewIfNeeded)) {
8709
  element.dom().scrollIntoViewIfNeeded(false);
8710
  } else {
8711
  element.dom().scrollIntoView(alignToTop);
@@ -8721,13 +8414,13 @@ var table = (function () {
8721
  }
8722
  };
8723
  var scrollBarWidth = function () {
8724
- var scrollDiv = $_4sdhm4kkjfuviy0e.fromHtml('<div style="width: 100px; height: 100px; overflow: scroll; position: absolute; top: -9999px;"></div>');
8725
- $_5zcsfmlgjfuviy4g.after($_43dxxcl9jfuviy31.body(), scrollDiv);
8726
  var w = scrollDiv.dom().offsetWidth - scrollDiv.dom().clientWidth;
8727
- $_5ud3colhjfuviy4l.remove(scrollDiv);
8728
  return w;
8729
  };
8730
- var $_49zbyzpfjfuviz4g = {
8731
  get: get$10,
8732
  to: to,
8733
  by: by,
@@ -8741,55 +8434,55 @@ var table = (function () {
8741
 
8742
  function WindowBridge (win) {
8743
  var elementFromPoint = function (x, y) {
8744
- return Option.from(win.document.elementFromPoint(x, y)).map($_4sdhm4kkjfuviy0e.fromDom);
8745
  };
8746
  var getRect = function (element) {
8747
  return element.dom().getBoundingClientRect();
8748
  };
8749
  var getRangedRect = function (start, soffset, finish, foffset) {
8750
- var sel = $_cirtsuoujfuviz06.exact(start, soffset, finish, foffset);
8751
- return $_3z0lbzowjfuviz0i.getFirstRect(win, sel).map(function (structRect) {
8752
- return $_afb9m6kajfuvixy8.map(structRect, $_fdch7uk7jfuvixxb.apply);
8753
  });
8754
  };
8755
  var getSelection = function () {
8756
- return $_3z0lbzowjfuviz0i.get(win).map(function (exactAdt) {
8757
- return $_ehlw1upejfuviz45.convertToRange(win, exactAdt);
8758
  });
8759
  };
8760
  var fromSitus = function (situs) {
8761
- var relative = $_cirtsuoujfuviz06.relative(situs.start(), situs.finish());
8762
- return $_ehlw1upejfuviz45.convertToRange(win, relative);
8763
  };
8764
  var situsFromPoint = function (x, y) {
8765
- return $_3z0lbzowjfuviz0i.getAtPoint(win, x, y).map(function (exact) {
8766
  return {
8767
- start: $_fdch7uk7jfuvixxb.constant($_8a4rxdovjfuviz0c.on(exact.start(), exact.soffset())),
8768
- finish: $_fdch7uk7jfuvixxb.constant($_8a4rxdovjfuviz0c.on(exact.finish(), exact.foffset()))
8769
  };
8770
  });
8771
  };
8772
  var clearSelection = function () {
8773
- $_3z0lbzowjfuviz0i.clear(win);
8774
  };
8775
  var selectContents = function (element) {
8776
- $_3z0lbzowjfuviz0i.setToElement(win, element);
8777
  };
8778
  var setSelection = function (sel) {
8779
- $_3z0lbzowjfuviz0i.setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());
8780
  };
8781
  var setRelativeSelection = function (start, finish) {
8782
- $_3z0lbzowjfuviz0i.setRelative(win, start, finish);
8783
  };
8784
  var getInnerHeight = function () {
8785
  return win.innerHeight;
8786
  };
8787
  var getScrollY = function () {
8788
- var pos = $_49zbyzpfjfuviz4g.get($_4sdhm4kkjfuviy0e.fromDom(win.document));
8789
  return pos.top();
8790
  };
8791
  var scrollBy = function (x, y) {
8792
- $_49zbyzpfjfuviz4g.by(x, y, $_4sdhm4kkjfuviy0e.fromDom(win.document));
8793
  };
8794
  return {
8795
  elementFromPoint: elementFromPoint,
@@ -8809,9 +8502,9 @@ var table = (function () {
8809
  }
8810
 
8811
  var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {
8812
- if (!($_g6ztqikojfuviy13.eq(start, finish) && soffset === foffset)) {
8813
- return $_26gnp6lajfuviy35.closest(start, 'td,th', isRoot).bind(function (s) {
8814
- return $_26gnp6lajfuviy35.closest(finish, 'td,th', isRoot).bind(function (f) {
8815
  return detect$5(container, isRoot, s, f, selectRange);
8816
  });
8817
  });
@@ -8820,12 +8513,12 @@ var table = (function () {
8820
  }
8821
  };
8822
  var detect$5 = function (container, isRoot, start, finish, selectRange) {
8823
- if (!$_g6ztqikojfuviy13.eq(start, finish)) {
8824
- return $_8vwxtkltjfuviy76.identify(start, finish, isRoot).bind(function (cellSel) {
8825
  var boxes = cellSel.boxes().getOr([]);
8826
  if (boxes.length > 0) {
8827
  selectRange(container, boxes, cellSel.start(), cellSel.finish());
8828
- return Option.some($_8nrj5cpbjfuviz3g.response(Option.some($_ehlw1upejfuviz45.makeSitus(start, 0, start, $_cj2m48lmjfuviy5u.getEnd(start))), true));
8829
  } else {
8830
  return Option.none();
8831
  }
@@ -8840,15 +8533,15 @@ var table = (function () {
8840
  annotations.selectRange(container, newSels.boxes(), newSels.start(), newSels.finish());
8841
  return newSels.boxes();
8842
  };
8843
- return $_8vwxtkltjfuviy76.shiftSelection(selected, rows, columns, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(updateSelection);
8844
  };
8845
- var $_9sykywpgjfuviz4r = {
8846
  sync: sync,
8847
  detect: detect$5,
8848
  update: update
8849
  };
8850
 
8851
- var nu$3 = $_96oqrskbjfuvixya.immutableBag([
8852
  'left',
8853
  'top',
8854
  'right',
@@ -8905,7 +8598,7 @@ var table = (function () {
8905
  var toString$1 = function (caret) {
8906
  return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';
8907
  };
8908
- var $_an24q2pjjfuviz6a = {
8909
  nu: nu$3,
8910
  moveUp: moveUp,
8911
  moveDown: moveDown,
@@ -8918,14 +8611,14 @@ var table = (function () {
8918
  };
8919
 
8920
  var getPartialBox = function (bridge, element, offset) {
8921
- if (offset >= 0 && offset < $_cj2m48lmjfuviy5u.getEnd(element))
8922
  return bridge.getRangedRect(element, offset, element, offset + 1);
8923
  else if (offset > 0)
8924
  return bridge.getRangedRect(element, offset - 1, element, offset);
8925
  return Option.none();
8926
  };
8927
  var toCaret = function (rect) {
8928
- return $_an24q2pjjfuviz6a.nu({
8929
  left: rect.left,
8930
  top: rect.top,
8931
  right: rect.right,
@@ -8936,27 +8629,27 @@ var table = (function () {
8936
  return Option.some(bridge.getRect(element));
8937
  };
8938
  var getBoxAt = function (bridge, element, offset) {
8939
- if ($_6mcqmml6jfuviy2u.isElement(element))
8940
  return getElemBox(bridge, element).map(toCaret);
8941
- else if ($_6mcqmml6jfuviy2u.isText(element))
8942
  return getPartialBox(bridge, element, offset).map(toCaret);
8943
  else
8944
  return Option.none();
8945
  };
8946
  var getEntireBox = function (bridge, element) {
8947
- if ($_6mcqmml6jfuviy2u.isElement(element))
8948
  return getElemBox(bridge, element).map(toCaret);
8949
- else if ($_6mcqmml6jfuviy2u.isText(element))
8950
- return bridge.getRangedRect(element, 0, element, $_cj2m48lmjfuviy5u.getEnd(element)).map(toCaret);
8951
  else
8952
  return Option.none();
8953
  };
8954
- var $_3hp2alpkjfuviz6e = {
8955
  getBoxAt: getBoxAt,
8956
  getEntireBox: getEntireBox
8957
  };
8958
 
8959
- var traverse = $_96oqrskbjfuvixya.immutable('item', 'mode');
8960
  var backtrack = function (universe, item, direction, _transition) {
8961
  var transition = _transition !== undefined ? _transition : sidestep;
8962
  return universe.property().parent(item).map(function (p) {
@@ -8996,7 +8689,7 @@ var table = (function () {
8996
  ];
8997
  var go$1 = function (universe, item, mode, direction, rules) {
8998
  var rules = rules !== undefined ? rules : successors;
8999
- var ruleOpt = $_4jja6kk5jfuvixx1.find(rules, function (succ) {
9000
  return succ.current === mode;
9001
  });
9002
  return ruleOpt.bind(function (rule) {
@@ -9007,7 +8700,7 @@ var table = (function () {
9007
  });
9008
  });
9009
  };
9010
- var $_4n5pkzppjfuviz7k = {
9011
  backtrack: backtrack,
9012
  sidestep: sidestep,
9013
  advance: advance,
@@ -9038,13 +8731,13 @@ var table = (function () {
9038
  first: first
9039
  };
9040
  };
9041
- var $_fchu6fpqjfuviz7s = {
9042
  left: left$1,
9043
  right: right$1
9044
  };
9045
 
9046
  var hone = function (universe, item, predicate, mode, direction, isRoot) {
9047
- var next = $_4n5pkzppjfuviz7k.go(universe, item, mode, direction);
9048
  return next.bind(function (n) {
9049
  if (isRoot(n.item()))
9050
  return Option.none();
@@ -9053,12 +8746,12 @@ var table = (function () {
9053
  });
9054
  };
9055
  var left$2 = function (universe, item, predicate, isRoot) {
9056
- return hone(universe, item, predicate, $_4n5pkzppjfuviz7k.sidestep, $_fchu6fpqjfuviz7s.left(), isRoot);
9057
  };
9058
  var right$2 = function (universe, item, predicate, isRoot) {
9059
- return hone(universe, item, predicate, $_4n5pkzppjfuviz7k.sidestep, $_fchu6fpqjfuviz7s.right(), isRoot);
9060
  };
9061
- var $_73mh4upojfuviz7g = {
9062
  left: left$2,
9063
  right: right$2
9064
  };
@@ -9067,61 +8760,61 @@ var table = (function () {
9067
  return universe.property().children(element).length === 0;
9068
  };
9069
  var before$2 = function (universe, item, isRoot) {
9070
- return seekLeft(universe, item, $_fdch7uk7jfuvixxb.curry(isLeaf, universe), isRoot);
9071
  };
9072
  var after$3 = function (universe, item, isRoot) {
9073
- return seekRight(universe, item, $_fdch7uk7jfuvixxb.curry(isLeaf, universe), isRoot);
9074
  };
9075
  var seekLeft = function (universe, item, predicate, isRoot) {
9076
- return $_73mh4upojfuviz7g.left(universe, item, predicate, isRoot);
9077
  };
9078
  var seekRight = function (universe, item, predicate, isRoot) {
9079
- return $_73mh4upojfuviz7g.right(universe, item, predicate, isRoot);
9080
  };
9081
  var walkers = function () {
9082
  return {
9083
- left: $_fchu6fpqjfuviz7s.left,
9084
- right: $_fchu6fpqjfuviz7s.right
9085
  };
9086
  };
9087
  var walk = function (universe, item, mode, direction, _rules) {
9088
- return $_4n5pkzppjfuviz7k.go(universe, item, mode, direction, _rules);
9089
  };
9090
- var $_1i6gx7pnjfuviz7c = {
9091
  before: before$2,
9092
  after: after$3,
9093
  seekLeft: seekLeft,
9094
  seekRight: seekRight,
9095
  walkers: walkers,
9096
  walk: walk,
9097
- backtrack: $_4n5pkzppjfuviz7k.backtrack,
9098
- sidestep: $_4n5pkzppjfuviz7k.sidestep,
9099
- advance: $_4n5pkzppjfuviz7k.advance
9100
  };
9101
 
9102
  var universe$2 = DomUniverse();
9103
  var gather = function (element, prune, transform) {
9104
- return $_1i6gx7pnjfuviz7c.gather(universe$2, element, prune, transform);
9105
  };
9106
  var before$3 = function (element, isRoot) {
9107
- return $_1i6gx7pnjfuviz7c.before(universe$2, element, isRoot);
9108
  };
9109
  var after$4 = function (element, isRoot) {
9110
- return $_1i6gx7pnjfuviz7c.after(universe$2, element, isRoot);
9111
  };
9112
  var seekLeft$1 = function (element, predicate, isRoot) {
9113
- return $_1i6gx7pnjfuviz7c.seekLeft(universe$2, element, predicate, isRoot);
9114
  };
9115
  var seekRight$1 = function (element, predicate, isRoot) {
9116
- return $_1i6gx7pnjfuviz7c.seekRight(universe$2, element, predicate, isRoot);
9117
  };
9118
  var walkers$1 = function () {
9119
- return $_1i6gx7pnjfuviz7c.walkers();
9120
  };
9121
  var walk$1 = function (item, mode, direction, _rules) {
9122
- return $_1i6gx7pnjfuviz7c.walk(universe$2, item, mode, direction, _rules);
9123
  };
9124
- var $_9y9zempmjfuviz78 = {
9125
  gather: gather,
9126
  before: before$3,
9127
  after: after$4,
@@ -9133,7 +8826,7 @@ var table = (function () {
9133
 
9134
  var JUMP_SIZE = 5;
9135
  var NUM_RETRIES = 100;
9136
- var adt$2 = $_27harem7jfuviyb3.generate([
9137
  { 'none': [] },
9138
  { 'retry': ['caret'] }
9139
  ]);
@@ -9141,49 +8834,49 @@ var table = (function () {
9141
  return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();
9142
  };
9143
  var inOutsideBlock = function (bridge, element, caret) {
9144
- return $_eg4f87lbjfuviy37.closest(element, $_fkl6wvmrjfuviyg2.isBlock).fold($_fdch7uk7jfuvixxb.constant(false), function (cell) {
9145
- return $_3hp2alpkjfuviz6e.getEntireBox(bridge, cell).exists(function (box) {
9146
  return isOutside(caret, box);
9147
  });
9148
  });
9149
  };
9150
  var adjustDown = function (bridge, element, guessBox, original, caret) {
9151
- var lowerCaret = $_an24q2pjjfuviz6a.moveDown(caret, JUMP_SIZE);
9152
  if (Math.abs(guessBox.bottom() - original.bottom()) < 1)
9153
  return adt$2.retry(lowerCaret);
9154
  else if (guessBox.top() > caret.bottom())
9155
  return adt$2.retry(lowerCaret);
9156
  else if (guessBox.top() === caret.bottom())
9157
- return adt$2.retry($_an24q2pjjfuviz6a.moveDown(caret, 1));
9158
  else
9159
- return inOutsideBlock(bridge, element, caret) ? adt$2.retry($_an24q2pjjfuviz6a.translate(lowerCaret, JUMP_SIZE, 0)) : adt$2.none();
9160
  };
9161
  var adjustUp = function (bridge, element, guessBox, original, caret) {
9162
- var higherCaret = $_an24q2pjjfuviz6a.moveUp(caret, JUMP_SIZE);
9163
  if (Math.abs(guessBox.top() - original.top()) < 1)
9164
  return adt$2.retry(higherCaret);
9165
  else if (guessBox.bottom() < caret.top())
9166
  return adt$2.retry(higherCaret);
9167
  else if (guessBox.bottom() === caret.top())
9168
- return adt$2.retry($_an24q2pjjfuviz6a.moveUp(caret, 1));
9169
  else
9170
- return inOutsideBlock(bridge, element, caret) ? adt$2.retry($_an24q2pjjfuviz6a.translate(higherCaret, JUMP_SIZE, 0)) : adt$2.none();
9171
  };
9172
  var upMovement = {
9173
- point: $_an24q2pjjfuviz6a.getTop,
9174
  adjuster: adjustUp,
9175
- move: $_an24q2pjjfuviz6a.moveUp,
9176
- gather: $_9y9zempmjfuviz78.before
9177
  };
9178
  var downMovement = {
9179
- point: $_an24q2pjjfuviz6a.getBottom,
9180
  adjuster: adjustDown,
9181
- move: $_an24q2pjjfuviz6a.moveDown,
9182
- gather: $_9y9zempmjfuviz78.after
9183
  };
9184
  var isAtTable = function (bridge, x, y) {
9185
  return bridge.elementFromPoint(x, y).filter(function (elm) {
9186
- return $_6mcqmml6jfuviy2u.name(elm) === 'table';
9187
  }).isSome();
9188
  };
9189
  var adjustForTable = function (bridge, movement, original, caret, numRetries) {
@@ -9196,7 +8889,7 @@ var table = (function () {
9196
  return adjustForTable(bridge, movement, original, caret, numRetries - 1);
9197
  return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {
9198
  return guess.start().fold(Option.none, function (element, offset) {
9199
- return $_3hp2alpkjfuviz6e.getEntireBox(bridge, element, offset).bind(function (guessBox) {
9200
  return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {
9201
  return adjustTil(bridge, movement, original, newCaret, numRetries - 1);
9202
  });
@@ -9230,15 +8923,15 @@ var table = (function () {
9230
  return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted) - delta);
9231
  });
9232
  };
9233
- var $_7hk4s3pljfuviz6m = {
9234
- tryUp: $_fdch7uk7jfuvixxb.curry(retry, upMovement),
9235
- tryDown: $_fdch7uk7jfuvixxb.curry(retry, downMovement),
9236
  ieTryUp: ieTryUp,
9237
  ieTryDown: ieTryDown,
9238
- getJumpSize: $_fdch7uk7jfuvixxb.constant(JUMP_SIZE)
9239
  };
9240
 
9241
- var adt$3 = $_27harem7jfuviyb3.generate([
9242
  { 'none': ['message'] },
9243
  { 'success': [] },
9244
  { 'failedUp': ['cell'] },
@@ -9250,10 +8943,10 @@ var table = (function () {
9250
  return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;
9251
  };
9252
  var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {
9253
- return $_26gnp6lajfuviy35.closest(after, 'td,th', isRoot).bind(function (afterCell) {
9254
- return $_26gnp6lajfuviy35.closest(before, 'td,th', isRoot).map(function (beforeCell) {
9255
- if (!$_g6ztqikojfuviy13.eq(afterCell, beforeCell)) {
9256
- return $_1tw8e1lujfuviy7z.sharedOne(isRow, [
9257
  afterCell,
9258
  beforeCell
9259
  ]).fold(function () {
@@ -9262,29 +8955,29 @@ var table = (function () {
9262
  return failure(beforeCell);
9263
  });
9264
  } else {
9265
- return $_g6ztqikojfuviy13.eq(after, afterCell) && $_cj2m48lmjfuviy5u.getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$3.none('in same cell');
9266
  }
9267
  });
9268
  }).getOr(adt$3.none('default'));
9269
  };
9270
  var isRow = function (elem) {
9271
- return $_26gnp6lajfuviy35.closest(elem, 'tr');
9272
  };
9273
  var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {
9274
  return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);
9275
  };
9276
- var $_fyt9q7prjfuviz7w = {
9277
  verify: verify,
9278
  cata: cata$2,
9279
  adt: adt$3
9280
  };
9281
 
9282
- var point = $_96oqrskbjfuvixya.immutable('element', 'offset');
9283
- var delta = $_96oqrskbjfuvixya.immutable('element', 'deltaOffset');
9284
- var range$3 = $_96oqrskbjfuvixya.immutable('element', 'start', 'finish');
9285
- var points = $_96oqrskbjfuvixya.immutable('begin', 'end');
9286
- var text = $_96oqrskbjfuvixya.immutable('element', 'text');
9287
- var $_5ry9ycptjfuviz8v = {
9288
  point: point,
9289
  delta: delta,
9290
  range: range$3,
@@ -9292,43 +8985,43 @@ var table = (function () {
9292
  text: text
9293
  };
9294
 
9295
- var inAncestor = $_96oqrskbjfuvixya.immutable('ancestor', 'descendants', 'element', 'index');
9296
- var inParent = $_96oqrskbjfuvixya.immutable('parent', 'children', 'element', 'index');
9297
  var childOf = function (element, ancestor) {
9298
- return $_eg4f87lbjfuviy37.closest(element, function (elem) {
9299
- return $_87w3h3kmjfuviy0m.parent(elem).exists(function (parent) {
9300
- return $_g6ztqikojfuviy13.eq(parent, ancestor);
9301
  });
9302
  });
9303
  };
9304
  var indexInParent = function (element) {
9305
- return $_87w3h3kmjfuviy0m.parent(element).bind(function (parent) {
9306
- var children = $_87w3h3kmjfuviy0m.children(parent);
9307
  return indexOf$1(children, element).map(function (index) {
9308
  return inParent(parent, children, element, index);
9309
  });
9310
  });
9311
  };
9312
  var indexOf$1 = function (elements, element) {
9313
- return $_4jja6kk5jfuvixx1.findIndex(elements, $_fdch7uk7jfuvixxb.curry($_g6ztqikojfuviy13.eq, element));
9314
  };
9315
  var selectorsInParent = function (element, selector) {
9316
- return $_87w3h3kmjfuviy0m.parent(element).bind(function (parent) {
9317
- var children = $_a3hs1bl7jfuviy2w.children(parent, selector);
9318
  return indexOf$1(children, element).map(function (index) {
9319
  return inParent(parent, children, element, index);
9320
  });
9321
  });
9322
  };
9323
  var descendantsInAncestor = function (element, ancestorSelector, descendantSelector) {
9324
- return $_26gnp6lajfuviy35.closest(element, ancestorSelector).bind(function (ancestor) {
9325
- var descendants = $_a3hs1bl7jfuviy2w.descendants(ancestor, descendantSelector);
9326
  return indexOf$1(descendants, element).map(function (index) {
9327
  return inAncestor(ancestor, descendants, element, index);
9328
  });
9329
  });
9330
  };
9331
- var $_e2sgp0pujfuviz8z = {
9332
  childOf: childOf,
9333
  indexOf: indexOf$1,
9334
  indexInParent: indexInParent,
@@ -9337,11 +9030,11 @@ var table = (function () {
9337
  };
9338
 
9339
  var isBr = function (elem) {
9340
- return $_6mcqmml6jfuviy2u.name(elem) === 'br';
9341
  };
9342
  var gatherer = function (cand, gather, isRoot) {
9343
  return gather(cand, isRoot).bind(function (target) {
9344
- return $_6mcqmml6jfuviy2u.isText(target) && $_cvagqflnjfuviy5y.get(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);
9345
  });
9346
  };
9347
  var handleBr = function (isRoot, element, direction) {
@@ -9350,8 +9043,8 @@ var table = (function () {
9350
  }).map(direction.relative);
9351
  };
9352
  var findBr = function (element, offset) {
9353
- return $_87w3h3kmjfuviy0m.child(element, offset).filter(isBr).orThunk(function () {
9354
- return $_87w3h3kmjfuviy0m.child(element, offset - 1).filter(isBr);
9355
  });
9356
  };
9357
  var handleParent = function (isRoot, element, offset, direction) {
@@ -9359,8 +9052,8 @@ var table = (function () {
9359
  return direction.traverse(br).fold(function () {
9360
  return gatherer(br, direction.gather, isRoot).map(direction.relative);
9361
  }, function (adjacent) {
9362
- return $_e2sgp0pujfuviz8z.indexInParent(adjacent).map(function (info) {
9363
- return $_8a4rxdovjfuviz0c.on(info.parent(), info.index());
9364
  });
9365
  });
9366
  });
@@ -9369,37 +9062,37 @@ var table = (function () {
9369
  var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);
9370
  return target.map(function (tgt) {
9371
  return {
9372
- start: $_fdch7uk7jfuvixxb.constant(tgt),
9373
- finish: $_fdch7uk7jfuvixxb.constant(tgt)
9374
  };
9375
  });
9376
  };
9377
  var process = function (analysis) {
9378
- return $_fyt9q7prjfuviz7w.cata(analysis, function (message) {
9379
  return Option.none();
9380
  }, function () {
9381
  return Option.none();
9382
  }, function (cell) {
9383
- return Option.some($_5ry9ycptjfuviz8v.point(cell, 0));
9384
  }, function (cell) {
9385
- return Option.some($_5ry9ycptjfuviz8v.point(cell, $_cj2m48lmjfuviy5u.getEnd(cell)));
9386
  });
9387
  };
9388
- var $_b2f2ygpsjfuviz89 = {
9389
  tryBr: tryBr,
9390
  process: process
9391
  };
9392
 
9393
  var MAX_RETRIES = 20;
9394
- var platform$1 = $_8chrc7ktjfuviy1m.detect();
9395
  var findSpot = function (bridge, isRoot, direction) {
9396
  return bridge.getSelection().bind(function (sel) {
9397
- return $_b2f2ygpsjfuviz89.tryBr(isRoot, sel.finish(), sel.foffset(), direction).fold(function () {
9398
- return Option.some($_5ry9ycptjfuviz8v.point(sel.finish(), sel.foffset()));
9399
  }, function (brNeighbour) {
9400
  var range = bridge.fromSitus(brNeighbour);
9401
- var analysis = $_fyt9q7prjfuviz7w.verify(bridge, sel.finish(), sel.foffset(), range.finish(), range.foffset(), direction.failure, isRoot);
9402
- return $_b2f2ygpsjfuviz89.process(analysis);
9403
  });
9404
  });
9405
  };
@@ -9408,27 +9101,27 @@ var table = (function () {
9408
  return Option.none();
9409
  return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {
9410
  var range = bridge.fromSitus(situs);
9411
- var analysis = $_fyt9q7prjfuviz7w.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);
9412
- return $_fyt9q7prjfuviz7w.cata(analysis, function () {
9413
  return Option.none();
9414
  }, function () {
9415
  return Option.some(situs);
9416
  }, function (cell) {
9417
- if ($_g6ztqikojfuviy13.eq(element, cell) && offset === 0)
9418
- return tryAgain(bridge, element, offset, $_an24q2pjjfuviz6a.moveUp, direction);
9419
  else
9420
  return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);
9421
  }, function (cell) {
9422
- if ($_g6ztqikojfuviy13.eq(element, cell) && offset === $_cj2m48lmjfuviy5u.getEnd(cell))
9423
- return tryAgain(bridge, element, offset, $_an24q2pjjfuviz6a.moveDown, direction);
9424
  else
9425
- return scan(bridge, isRoot, cell, $_cj2m48lmjfuviy5u.getEnd(cell), direction, numRetries - 1);
9426
  });
9427
  });
9428
  };
9429
  var tryAgain = function (bridge, element, offset, move, direction) {
9430
- return $_3hp2alpkjfuviz6e.getBoxAt(bridge, element, offset).bind(function (box) {
9431
- return tryAt(bridge, direction, move(box, $_7hk4s3pljfuviz6m.getJumpSize()));
9432
  });
9433
  };
9434
  var tryAt = function (bridge, direction, box) {
@@ -9440,7 +9133,7 @@ var table = (function () {
9440
  return Option.none();
9441
  };
9442
  var tryCursor = function (bridge, isRoot, element, offset, direction) {
9443
- return $_3hp2alpkjfuviz6e.getBoxAt(bridge, element, offset).bind(function (box) {
9444
  return tryAt(bridge, direction, box);
9445
  });
9446
  };
@@ -9449,27 +9142,27 @@ var table = (function () {
9449
  return scan(bridge, isRoot, spot.element(), spot.offset(), direction, MAX_RETRIES).map(bridge.fromSitus);
9450
  });
9451
  };
9452
- var $_ga1yakpijfuviz5w = { handle: handle$2 };
9453
 
9454
  var any$1 = function (predicate) {
9455
- return $_eg4f87lbjfuviy37.first(predicate).isSome();
9456
  };
9457
  var ancestor$3 = function (scope, predicate, isRoot) {
9458
- return $_eg4f87lbjfuviy37.ancestor(scope, predicate, isRoot).isSome();
9459
  };
9460
  var closest$3 = function (scope, predicate, isRoot) {
9461
- return $_eg4f87lbjfuviy37.closest(scope, predicate, isRoot).isSome();
9462
  };
9463
  var sibling$3 = function (scope, predicate) {
9464
- return $_eg4f87lbjfuviy37.sibling(scope, predicate).isSome();
9465
  };
9466
  var child$4 = function (scope, predicate) {
9467
- return $_eg4f87lbjfuviy37.child(scope, predicate).isSome();
9468
  };
9469
  var descendant$3 = function (scope, predicate) {
9470
- return $_eg4f87lbjfuviy37.descendant(scope, predicate).isSome();
9471
  };
9472
- var $_ajfnsppvjfuviz9c = {
9473
  any: any$1,
9474
  ancestor: ancestor$3,
9475
  closest: closest$3,
@@ -9478,25 +9171,26 @@ var table = (function () {
9478
  descendant: descendant$3
9479
  };
9480
 
9481
- var detection = $_8chrc7ktjfuviy1m.detect();
9482
  var inSameTable = function (elem, table) {
9483
- return $_ajfnsppvjfuviz9c.ancestor(elem, function (e) {
9484
- return $_87w3h3kmjfuviy0m.parent(e).exists(function (p) {
9485
- return $_g6ztqikojfuviy13.eq(p, table);
9486
  });
9487
  });
9488
  };
 
9489
  var simulate = function (bridge, isRoot, direction, initial, anchor) {
9490
- return $_26gnp6lajfuviy35.closest(initial, 'td,th', isRoot).bind(function (start) {
9491
- return $_26gnp6lajfuviy35.closest(start, 'table', isRoot).bind(function (table) {
9492
  if (!inSameTable(anchor, table))
9493
  return Option.none();
9494
- return $_ga1yakpijfuviz5w.handle(bridge, isRoot, direction).bind(function (range) {
9495
- return $_26gnp6lajfuviy35.closest(range.finish(), 'td,th', isRoot).map(function (finish) {
9496
  return {
9497
- start: $_fdch7uk7jfuvixxb.constant(start),
9498
- finish: $_fdch7uk7jfuvixxb.constant(finish),
9499
- range: $_fdch7uk7jfuvixxb.constant(range)
9500
  };
9501
  });
9502
  });
@@ -9510,21 +9204,21 @@ var table = (function () {
9510
  return precheck(initial, isRoot).orThunk(function () {
9511
  return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {
9512
  var range = info.range();
9513
- return $_8nrj5cpbjfuviz3g.response(Option.some($_ehlw1upejfuviz45.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);
9514
  });
9515
  });
9516
  }
9517
  };
9518
  var firstUpCheck = function (initial, isRoot) {
9519
- return $_26gnp6lajfuviy35.closest(initial, 'tr', isRoot).bind(function (startRow) {
9520
- return $_26gnp6lajfuviy35.closest(startRow, 'table', isRoot).bind(function (table) {
9521
- var rows = $_a3hs1bl7jfuviy2w.descendants(table, 'tr');
9522
- if ($_g6ztqikojfuviy13.eq(startRow, rows[0])) {
9523
- return $_9y9zempmjfuviz78.seekLeft(table, function (element) {
9524
- return $_dsfijblljfuviy5q.last(element).isSome();
9525
  }, isRoot).map(function (last) {
9526
- var lastOffset = $_cj2m48lmjfuviy5u.getEnd(last);
9527
- return $_8nrj5cpbjfuviz3g.response(Option.some($_ehlw1upejfuviz45.makeSitus(last, lastOffset, last, lastOffset)), true);
9528
  });
9529
  } else {
9530
  return Option.none();
@@ -9533,14 +9227,14 @@ var table = (function () {
9533
  });
9534
  };
9535
  var lastDownCheck = function (initial, isRoot) {
9536
- return $_26gnp6lajfuviy35.closest(initial, 'tr', isRoot).bind(function (startRow) {
9537
- return $_26gnp6lajfuviy35.closest(startRow, 'table', isRoot).bind(function (table) {
9538
- var rows = $_a3hs1bl7jfuviy2w.descendants(table, 'tr');
9539
- if ($_g6ztqikojfuviy13.eq(startRow, rows[rows.length - 1])) {
9540
- return $_9y9zempmjfuviz78.seekRight(table, function (element) {
9541
- return $_dsfijblljfuviy5q.first(element).isSome();
9542
  }, isRoot).map(function (first) {
9543
- return $_8nrj5cpbjfuviz3g.response(Option.some($_ehlw1upejfuviz45.makeSitus(first, 0, first, 0)), true);
9544
  });
9545
  } else {
9546
  return Option.none();
@@ -9550,10 +9244,10 @@ var table = (function () {
9550
  };
9551
  var select = function (bridge, container, isRoot, direction, initial, anchor, selectRange) {
9552
  return simulate(bridge, isRoot, direction, initial, anchor).bind(function (info) {
9553
- return $_9sykywpgjfuviz4r.detect(container, isRoot, info.start(), info.finish(), selectRange);
9554
  });
9555
  };
9556
- var $_bnyc49phjfuviz55 = {
9557
  navigate: navigate,
9558
  select: select,
9559
  firstUpCheck: firstUpCheck,
@@ -9561,7 +9255,7 @@ var table = (function () {
9561
  };
9562
 
9563
  var findCell = function (target, isRoot) {
9564
- return $_26gnp6lajfuviy35.closest(target, 'td,th', isRoot);
9565
  };
9566
  function MouseSelection (bridge, container, isRoot, annotations) {
9567
  var cursor = Option.none();
@@ -9576,9 +9270,9 @@ var table = (function () {
9576
  cursor.each(function (start) {
9577
  annotations.clear(container);
9578
  findCell(event.target(), isRoot).each(function (finish) {
9579
- $_8vwxtkltjfuviy76.identify(start, finish, isRoot).each(function (cellSel) {
9580
  var boxes = cellSel.boxes().getOr([]);
9581
- if (boxes.length > 1 || boxes.length === 1 && !$_g6ztqikojfuviy13.eq(start, finish)) {
9582
  annotations.selectRange(container, boxes, cellSel.start(), cellSel.finish());
9583
  bridge.selectContents(finish);
9584
  }
@@ -9596,26 +9290,26 @@ var table = (function () {
9596
  };
9597
  }
9598
 
9599
- var $_e8neeppxjfuviz9m = {
9600
  down: {
9601
- traverse: $_87w3h3kmjfuviy0m.nextSibling,
9602
- gather: $_9y9zempmjfuviz78.after,
9603
- relative: $_8a4rxdovjfuviz0c.before,
9604
- otherRetry: $_7hk4s3pljfuviz6m.tryDown,
9605
- ieRetry: $_7hk4s3pljfuviz6m.ieTryDown,
9606
- failure: $_fyt9q7prjfuviz7w.adt.failedDown
9607
  },
9608
  up: {
9609
- traverse: $_87w3h3kmjfuviy0m.prevSibling,
9610
- gather: $_9y9zempmjfuviz78.before,
9611
- relative: $_8a4rxdovjfuviz0c.before,
9612
- otherRetry: $_7hk4s3pljfuviz6m.tryUp,
9613
- ieRetry: $_7hk4s3pljfuviz6m.ieTryUp,
9614
- failure: $_fyt9q7prjfuviz7w.adt.failedUp
9615
  }
9616
  };
9617
 
9618
- var rc = $_96oqrskbjfuvixya.immutable('rows', 'cols');
9619
  var mouse = function (win, container, isRoot, annotations) {
9620
  var bridge = WindowBridge(win);
9621
  var handlers = MouseSelection(bridge, container, isRoot, annotations);
@@ -9634,39 +9328,39 @@ var table = (function () {
9634
  var keydown = function (event, start, soffset, finish, foffset, direction) {
9635
  var keycode = event.raw().which;
9636
  var shiftKey = event.raw().shiftKey === true;
9637
- var handler = $_8vwxtkltjfuviy76.retrieve(container, annotations.selectedSelector()).fold(function () {
9638
- if ($_668mt4pcjfuviz3j.isDown(keycode) && shiftKey) {
9639
- return $_fdch7uk7jfuvixxb.curry($_bnyc49phjfuviz55.select, bridge, container, isRoot, $_e8neeppxjfuviz9m.down, finish, start, annotations.selectRange);
9640
- } else if ($_668mt4pcjfuviz3j.isUp(keycode) && shiftKey) {
9641
- return $_fdch7uk7jfuvixxb.curry($_bnyc49phjfuviz55.select, bridge, container, isRoot, $_e8neeppxjfuviz9m.up, finish, start, annotations.selectRange);
9642
- } else if ($_668mt4pcjfuviz3j.isDown(keycode)) {
9643
- return $_fdch7uk7jfuvixxb.curry($_bnyc49phjfuviz55.navigate, bridge, isRoot, $_e8neeppxjfuviz9m.down, finish, start, $_bnyc49phjfuviz55.lastDownCheck);
9644
- } else if ($_668mt4pcjfuviz3j.isUp(keycode)) {
9645
- return $_fdch7uk7jfuvixxb.curry($_bnyc49phjfuviz55.navigate, bridge, isRoot, $_e8neeppxjfuviz9m.up, finish, start, $_bnyc49phjfuviz55.firstUpCheck);
9646
  } else {
9647
  return Option.none;
9648
  }
9649
  }, function (selected) {
9650
  var update = function (attempts) {
9651
  return function () {
9652
- var navigation = $_6i1r9dmvjfuviygw.findMap(attempts, function (delta) {
9653
- return $_9sykywpgjfuviz4r.update(delta.rows(), delta.cols(), container, selected, annotations);
9654
  });
9655
  return navigation.fold(function () {
9656
- return $_8vwxtkltjfuviy76.getEdges(container, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(function (edges) {
9657
- var relative = $_668mt4pcjfuviz3j.isDown(keycode) || direction.isForward(keycode) ? $_8a4rxdovjfuviz0c.after : $_8a4rxdovjfuviz0c.before;
9658
- bridge.setRelativeSelection($_8a4rxdovjfuviz0c.on(edges.first(), 0), relative(edges.table()));
9659
  annotations.clear(container);
9660
- return $_8nrj5cpbjfuviz3g.response(Option.none(), true);
9661
  });
9662
  }, function (_) {
9663
- return Option.some($_8nrj5cpbjfuviz3g.response(Option.none(), true));
9664
  });
9665
  };
9666
  };
9667
- if ($_668mt4pcjfuviz3j.isDown(keycode) && shiftKey)
9668
  return update([rc(+1, 0)]);
9669
- else if ($_668mt4pcjfuviz3j.isUp(keycode) && shiftKey)
9670
  return update([rc(-1, 0)]);
9671
  else if (direction.isBackward(keycode) && shiftKey)
9672
  return update([
@@ -9678,7 +9372,7 @@ var table = (function () {
9678
  rc(0, +1),
9679
  rc(+1, 0)
9680
  ]);
9681
- else if ($_668mt4pcjfuviz3j.isNavigation(keycode) && shiftKey === false)
9682
  return clearToNavigate;
9683
  else
9684
  return Option.none;
@@ -9686,13 +9380,13 @@ var table = (function () {
9686
  return handler();
9687
  };
9688
  var keyup = function (event, start, soffset, finish, foffset) {
9689
- return $_8vwxtkltjfuviy76.retrieve(container, annotations.selectedSelector()).fold(function () {
9690
  var keycode = event.raw().which;
9691
  var shiftKey = event.raw().shiftKey === true;
9692
  if (shiftKey === false)
9693
  return Option.none();
9694
- if ($_668mt4pcjfuviz3j.isNavigation(keycode))
9695
- return $_9sykywpgjfuviz4r.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);
9696
  else
9697
  return Option.none();
9698
  }, Option.none);
@@ -9702,34 +9396,34 @@ var table = (function () {
9702
  keyup: keyup
9703
  };
9704
  };
9705
- var $_4r5b80pajfuviz33 = {
9706
  mouse: mouse,
9707
  keyboard: keyboard
9708
  };
9709
 
9710
  var add$3 = function (element, classes) {
9711
- $_4jja6kk5jfuvixx1.each(classes, function (x) {
9712
- $_c1zp6in6jfuviyjs.add(element, x);
9713
  });
9714
  };
9715
  var remove$7 = function (element, classes) {
9716
- $_4jja6kk5jfuvixx1.each(classes, function (x) {
9717
- $_c1zp6in6jfuviyjs.remove(element, x);
9718
  });
9719
  };
9720
  var toggle$2 = function (element, classes) {
9721
- $_4jja6kk5jfuvixx1.each(classes, function (x) {
9722
- $_c1zp6in6jfuviyjs.toggle(element, x);
9723
  });
9724
  };
9725
  var hasAll = function (element, classes) {
9726
- return $_4jja6kk5jfuvixx1.forall(classes, function (clazz) {
9727
- return $_c1zp6in6jfuviyjs.has(element, clazz);
9728
  });
9729
  };
9730
  var hasAny = function (element, classes) {
9731
- return $_4jja6kk5jfuvixx1.exists(classes, function (clazz) {
9732
- return $_c1zp6in6jfuviyjs.has(element, clazz);
9733
  });
9734
  };
9735
  var getNative = function (element) {
@@ -9741,9 +9435,9 @@ var table = (function () {
9741
  return r;
9742
  };
9743
  var get$11 = function (element) {
9744
- return $_1jx5cbn8jfuviyjv.supports(element) ? getNative(element) : $_1jx5cbn8jfuviyjv.get(element);
9745
  };
9746
- var $_5j3f8uq0jfuviza8 = {
9747
  add: add$3,
9748
  remove: remove$7,
9749
  toggle: toggle$2,
@@ -9754,25 +9448,25 @@ var table = (function () {
9754
 
9755
  var addClass = function (clazz) {
9756
  return function (element) {
9757
- $_c1zp6in6jfuviyjs.add(element, clazz);
9758
  };
9759
  };
9760
  var removeClass = function (clazz) {
9761
  return function (element) {
9762
- $_c1zp6in6jfuviyjs.remove(element, clazz);
9763
  };
9764
  };
9765
  var removeClasses = function (classes) {
9766
  return function (element) {
9767
- $_5j3f8uq0jfuviza8.remove(element, classes);
9768
  };
9769
  };
9770
  var hasClass = function (clazz) {
9771
  return function (element) {
9772
- return $_c1zp6in6jfuviyjs.has(element, clazz);
9773
  };
9774
  };
9775
- var $_ch4q4lpzjfuviza7 = {
9776
  addClass: addClass,
9777
  removeClass: removeClass,
9778
  removeClasses: removeClasses,
@@ -9780,21 +9474,21 @@ var table = (function () {
9780
  };
9781
 
9782
  var byClass = function (ephemera) {
9783
- var addSelectionClass = $_ch4q4lpzjfuviza7.addClass(ephemera.selected());
9784
- var removeSelectionClasses = $_ch4q4lpzjfuviza7.removeClasses([
9785
  ephemera.selected(),
9786
  ephemera.lastSelected(),
9787
  ephemera.firstSelected()
9788
  ]);
9789
  var clear = function (container) {
9790
- var sels = $_a3hs1bl7jfuviy2w.descendants(container, ephemera.selectedSelector());
9791
- $_4jja6kk5jfuvixx1.each(sels, removeSelectionClasses);
9792
  };
9793
  var selectRange = function (container, cells, start, finish) {
9794
  clear(container);
9795
- $_4jja6kk5jfuvixx1.each(cells, addSelectionClass);
9796
- $_c1zp6in6jfuviyjs.add(start, ephemera.firstSelected());
9797
- $_c1zp6in6jfuviyjs.add(finish, ephemera.lastSelected());
9798
  };
9799
  return {
9800
  clear: clear,
@@ -9806,22 +9500,22 @@ var table = (function () {
9806
  };
9807
  var byAttr = function (ephemera) {
9808
  var removeSelectionAttributes = function (element) {
9809
- $_2ekobel5jfuviy2m.remove(element, ephemera.selected());
9810
- $_2ekobel5jfuviy2m.remove(element, ephemera.firstSelected());
9811
- $_2ekobel5jfuviy2m.remove(element, ephemera.lastSelected());
9812
  };
9813
  var addSelectionAttribute = function (element) {
9814
- $_2ekobel5jfuviy2m.set(element, ephemera.selected(), '1');
9815
  };
9816
  var clear = function (container) {
9817
- var sels = $_a3hs1bl7jfuviy2w.descendants(container, ephemera.selectedSelector());
9818
- $_4jja6kk5jfuvixx1.each(sels, removeSelectionAttributes);
9819
  };
9820
  var selectRange = function (container, cells, start, finish) {
9821
  clear(container);
9822
- $_4jja6kk5jfuvixx1.each(cells, addSelectionAttribute);
9823
- $_2ekobel5jfuviy2m.set(start, ephemera.firstSelected(), '1');
9824
- $_2ekobel5jfuviy2m.set(finish, ephemera.lastSelected(), '1');
9825
  };
9826
  return {
9827
  clear: clear,
@@ -9831,13 +9525,16 @@ var table = (function () {
9831
  lastSelectedSelector: ephemera.lastSelectedSelector
9832
  };
9833
  };
9834
- var $_ajwy5tpyjfuviz9u = {
9835
  byClass: byClass,
9836
  byAttr: byAttr
9837
  };
9838
 
 
 
 
9839
  function CellSelection$1 (editor, lazyResize) {
9840
- var handlerStruct = $_96oqrskbjfuvixya.immutableBag([
9841
  'mousedown',
9842
  'mouseover',
9843
  'mouseup',
@@ -9845,28 +9542,25 @@ var table = (function () {
9845
  'keydown'
9846
  ], []);
9847
  var handlers = Option.none();
9848
- var annotations = $_ajwy5tpyjfuviz9u.byAttr($_g37vw7m5jfuviyax);
9849
  editor.on('init', function (e) {
9850
  var win = editor.getWin();
9851
- var body = $_aheu0fnnjfuviymj.getBody(editor);
9852
- var isRoot = $_aheu0fnnjfuviymj.getIsRoot(editor);
9853
  var syncSelection = function () {
9854
  var sel = editor.selection;
9855
- var start = $_4sdhm4kkjfuviy0e.fromDom(sel.getStart());
9856
- var end = $_4sdhm4kkjfuviy0e.fromDom(sel.getEnd());
9857
- var startTable = $_dmqxswkhjfuvixyz.table(start);
9858
- var endTable = $_dmqxswkhjfuvixyz.table(end);
9859
- var sameTable = startTable.bind(function (tableStart) {
9860
- return endTable.bind(function (tableEnd) {
9861
- return $_g6ztqikojfuviy13.eq(tableStart, tableEnd) ? Option.some(true) : Option.none();
9862
- });
9863
- });
9864
- sameTable.fold(function () {
9865
  annotations.clear(body);
9866
- }, $_fdch7uk7jfuvixxb.noop);
9867
  };
9868
- var mouseHandlers = $_4r5b80pajfuviz33.mouse(win, body, isRoot, annotations);
9869
- var keyHandlers = $_4r5b80pajfuviz33.keyboard(win, body, isRoot, annotations);
9870
  var hasShiftKey = function (event) {
9871
  return event.raw().shiftKey === true;
9872
  };
@@ -9878,17 +9572,17 @@ var table = (function () {
9878
  event.kill();
9879
  }
9880
  response.selection().each(function (ns) {
9881
- var relative = $_cirtsuoujfuviz06.relative(ns.start(), ns.finish());
9882
- var rng = $_6ufympp0jfuviz14.asLtrRange(win, relative);
9883
  editor.selection.setRng(rng);
9884
  });
9885
  };
9886
  var keyup = function (event) {
9887
  var wrappedEvent = wrapEvent(event);
9888
- if (wrappedEvent.raw().shiftKey && $_668mt4pcjfuviz3j.isNavigation(wrappedEvent.raw().which)) {
9889
  var rng = editor.selection.getRng();
9890
- var start = $_4sdhm4kkjfuviy0e.fromDom(rng.startContainer);
9891
- var end = $_4sdhm4kkjfuviy0e.fromDom(rng.endContainer);
9892
  keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(function (response) {
9893
  handleResponse(wrappedEvent, response);
9894
  });
@@ -9900,10 +9594,10 @@ var table = (function () {
9900
  resize.hideBars();
9901
  });
9902
  var rng = editor.selection.getRng();
9903
- var startContainer = $_4sdhm4kkjfuviy0e.fromDom(editor.selection.getStart());
9904
- var start = $_4sdhm4kkjfuviy0e.fromDom(rng.startContainer);
9905
- var end = $_4sdhm4kkjfuviy0e.fromDom(rng.endContainer);
9906
- var direction = $_1g25rnojfuviymn.directionAt(startContainer).isRtl() ? $_668mt4pcjfuviz3j.rtl : $_668mt4pcjfuviz3j.ltr;
9907
  keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(function (response) {
9908
  handleResponse(wrappedEvent, response);
9909
  });
@@ -9915,22 +9609,22 @@ var table = (function () {
9915
  return event.hasOwnProperty('x') && event.hasOwnProperty('y');
9916
  };
9917
  var wrapEvent = function (event) {
9918
- var target = $_4sdhm4kkjfuviy0e.fromDom(event.target);
9919
  var stop = function () {
9920
  event.stopPropagation();
9921
  };
9922
  var prevent = function () {
9923
  event.preventDefault();
9924
  };
9925
- var kill = $_fdch7uk7jfuvixxb.compose(prevent, stop);
9926
  return {
9927
- target: $_fdch7uk7jfuvixxb.constant(target),
9928
- x: $_fdch7uk7jfuvixxb.constant(isMouseEvent(event) ? event.x : null),
9929
- y: $_fdch7uk7jfuvixxb.constant(isMouseEvent(event) ? event.y : null),
9930
  stop: stop,
9931
  prevent: prevent,
9932
  kill: kill,
9933
- raw: $_fdch7uk7jfuvixxb.constant(event)
9934
  };
9935
  };
9936
  var isLeftMouse = function (raw) {
@@ -9943,17 +9637,17 @@ var table = (function () {
9943
  return (raw.buttons & 1) !== 0;
9944
  };
9945
  var mouseDown = function (e) {
9946
- if (isLeftMouse(e)) {
9947
  mouseHandlers.mousedown(wrapEvent(e));
9948
  }
9949
  };
9950
  var mouseOver = function (e) {
9951
- if (isLeftButtonPressed(e)) {
9952
  mouseHandlers.mouseover(wrapEvent(e));
9953
  }
9954
  };
9955
  var mouseUp = function (e) {
9956
- if (isLeftMouse(e)) {
9957
  mouseHandlers.mouseup(wrapEvent(e));
9958
  }
9959
  };
@@ -9983,21 +9677,21 @@ var table = (function () {
9983
 
9984
  var Selections = function (editor) {
9985
  var get = function () {
9986
- var body = $_aheu0fnnjfuviymj.getBody(editor);
9987
- return $_7o7mthlsjfuviy6v.retrieve(body, $_g37vw7m5jfuviyax.selectedSelector()).fold(function () {
9988
  if (editor.selection.getStart() === undefined) {
9989
- return $_1jmyeim6jfuviyb0.none();
9990
  } else {
9991
- return $_1jmyeim6jfuviyb0.single(editor.selection);
9992
  }
9993
  }, function (cells) {
9994
- return $_1jmyeim6jfuviyb0.multiple(cells);
9995
  });
9996
  };
9997
  return { get: get };
9998
  };
9999
 
10000
- var each$4 = global$2.each;
10001
  var addButtons = function (editor) {
10002
  var menuItems = [];
10003
  each$4('inserttable tableprops deletetable | cell row column'.split(' '), function (name) {
@@ -10019,7 +9713,7 @@ var table = (function () {
10019
  }
10020
  editor.addButton('tableprops', {
10021
  title: 'Table properties',
10022
- onclick: $_fdch7uk7jfuvixxb.curry($_53k9g0nzjfuviyoc.open, editor, true),
10023
  icon: 'table'
10024
  });
10025
  editor.addButton('tabledelete', {
@@ -10093,7 +9787,7 @@ var table = (function () {
10093
  editor.addContextToolbar(isTable, toolbar.join(' '));
10094
  }
10095
  };
10096
- var $_6ddytyq2jfuvizah = {
10097
  addButtons: addButtons,
10098
  addToolbars: addToolbars
10099
  };
@@ -10148,17 +9842,17 @@ var table = (function () {
10148
  };
10149
  var setDisabledCtrls = function () {
10150
  targets.fold(function () {
10151
- $_4jja6kk5jfuvixx1.each(tableCtrls, noTargetDisable);
10152
- $_4jja6kk5jfuvixx1.each(cellCtrls, noTargetDisable);
10153
- $_4jja6kk5jfuvixx1.each(mergeCtrls, noTargetDisable);
10154
- $_4jja6kk5jfuvixx1.each(unmergeCtrls, noTargetDisable);
10155
  }, function (targets) {
10156
- $_4jja6kk5jfuvixx1.each(tableCtrls, ctrlEnable);
10157
- $_4jja6kk5jfuvixx1.each(cellCtrls, ctrlEnable);
10158
- $_4jja6kk5jfuvixx1.each(mergeCtrls, function (mergeCtrl) {
10159
  mergeCtrl.disabled(targets.mergable().isNone());
10160
  });
10161
- $_4jja6kk5jfuvixx1.each(unmergeCtrls, function (unmergeCtrl) {
10162
  unmergeCtrl.disabled(targets.unmergable().isNone());
10163
  });
10164
  });
@@ -10167,10 +9861,10 @@ var table = (function () {
10167
  editor.on('nodechange', function (e) {
10168
  var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
10169
  targets = cellOpt.bind(function (cellDom) {
10170
- var cell = $_4sdhm4kkjfuviy0e.fromDom(cellDom);
10171
- var table = $_dmqxswkhjfuvixyz.table(cell);
10172
  return table.map(function (table) {
10173
- return $_fgxiq3lqjfuviy6a.forMenu(selections, table, cell);
10174
  });
10175
  });
10176
  setDisabledCtrls();
@@ -10214,7 +9908,7 @@ var table = (function () {
10214
  text: 'Table',
10215
  icon: 'table',
10216
  context: 'table',
10217
- onclick: $_fdch7uk7jfuvixxb.curry($_53k9g0nzjfuviyoc.open, editor)
10218
  } : {
10219
  text: 'Table',
10220
  icon: 'table',
@@ -10224,7 +9918,7 @@ var table = (function () {
10224
  if (e.aria) {
10225
  this.parent().hideAll();
10226
  e.stopImmediatePropagation();
10227
- $_53k9g0nzjfuviyoc.open(editor);
10228
  }
10229
  },
10230
  onshow: function () {
@@ -10264,7 +9958,7 @@ var table = (function () {
10264
  e.stopPropagation();
10265
  self.parent().cancel();
10266
  editor.undoManager.transact(function () {
10267
- $_53bmjpo1jfuviyoi.insert(editor, self.lastX + 1, self.lastY + 1);
10268
  });
10269
  editor.addVisual();
10270
  }
@@ -10280,7 +9974,7 @@ var table = (function () {
10280
  text: 'Table properties',
10281
  context: 'table',
10282
  onPostRender: pushTable,
10283
- onclick: $_fdch7uk7jfuvixxb.curry($_53k9g0nzjfuviyoc.open, editor, true)
10284
  };
10285
  var deleteTable = {
10286
  text: 'Delete table',
@@ -10385,25 +10079,25 @@ var table = (function () {
10385
  editor.addMenuItem('column', column);
10386
  editor.addMenuItem('cell', cell);
10387
  };
10388
- var $_35sgjcq3jfuvizan = { addMenuItems: addMenuItems };
10389
 
10390
  var getClipboardRows = function (clipboardRows) {
10391
  return clipboardRows.get().fold(function () {
10392
  return;
10393
  }, function (rows) {
10394
- return $_4jja6kk5jfuvixx1.map(rows, function (row) {
10395
  return row.dom();
10396
  });
10397
  });
10398
  };
10399
  var setClipboardRows = function (rows, clipboardRows) {
10400
- var sugarRows = $_4jja6kk5jfuvixx1.map(rows, $_4sdhm4kkjfuviy0e.fromDom);
10401
  clipboardRows.set(Option.from(sugarRows));
10402
  };
10403
  var getApi = function (editor, clipboardRows) {
10404
  return {
10405
  insertTable: function (columns, rows) {
10406
- return $_53bmjpo1jfuviyoi.insert(editor, columns, rows);
10407
  },
10408
  setClipboardRows: function (rows) {
10409
  return setClipboardRows(rows, clipboardRows);
@@ -10420,18 +10114,18 @@ var table = (function () {
10420
  var actions = TableActions(editor, resizeHandler.lazyWire);
10421
  var selections = Selections(editor);
10422
  var clipboardRows = Cell(Option.none());
10423
- $_5hhd4unsjfuviyn2.registerCommands(editor, actions, cellSelection, selections, clipboardRows);
10424
- $_jmgm9k4jfuvixw9.registerEvents(editor, selections, actions, cellSelection);
10425
- $_35sgjcq3jfuvizan.addMenuItems(editor, selections);
10426
- $_6ddytyq2jfuvizah.addButtons(editor);
10427
- $_6ddytyq2jfuvizah.addToolbars(editor);
10428
  editor.on('PreInit', function () {
10429
- editor.serializer.addTempAttr($_g37vw7m5jfuviyax.firstSelected());
10430
- editor.serializer.addTempAttr($_g37vw7m5jfuviyax.lastSelected());
10431
  });
10432
  if (hasTabNavigation(editor)) {
10433
  editor.on('keydown', function (e) {
10434
- $_flm1p1orjfuviyzd.handle(e, editor, actions, resizeHandler.lazyWire);
10435
  });
10436
  }
10437
  editor.on('remove', function () {
10
  x[_i] = arguments[_i];
11
  }
12
  };
13
+
 
 
 
 
 
 
 
 
14
  var compose = function (fa, fb) {
15
  return function () {
16
  var x = [];
28
  var identity = function (x) {
29
  return x;
30
  };
31
+
 
 
32
  var curry = function (f) {
33
  var x = [];
34
  for (var _i = 1; _i < arguments.length; _i++) {
66
  var apply = function (f) {
67
  return f();
68
  };
69
+
 
 
70
  var never = constant(false);
71
  var always = constant(true);
72
+
73
+ var never$1 = never;
74
+ var always$1 = always;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  var none = function () {
76
  return NONE;
77
  };
79
  var eq = function (o) {
80
  return o.isNone();
81
  };
82
+ var call$$1 = function (thunk) {
83
  return thunk();
84
  };
85
  var id = function (n) {
86
  return n;
87
  };
88
+ var noop$$1 = function () {
89
+ };
90
+ var nul = function () {
91
+ return null;
92
+ };
93
+ var undef = function () {
94
+ return undefined;
95
  };
96
  var me = {
97
  fold: function (n, s) {
101
  isSome: never$1,
102
  isNone: always$1,
103
  getOr: id,
104
+ getOrThunk: call$$1,
105
  getOrDie: function (msg) {
106
  throw new Error(msg || 'error: getOrDie called on none.');
107
  },
108
+ getOrNull: nul,
109
+ getOrUndefined: undef,
110
  or: id,
111
+ orThunk: call$$1,
112
  map: none,
113
  ap: none,
114
+ each: noop$$1,
115
  bind: none,
116
  flatten: none,
117
  exists: never$1,
122
  toArray: function () {
123
  return [];
124
  },
125
+ toString: constant('none()')
126
  };
127
  if (Object.freeze)
128
  Object.freeze(me);
153
  getOr: constant_a,
154
  getOrThunk: constant_a,
155
  getOrDie: constant_a,
156
+ getOrNull: constant_a,
157
+ getOrUndefined: constant_a,
158
  or: self,
159
  orThunk: self,
160
  map: map,
214
  return typeOf(value) === type;
215
  };
216
  };
217
+ var isString = isType('string');
218
+
219
+ var isArray = isType('array');
220
+
221
+ var isBoolean = isType('boolean');
222
+
223
+ var isFunction = isType('function');
224
+ var isNumber = isType('number');
 
 
225
 
226
  var rawIndexOf = function () {
227
  var pIndexOf = Array.prototype.indexOf;
233
  };
234
  return pIndexOf === undefined ? slowIndex : fastIndex;
235
  }();
236
+
 
 
 
237
  var contains = function (xs, x) {
238
  return rawIndexOf(xs, x) > -1;
239
  };
240
  var exists = function (xs, pred) {
241
  return findIndex(xs, pred).isSome();
242
  };
243
+
244
+
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  var map = function (xs, f) {
246
  var len = xs.length;
247
  var r = new Array(len);
263
  f(x, i, xs);
264
  }
265
  };
266
+
 
 
 
 
 
 
 
 
 
 
 
 
267
  var filter = function (xs, pred) {
268
  var r = [];
269
  for (var i = 0, len = xs.length; i < len; i++) {
274
  }
275
  return r;
276
  };
277
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  var foldr = function (xs, f, acc) {
279
  eachr(xs, function (x) {
280
  acc = f(acc, x);
336
  }
337
  return true;
338
  };
339
+
 
 
 
 
340
  var slice = Array.prototype.slice;
341
  var reverse = function (xs) {
342
  var r = slice.call(xs, 0);
343
  r.reverse();
344
  return r;
345
  };
346
+
347
+
348
+
349
+
350
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351
  var last = function (xs) {
352
  return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
353
  };
354
+ var from$1 = isFunction(Array.from) ? Array.from : function (x) {
355
  return slice.call(x);
356
  };
357
+
358
+ var keys = Object.keys;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  var each$1 = function (obj, f) {
360
  var props = keys(obj);
361
  for (var k = 0, len = props.length; k < len; k++) {
364
  f(x, i, obj);
365
  }
366
  };
367
+ var map$1 = function (obj, f) {
368
  return tupleMap(obj, function (x, i, obj) {
369
  return {
370
  k: i,
380
  });
381
  return r;
382
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383
 
384
+ var Immutable = function () {
385
  var fields = [];
386
  for (var _i = 0; _i < arguments.length; _i++) {
387
  fields[_i] = arguments[_i];
395
  throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments');
396
  }
397
  var struct = {};
398
+ each(fields, function (name, i) {
399
+ struct[name] = constant(values[i]);
400
  });
401
  return struct;
402
  };
403
+ };
404
 
405
  var sort$1 = function (arr) {
406
  return arr.slice(0).sort();
412
  throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', '));
413
  };
414
  var validateStrArr = function (label, array) {
415
+ if (!isArray(array))
416
  throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');
417
+ each(array, function (a) {
418
+ if (!isString(a))
419
  throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');
420
  });
421
  };
424
  };
425
  var checkDupes = function (everything) {
426
  var sorted = sort$1(everything);
427
+ var dupe = find(sorted, function (s, i) {
428
  return i < sorted.length - 1 && s === sorted[i + 1];
429
  });
430
  dupe.each(function (d) {
431
  throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');
432
  });
433
  };
 
 
 
 
 
 
 
 
434
 
435
+ var MixedBag = function (required, optional) {
436
  var everything = required.concat(optional);
437
  if (everything.length === 0)
438
  throw new Error('You must specify at least one required or optional field.');
439
+ validateStrArr('required', required);
440
+ validateStrArr('optional', optional);
441
+ checkDupes(everything);
442
  return function (obj) {
443
+ var keys$$1 = keys(obj);
444
+ var allReqd = forall(required, function (req) {
445
+ return contains(keys$$1, req);
446
  });
447
  if (!allReqd)
448
+ reqMessage(required, keys$$1);
449
+ var unsupported = filter(keys$$1, function (key) {
450
+ return !contains(everything, key);
451
  });
452
  if (unsupported.length > 0)
453
+ unsuppMessage(unsupported);
454
  var r = {};
455
+ each(required, function (req) {
456
+ r[req] = constant(obj[req]);
457
  });
458
+ each(optional, function (opt) {
459
+ r[opt] = constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none());
460
  });
461
  return r;
462
  };
463
+ };
464
 
465
+ var dimensions = Immutable('width', 'height');
466
+ var grid = Immutable('rows', 'columns');
467
+ var address = Immutable('row', 'column');
468
+ var coords = Immutable('x', 'y');
469
+ var detail = Immutable('element', 'rowspan', 'colspan');
470
+ var detailnew = Immutable('element', 'rowspan', 'colspan', 'isNew');
471
+ var extended = Immutable('element', 'rowspan', 'colspan', 'row', 'column');
472
+ var rowdata = Immutable('element', 'cells', 'section');
473
+ var elementnew = Immutable('element', 'isNew');
474
+ var rowdatanew = Immutable('element', 'cells', 'section', 'isNew');
475
+ var rowcells = Immutable('cells', 'section');
476
+ var rowdetails = Immutable('details', 'section');
477
+ var bounds = Immutable('startRow', 'startCol', 'finishRow', 'finishCol');
478
+ var $_6lasqllcjjgwed80 = {
 
 
 
 
 
479
  dimensions: dimensions,
480
  grid: grid,
481
  address: address,
514
  var fromDom = function (node) {
515
  if (node === null || node === undefined)
516
  throw new Error('Node cannot be null or undefined');
517
+ return { dom: constant(node) };
518
  };
519
+ var fromPoint = function (docElm, x, y) {
520
+ var doc = docElm.dom();
521
+ return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
522
  };
523
+ var Element$$1 = {
524
  fromHtml: fromHtml,
525
  fromTag: fromTag,
526
  fromText: fromText,
528
  fromPoint: fromPoint
529
  };
530
 
531
+ var $_95eswilijjgwed9s = {
532
+ ATTRIBUTE: Node.ATTRIBUTE_NODE,
533
+ CDATA_SECTION: Node.CDATA_SECTION_NODE,
534
+ COMMENT: Node.COMMENT_NODE,
535
+ DOCUMENT: Node.DOCUMENT_NODE,
536
+ DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,
537
+ DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,
538
+ ELEMENT: Node.ELEMENT_NODE,
539
+ TEXT: Node.TEXT_NODE,
540
+ PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,
541
+ ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,
542
+ ENTITY: Node.ENTITY_NODE,
543
+ NOTATION: Node.NOTATION_NODE
544
  };
545
 
546
+ var ELEMENT = $_95eswilijjgwed9s.ELEMENT;
547
+ var DOCUMENT = $_95eswilijjgwed9s.DOCUMENT;
548
  var is = function (element, selector) {
549
  var elem = element.dom();
550
  if (elem.nodeType !== ELEMENT)
565
  };
566
  var all = function (selector, scope) {
567
  var base = scope === undefined ? document : scope.dom();
568
+ return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element$$1.fromDom);
569
  };
570
  var one = function (selector, scope) {
571
  var base = scope === undefined ? document : scope.dom();
572
+ return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map(Element$$1.fromDom);
573
  };
574
+ var $_5htea7lfjjgwed94 = {
575
  all: all,
576
  is: is,
577
  one: one
589
  } while (cur.isSome());
590
  return r;
591
  };
592
+ var $_2myahrlkjjgwedad = { toArray: toArray };
593
 
594
+ var Global = typeof window !== 'undefined' ? window : Function('return this;')();
595
 
596
  var path = function (parts, scope) {
597
+ var o = scope !== undefined && scope !== null ? scope : Global;
598
  for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
599
  o = o[parts[i]];
600
  return o;
603
  var parts = p.split('.');
604
  return path(parts, scope);
605
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
606
 
607
  var unsafe = function (name, scope) {
608
+ return resolve(name, scope);
609
  };
610
  var getOrDie = function (name, scope) {
611
  var actual = unsafe(name, scope);
613
  throw name + ' not available on this browser';
614
  return actual;
615
  };
616
+ var $_6joju7lnjjgwedap = { getOrDie: getOrDie };
617
 
618
  var node = function () {
619
+ var f = $_6joju7lnjjgwedap.getOrDie('Node');
620
  return f;
621
  };
622
  var compareDocumentPosition = function (a, b, match) {
628
  var documentPositionContainedBy = function (a, b) {
629
  return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY);
630
  };
631
+ var $_30vuy6lmjjgwedao = {
632
  documentPositionPreceding: documentPositionPreceding,
633
  documentPositionContainedBy: documentPositionContainedBy
634
  };
637
  var called = false;
638
  var r;
639
  return function () {
640
+ var args = [];
641
+ for (var _i = 0; _i < arguments.length; _i++) {
642
+ args[_i] = arguments[_i];
643
+ }
644
  if (!called) {
645
  called = true;
646
+ r = f.apply(null, args);
647
  }
648
  return r;
649
  };
650
  };
 
651
 
652
  var firstMatch = function (regexes, s) {
653
  for (var i = 0; i < regexes.length; i++) {
684
  minor: minor
685
  };
686
  };
687
+ var $_9mbc42lujjgwedb3 = {
688
  nu: nu,
689
  detect: detect,
690
  unknown: unknown
704
  var unknown$1 = function () {
705
  return nu$1({
706
  current: undefined,
707
+ version: $_9mbc42lujjgwedb3.unknown()
708
  });
709
  };
710
  var nu$1 = function (info) {
721
  isSafari: isBrowser(safari, current)
722
  };
723
  };
724
+ var $_4zhqftltjjgwedaz = {
725
  unknown: unknown$1,
726
  nu: nu$1,
727
+ edge: constant(edge),
728
+ chrome: constant(chrome),
729
+ ie: constant(ie),
730
+ opera: constant(opera),
731
+ firefox: constant(firefox),
732
+ safari: constant(safari)
733
  };
734
 
735
  var windows = 'Windows';
747
  var unknown$2 = function () {
748
  return nu$2({
749
  current: undefined,
750
+ version: $_9mbc42lujjgwedb3.unknown()
751
  });
752
  };
753
  var nu$2 = function (info) {
765
  isFreeBSD: isOS(freebsd, current)
766
  };
767
  };
768
+ var $_bwkcqmlvjjgwedb5 = {
769
  unknown: unknown$2,
770
  nu: nu$2,
771
+ windows: constant(windows),
772
+ ios: constant(ios),
773
+ android: constant(android),
774
+ linux: constant(linux),
775
+ osx: constant(osx),
776
+ solaris: constant(solaris),
777
+ freebsd: constant(freebsd)
778
  };
779
 
780
  function DeviceType (os, browser, userAgent) {
787
  var isPhone = isTouch && !isTablet;
788
  var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;
789
  return {
790
+ isiPad: constant(isiPad),
791
+ isiPhone: constant(isiPhone),
792
+ isTablet: constant(isTablet),
793
+ isPhone: constant(isPhone),
794
+ isTouch: constant(isTouch),
795
  isAndroid: os.isAndroid,
796
  isiOS: os.isiOS,
797
+ isWebView: constant(iOSwebview)
798
  };
799
  }
800
 
801
  var detect$1 = function (candidates, userAgent) {
802
  var agent = String(userAgent).toLowerCase();
803
+ return find(candidates, function (candidate) {
804
  return candidate.search(agent);
805
  });
806
  };
807
  var detectBrowser = function (browsers, userAgent) {
808
  return detect$1(browsers, userAgent).map(function (browser) {
809
+ var version = $_9mbc42lujjgwedb3.detect(browser.versionRegexes, userAgent);
810
  return {
811
  current: browser.name,
812
  version: version
815
  };
816
  var detectOs = function (oses, userAgent) {
817
  return detect$1(oses, userAgent).map(function (os) {
818
+ var version = $_9mbc42lujjgwedb3.detect(os.versionRegexes, userAgent);
819
  return {
820
  current: os.name,
821
  version: version
822
  };
823
  });
824
  };
825
+ var $_5gg2julxjjgwedbb = {
826
  detectBrowser: detectBrowser,
827
  detectOs: detectOs
828
  };
829
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
830
  var checkRange = function (str, substr, start) {
831
  if (substr === '')
832
  return true;
835
  var x = str.substr(start, start + substr.length);
836
  return x === substr;
837
  };
838
+
839
+
840
+
841
+
842
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
843
  var contains$1 = function (str, substr) {
844
  return str.indexOf(substr) !== -1;
845
  };
846
+
847
+
 
 
 
 
 
 
 
 
848
  var endsWith = function (str, suffix) {
849
  return checkRange(str, suffix, str.length - suffix.length);
850
  };
851
  var trim = function (str) {
852
  return str.replace(/^\s+|\s+$/g, '');
853
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
854
 
855
  var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/;
856
  var checkContains = function (target) {
857
  return function (uastring) {
858
+ return contains$1(uastring, target);
859
  };
860
  };
861
  var browsers = [
863
  name: 'Edge',
864
  versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
865
  search: function (uastring) {
866
+ var monstrosity = contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');
867
  return monstrosity;
868
  }
869
  },
874
  normalVersionRegex
875
  ],
876
  search: function (uastring) {
877
+ return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');
878
  }
879
  },
880
  {
884
  /.*?rv:([0-9]+)\.([0-9]+).*/
885
  ],
886
  search: function (uastring) {
887
+ return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');
888
  }
889
  },
890
  {
907
  /.*?cpu os ([0-9]+)_([0-9]+).*/
908
  ],
909
  search: function (uastring) {
910
+ return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');
911
  }
912
  }
913
  ];
920
  {
921
  name: 'iOS',
922
  search: function (uastring) {
923
+ return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');
924
  },
925
  versionRegexes: [
926
  /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
954
  versionRegexes: []
955
  }
956
  ];
957
+ var $_hf4gnlyjjgwedbf = {
958
+ browsers: constant(browsers),
959
+ oses: constant(oses)
960
  };
961
 
962
  var detect$2 = function (userAgent) {
963
+ var browsers = $_hf4gnlyjjgwedbf.browsers();
964
+ var oses = $_hf4gnlyjjgwedbf.oses();
965
+ var browser = $_5gg2julxjjgwedbb.detectBrowser(browsers, userAgent).fold($_4zhqftltjjgwedaz.unknown, $_4zhqftltjjgwedaz.nu);
966
+ var os = $_5gg2julxjjgwedbb.detectOs(oses, userAgent).fold($_bwkcqmlvjjgwedb5.unknown, $_bwkcqmlvjjgwedb5.nu);
967
  var deviceType = DeviceType(os, browser, userAgent);
968
  return {
969
  browser: browser,
971
  deviceType: deviceType
972
  };
973
  };
974
+ var $_aiopqmlsjjgweday = { detect: detect$2 };
975
 
976
+ var detect$3 = cached(function () {
977
  var userAgent = navigator.userAgent;
978
+ return $_aiopqmlsjjgweday.detect(userAgent);
979
  });
980
+ var $_avfe9dlqjjgwedat = { detect: detect$3 };
981
 
982
  var eq = function (e1, e2) {
983
  return e1.dom() === e2.dom();
986
  return e1.dom().isEqualNode(e2.dom());
987
  };
988
  var member = function (element, elements) {
989
+ return exists(elements, curry(eq, element));
990
  };
991
  var regularContains = function (e1, e2) {
992
  var d1 = e1.dom(), d2 = e2.dom();
993
  return d1 === d2 ? false : d1.contains(d2);
994
  };
995
  var ieContains = function (e1, e2) {
996
+ return $_30vuy6lmjjgwedao.documentPositionContainedBy(e1.dom(), e2.dom());
997
  };
998
+ var browser = $_avfe9dlqjjgwedat.detect().browser;
999
  var contains$2 = browser.isIE() ? ieContains : regularContains;
1000
+ var $_e1yh5slljjgwedae = {
1001
  eq: eq,
1002
  isEqualNode: isEqualNode,
1003
  member: member,
1004
  contains: contains$2,
1005
+ is: $_5htea7lfjjgwed94.is
1006
  };
1007
 
1008
  var owner = function (element) {
1009
+ return Element$$1.fromDom(element.dom().ownerDocument);
1010
  };
1011
  var documentElement = function (element) {
1012
+ return Element$$1.fromDom(element.dom().ownerDocument.documentElement);
 
1013
  };
1014
  var defaultView = function (element) {
1015
  var el = element.dom();
1016
  var defaultView = el.ownerDocument.defaultView;
1017
+ return Element$$1.fromDom(defaultView);
1018
  };
1019
  var parent = function (element) {
1020
  var dom = element.dom();
1021
+ return Option.from(dom.parentNode).map(Element$$1.fromDom);
1022
  };
1023
  var findIndex$1 = function (element) {
1024
  return parent(element).bind(function (p) {
1025
  var kin = children(p);
1026
+ return findIndex(kin, function (elem) {
1027
+ return $_e1yh5slljjgwedae.eq(element, elem);
1028
  });
1029
  });
1030
  };
1031
  var parents = function (element, isRoot) {
1032
+ var stop = isFunction(isRoot) ? isRoot : constant(false);
1033
  var dom = element.dom();
1034
  var ret = [];
1035
  while (dom.parentNode !== null && dom.parentNode !== undefined) {
1036
  var rawParent = dom.parentNode;
1037
+ var parent = Element$$1.fromDom(rawParent);
1038
  ret.push(parent);
1039
  if (stop(parent) === true)
1040
  break;
1045
  };
1046
  var siblings = function (element) {
1047
  var filterSelf = function (elements) {
1048
+ return filter(elements, function (x) {
1049
+ return !$_e1yh5slljjgwedae.eq(element, x);
1050
  });
1051
  };
1052
  return parent(element).map(children).map(filterSelf).getOr([]);
1053
  };
1054
  var offsetParent = function (element) {
1055
  var dom = element.dom();
1056
+ return Option.from(dom.offsetParent).map(Element$$1.fromDom);
1057
  };
1058
  var prevSibling = function (element) {
1059
  var dom = element.dom();
1060
+ return Option.from(dom.previousSibling).map(Element$$1.fromDom);
1061
  };
1062
  var nextSibling = function (element) {
1063
  var dom = element.dom();
1064
+ return Option.from(dom.nextSibling).map(Element$$1.fromDom);
1065
  };
1066
  var prevSiblings = function (element) {
1067
+ return reverse($_2myahrlkjjgwedad.toArray(element, prevSibling));
1068
  };
1069
  var nextSiblings = function (element) {
1070
+ return $_2myahrlkjjgwedad.toArray(element, nextSibling);
1071
  };
1072
  var children = function (element) {
1073
  var dom = element.dom();
1074
+ return map(dom.childNodes, Element$$1.fromDom);
1075
  };
1076
  var child = function (element, index) {
1077
  var children = element.dom().childNodes;
1078
+ return Option.from(children[index]).map(Element$$1.fromDom);
1079
  };
1080
  var firstChild = function (element) {
1081
  return child(element, 0);
1089
  var hasChildNodes = function (element) {
1090
  return element.dom().hasChildNodes();
1091
  };
1092
+ var spot = Immutable('element', 'offset');
1093
  var leaf = function (element, offset) {
1094
  var cs = children(element);
1095
  return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);
1096
  };
1097
+ var $_97vsilljjjgwed9v = {
1098
  owner: owner,
1099
  defaultView: defaultView,
1100
  documentElement: documentElement,
1117
  };
1118
 
1119
  var firstLayer = function (scope, selector) {
1120
+ return filterFirstLayer(scope, selector, constant(true));
1121
  };
1122
  var filterFirstLayer = function (scope, selector, predicate) {
1123
+ return bind($_97vsilljjjgwed9v.children(scope), function (x) {
1124
+ return $_5htea7lfjjgwed94.is(x, selector) ? predicate(x) ? [x] : [] : filterFirstLayer(x, selector, predicate);
1125
  });
1126
  };
1127
+ var $_5gvx1dlejjgwed8t = {
1128
  firstLayer: firstLayer,
1129
  filterFirstLayer: filterFirstLayer
1130
  };
1145
  };
1146
  };
1147
  var isComment = function (element) {
1148
+ return type(element) === $_95eswilijjgwed9s.COMMENT || name(element) === '#comment';
1149
  };
1150
+ var isElement = isType$1($_95eswilijjgwed9s.ELEMENT);
1151
+ var isText = isType$1($_95eswilijjgwed9s.TEXT);
1152
+ var isDocument = isType$1($_95eswilijjgwed9s.DOCUMENT);
1153
+ var $_g6duvbm3jjgwedby = {
1154
  name: name,
1155
  type: type,
1156
  value: value,
1161
  };
1162
 
1163
  var rawSet = function (dom, key, value) {
1164
+ if (isString(value) || isBoolean(value) || isNumber(value)) {
1165
  dom.setAttribute(key, value + '');
1166
  } else {
1167
  console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom);
1173
  };
1174
  var setAll = function (element, attrs) {
1175
  var dom = element.dom();
1176
+ each$1(attrs, function (v, k) {
1177
  rawSet(dom, k, v);
1178
  });
1179
  };
1193
  return attrs === undefined || attrs === null || attrs.length === 0;
1194
  };
1195
  var clone = function (element) {
1196
+ return foldl(element.dom().attributes, function (acc, attr) {
1197
  acc[attr.name] = attr.value;
1198
  return acc;
1199
  }, {});
1203
  set(destination, attr, get(source, attr));
1204
  };
1205
  var transfer = function (source, destination, attrs) {
1206
+ if (!$_g6duvbm3jjgwedby.isElement(source) || !$_g6duvbm3jjgwedby.isElement(destination))
1207
  return;
1208
+ each(attrs, function (attr) {
1209
  transferOne(source, destination, attr);
1210
  });
1211
  };
1212
+ var $_72hn9pm2jjgwedbq = {
1213
  clone: clone,
1214
  set: set,
1215
  setAll: setAll,
1221
  };
1222
 
1223
  var inBody = function (element) {
1224
+ var dom = $_g6duvbm3jjgwedby.isText(element) ? element.dom().parentNode : element.dom();
1225
  return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom);
1226
  };
1227
+ var body = cached(function () {
1228
+ return getBody(Element$$1.fromDom(document));
1229
  });
1230
  var getBody = function (doc) {
1231
  var body = doc.dom().body;
1232
  if (body === null || body === undefined)
1233
  throw 'Body is not available yet';
1234
+ return Element$$1.fromDom(body);
1235
  };
1236
+ var $_95kxntm6jjgwedc6 = {
1237
  body: body,
1238
  getBody: getBody,
1239
  inBody: inBody
1240
  };
1241
 
1242
  var all$1 = function (predicate) {
1243
+ return descendants($_95kxntm6jjgwedc6.body(), predicate);
1244
  };
1245
  var ancestors = function (scope, predicate, isRoot) {
1246
+ return filter($_97vsilljjjgwed9v.parents(scope, isRoot), predicate);
1247
  };
1248
  var siblings$1 = function (scope, predicate) {
1249
+ return filter($_97vsilljjjgwed9v.siblings(scope), predicate);
1250
  };
1251
  var children$1 = function (scope, predicate) {
1252
+ return filter($_97vsilljjjgwed9v.children(scope), predicate);
1253
  };
1254
  var descendants = function (scope, predicate) {
1255
  var result = [];
1256
+ each($_97vsilljjjgwed9v.children(scope), function (x) {
1257
  if (predicate(x)) {
1258
  result = result.concat([x]);
1259
  }
1261
  });
1262
  return result;
1263
  };
1264
+ var $_a2tivmm5jjgwedc3 = {
1265
  all: all$1,
1266
  ancestors: ancestors,
1267
  siblings: siblings$1,
1270
  };
1271
 
1272
  var all$2 = function (selector) {
1273
+ return $_5htea7lfjjgwed94.all(selector);
1274
  };
1275
  var ancestors$1 = function (scope, selector, isRoot) {
1276
+ return $_a2tivmm5jjgwedc3.ancestors(scope, function (e) {
1277
+ return $_5htea7lfjjgwed94.is(e, selector);
1278
  }, isRoot);
1279
  };
1280
  var siblings$2 = function (scope, selector) {
1281
+ return $_a2tivmm5jjgwedc3.siblings(scope, function (e) {
1282
+ return $_5htea7lfjjgwed94.is(e, selector);
1283
  });
1284
  };
1285
  var children$2 = function (scope, selector) {
1286
+ return $_a2tivmm5jjgwedc3.children(scope, function (e) {
1287
+ return $_5htea7lfjjgwed94.is(e, selector);
1288
  });
1289
  };
1290
  var descendants$1 = function (scope, selector) {
1291
+ return $_5htea7lfjjgwed94.all(selector, scope);
1292
  };
1293
+ var $_5ko5j3m4jjgwedc0 = {
1294
  all: all$2,
1295
  ancestors: ancestors$1,
1296
  siblings: siblings$2,
1299
  };
1300
 
1301
  function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
1302
+ return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
1303
  }
1304
 
1305
  var first$1 = function (predicate) {
1306
+ return descendant($_95kxntm6jjgwedc6.body(), predicate);
1307
  };
1308
  var ancestor = function (scope, predicate, isRoot) {
1309
  var element = scope.dom();
1310
+ var stop = isFunction(isRoot) ? isRoot : constant(false);
1311
  while (element.parentNode) {
1312
  element = element.parentNode;
1313
+ var el = Element$$1.fromDom(element);
1314
  if (predicate(el))
1315
  return Option.some(el);
1316
  else if (stop(el))
1328
  var element = scope.dom();
1329
  if (!element.parentNode)
1330
  return Option.none();
1331
+ return child$1(Element$$1.fromDom(element.parentNode), function (x) {
1332
+ return !$_e1yh5slljjgwedae.eq(scope, x) && predicate(x);
1333
  });
1334
  };
1335
  var child$1 = function (scope, predicate) {
1336
+ var result = find(scope.dom().childNodes, compose(predicate, Element$$1.fromDom));
1337
+ return result.map(Element$$1.fromDom);
1338
  };
1339
  var descendant = function (scope, predicate) {
1340
+ var descend = function (node) {
1341
+ for (var i = 0; i < node.childNodes.length; i++) {
1342
+ if (predicate(Element$$1.fromDom(node.childNodes[i])))
1343
+ return Option.some(Element$$1.fromDom(node.childNodes[i]));
1344
+ var res = descend(node.childNodes[i]);
1345
  if (res.isSome())
1346
  return res;
1347
  }
1349
  };
1350
  return descend(scope.dom());
1351
  };
1352
+ var $_6l4e4m8jjgwedci = {
1353
  first: first$1,
1354
  ancestor: ancestor,
1355
  closest: closest,
1359
  };
1360
 
1361
  var first$2 = function (selector) {
1362
+ return $_5htea7lfjjgwed94.one(selector);
1363
  };
1364
  var ancestor$1 = function (scope, selector, isRoot) {
1365
+ return $_6l4e4m8jjgwedci.ancestor(scope, function (e) {
1366
+ return $_5htea7lfjjgwed94.is(e, selector);
1367
  }, isRoot);
1368
  };
1369
  var sibling$1 = function (scope, selector) {
1370
+ return $_6l4e4m8jjgwedci.sibling(scope, function (e) {
1371
+ return $_5htea7lfjjgwed94.is(e, selector);
1372
  });
1373
  };
1374
  var child$2 = function (scope, selector) {
1375
+ return $_6l4e4m8jjgwedci.child(scope, function (e) {
1376
+ return $_5htea7lfjjgwed94.is(e, selector);
1377
  });
1378
  };
1379
  var descendant$1 = function (scope, selector) {
1380
+ return $_5htea7lfjjgwed94.one(selector, scope);
1381
  };
1382
  var closest$1 = function (scope, selector, isRoot) {
1383
+ return ClosestOrAncestor($_5htea7lfjjgwed94.is, ancestor$1, scope, selector, isRoot);
1384
  };
1385
+ var $_2e7p77m7jjgwedcg = {
1386
  first: first$2,
1387
  ancestor: ancestor$1,
1388
  sibling: sibling$1,
1392
  };
1393
 
1394
  var lookup = function (tags, element, _isRoot) {
1395
+ var isRoot = _isRoot !== undefined ? _isRoot : constant(false);
1396
  if (isRoot(element))
1397
  return Option.none();
1398
+ if (contains(tags, $_g6duvbm3jjgwedby.name(element)))
1399
  return Option.some(element);
1400
  var isRootOrUpperTable = function (element) {
1401
+ return $_5htea7lfjjgwed94.is(element, 'table') || isRoot(element);
1402
  };
1403
+ return $_2e7p77m7jjgwedcg.ancestor(element, tags.join(','), isRootOrUpperTable);
1404
  };
1405
  var cell = function (element, isRoot) {
1406
  return lookup([
1409
  ], element, isRoot);
1410
  };
1411
  var cells = function (ancestor) {
1412
+ return $_5gvx1dlejjgwed8t.firstLayer(ancestor, 'th,td');
1413
  };
1414
  var notCell = function (element, isRoot) {
1415
  return lookup([
1421
  ], element, isRoot);
1422
  };
1423
  var neighbours = function (selector, element) {
1424
+ return $_97vsilljjjgwed9v.parent(element).map(function (parent) {
1425
+ return $_5ko5j3m4jjgwedc0.children(parent, selector);
1426
  });
1427
  };
1428
+ var neighbourCells = curry(neighbours, 'th,td');
1429
+ var neighbourRows = curry(neighbours, 'tr');
1430
  var firstCell = function (ancestor) {
1431
+ return $_2e7p77m7jjgwedcg.descendant(ancestor, 'th,td');
1432
  };
1433
  var table = function (element, isRoot) {
1434
+ return $_2e7p77m7jjgwedcg.closest(element, 'table', isRoot);
1435
  };
1436
  var row = function (element, isRoot) {
1437
  return lookup(['tr'], element, isRoot);
1438
  };
1439
  var rows = function (ancestor) {
1440
+ return $_5gvx1dlejjgwed8t.firstLayer(ancestor, 'tr');
1441
  };
1442
  var attr = function (element, property) {
1443
+ return parseInt($_72hn9pm2jjgwedbq.get(element, property), 10);
1444
  };
1445
  var grid$1 = function (element, rowProp, colProp) {
1446
  var rows = attr(element, rowProp);
1447
  var cols = attr(element, colProp);
1448
+ return $_6lasqllcjjgwed80.grid(rows, cols);
1449
  };
1450
+ var $_bmlvw1ldjjgwed84 = {
1451
  cell: cell,
1452
  firstCell: firstCell,
1453
  cells: cells,
1462
  };
1463
 
1464
  var fromTable = function (table) {
1465
+ var rows = $_bmlvw1ldjjgwed84.rows(table);
1466
+ return map(rows, function (row) {
1467
  var element = row;
1468
+ var parent = $_97vsilljjjgwed9v.parent(element);
1469
+ var parentSection = parent.map(function (parent) {
1470
+ var parentName = $_g6duvbm3jjgwedby.name(parent);
1471
  return parentName === 'tfoot' || parentName === 'thead' || parentName === 'tbody' ? parentName : 'tbody';
1472
+ }).getOr('tbody');
1473
+ var cells = map($_bmlvw1ldjjgwed84.cells(row), function (cell) {
1474
+ var rowspan = $_72hn9pm2jjgwedbq.has(cell, 'rowspan') ? parseInt($_72hn9pm2jjgwedbq.get(cell, 'rowspan'), 10) : 1;
1475
+ var colspan = $_72hn9pm2jjgwedbq.has(cell, 'colspan') ? parseInt($_72hn9pm2jjgwedbq.get(cell, 'colspan'), 10) : 1;
1476
+ return $_6lasqllcjjgwed80.detail(cell, rowspan, colspan);
1477
  });
1478
+ return $_6lasqllcjjgwed80.rowdata(element, cells, parentSection);
 
 
 
 
 
1479
  });
1480
  };
1481
  var fromPastedRows = function (rows, example) {
1482
+ return map(rows, function (row) {
1483
+ var cells = map($_bmlvw1ldjjgwed84.cells(row), function (cell) {
1484
+ var rowspan = $_72hn9pm2jjgwedbq.has(cell, 'rowspan') ? parseInt($_72hn9pm2jjgwedbq.get(cell, 'rowspan'), 10) : 1;
1485
+ var colspan = $_72hn9pm2jjgwedbq.has(cell, 'colspan') ? parseInt($_72hn9pm2jjgwedbq.get(cell, 'colspan'), 10) : 1;
1486
+ return $_6lasqllcjjgwed80.detail(cell, rowspan, colspan);
1487
  });
1488
+ return $_6lasqllcjjgwed80.rowdata(row, cells, example.section());
1489
  });
1490
  };
1491
+ var $_da6e59lbjjgwed7r = {
1492
  fromTable: fromTable,
1493
  fromPastedRows: fromPastedRows
1494
  };
1507
  return filtered.length > 0 ? Option.some(filtered[0]) : Option.none();
1508
  };
1509
  var filterItems = function (warehouse, predicate) {
1510
+ var all = bind(warehouse.all(), function (r) {
1511
  return r.cells();
1512
  });
1513
+ return filter(all, predicate);
1514
  };
1515
  var generate = function (list) {
1516
  var access = {};
1517
  var cells = [];
1518
  var maxRows = list.length;
1519
  var maxColumns = 0;
1520
+ each(list, function (details, r) {
1521
  var currentRow = [];
1522
+ each(details.cells(), function (detail, c) {
1523
  var start = 0;
1524
  while (access[key(r, start)] !== undefined) {
1525
  start++;
1526
  }
1527
+ var current = $_6lasqllcjjgwed80.extended(detail.element(), detail.rowspan(), detail.colspan(), r, start);
1528
  for (var i = 0; i < detail.colspan(); i++) {
1529
  for (var j = 0; j < detail.rowspan(); j++) {
1530
  var cr = r + j;
1536
  }
1537
  currentRow.push(current);
1538
  });
1539
+ cells.push($_6lasqllcjjgwed80.rowdata(details.element(), currentRow, details.section()));
1540
  });
1541
+ var grid = $_6lasqllcjjgwed80.grid(maxRows, maxColumns);
1542
  return {
1543
+ grid: constant(grid),
1544
+ access: constant(access),
1545
+ all: constant(cells)
1546
  };
1547
  };
1548
  var justCells = function (warehouse) {
1549
+ var rows = map(warehouse.all(), function (w) {
1550
  return w.cells();
1551
  });
1552
+ return flatten(rows);
1553
  };
1554
+ var $_eesv8pmajjgwedcx = {
1555
  generate: generate,
1556
  getAt: getAt,
1557
  findItem: findItem,
1562
  var isSupported = function (dom) {
1563
  return dom.style !== undefined;
1564
  };
1565
+ var $_5f4hknmcjjgweddm = { isSupported: isSupported };
1566
 
1567
  var internalSet = function (dom, property, value) {
1568
+ if (!isString(value)) {
1569
  console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);
1570
  throw new Error('CSS value must be a string: ' + value);
1571
  }
1572
+ if ($_5f4hknmcjjgweddm.isSupported(dom))
1573
  dom.style.setProperty(property, value);
1574
  };
1575
  var internalRemove = function (dom, property) {
1576
+ if ($_5f4hknmcjjgweddm.isSupported(dom))
1577
  dom.style.removeProperty(property);
1578
  };
1579
  var set$1 = function (element, property, value) {
1582
  };
1583
  var setAll$1 = function (element, css) {
1584
  var dom = element.dom();
1585
+ each$1(css, function (v, k) {
1586
  internalSet(dom, k, v);
1587
  });
1588
  };
1589
  var setOptions = function (element, css) {
1590
  var dom = element.dom();
1591
+ each$1(css, function (v, k) {
1592
  v.fold(function () {
1593
  internalRemove(dom, k);
1594
  }, function (value) {
1600
  var dom = element.dom();
1601
  var styles = window.getComputedStyle(dom);
1602
  var r = styles.getPropertyValue(property);
1603
+ var v = r === '' && !$_95kxntm6jjgwedc6.inBody(element) ? getUnsafeProperty(dom, property) : r;
1604
  return v === null ? undefined : v;
1605
  };
1606
  var getUnsafeProperty = function (dom, property) {
1607
+ return $_5f4hknmcjjgweddm.isSupported(dom) ? dom.style.getPropertyValue(property) : '';
1608
  };
1609
  var getRaw = function (element, property) {
1610
  var dom = element.dom();
1616
  var getAllRaw = function (element) {
1617
  var css = {};
1618
  var dom = element.dom();
1619
+ if ($_5f4hknmcjjgweddm.isSupported(dom)) {
1620
  for (var i = 0; i < dom.style.length; i++) {
1621
  var ruleName = dom.style.item(i);
1622
  css[ruleName] = dom.style[ruleName];
1625
  return css;
1626
  };
1627
  var isValidValue = function (tag, property, value) {
1628
+ var element = Element$$1.fromTag(tag);
1629
  set$1(element, property, value);
1630
  var style = getRaw(element, property);
1631
  return style.isSome();
1633
  var remove$1 = function (element, property) {
1634
  var dom = element.dom();
1635
  internalRemove(dom, property);
1636
+ if ($_72hn9pm2jjgwedbq.has(element, 'style') && trim($_72hn9pm2jjgwedbq.get(element, 'style')) === '') {
1637
+ $_72hn9pm2jjgwedbq.remove(element, 'style');
1638
  }
1639
  };
1640
  var preserve = function (element, f) {
1641
+ var oldStyles = $_72hn9pm2jjgwedbq.get(element, 'style');
1642
  var result = f(element);
1643
+ var restore = oldStyles === undefined ? $_72hn9pm2jjgwedbq.remove : $_72hn9pm2jjgwedbq.set;
1644
  restore(element, 'style', oldStyles);
1645
  return result;
1646
  };
1647
  var copy = function (source, target) {
1648
  var sourceDom = source.dom();
1649
  var targetDom = target.dom();
1650
+ if ($_5f4hknmcjjgweddm.isSupported(sourceDom) && $_5f4hknmcjjgweddm.isSupported(targetDom)) {
1651
  targetDom.style.cssText = sourceDom.style.cssText;
1652
  }
1653
  };
1661
  });
1662
  };
1663
  var transfer$1 = function (source, destination, styles) {
1664
+ if (!$_g6duvbm3jjgwedby.isElement(source) || !$_g6duvbm3jjgwedby.isElement(destination))
1665
  return;
1666
+ each(styles, function (style) {
1667
  transferOne$1(source, destination, style);
1668
  });
1669
  };
1670
+ var $_59neaymbjjgwedd8 = {
1671
  copy: copy,
1672
  set: set$1,
1673
  preserve: preserve,
1683
  };
1684
 
1685
  var before = function (marker, element) {
1686
+ var parent = $_97vsilljjjgwed9v.parent(marker);
1687
  parent.each(function (v) {
1688
  v.dom().insertBefore(element.dom(), marker.dom());
1689
  });
1690
  };
1691
  var after = function (marker, element) {
1692
+ var sibling = $_97vsilljjjgwed9v.nextSibling(marker);
1693
  sibling.fold(function () {
1694
+ var parent = $_97vsilljjjgwed9v.parent(marker);
1695
  parent.each(function (v) {
1696
  append(v, element);
1697
  });
1700
  });
1701
  };
1702
  var prepend = function (parent, element) {
1703
+ var firstChild = $_97vsilljjjgwed9v.firstChild(parent);
1704
  firstChild.fold(function () {
1705
  append(parent, element);
1706
  }, function (v) {
1711
  parent.dom().appendChild(element.dom());
1712
  };
1713
  var appendAt = function (parent, element, index) {
1714
+ $_97vsilljjjgwed9v.child(parent, index).fold(function () {
1715
  append(parent, element);
1716
  }, function (v) {
1717
  before(v, element);
1721
  before(element, wrapper);
1722
  append(wrapper, element);
1723
  };
1724
+ var $_1yoqsmmdjjgweddo = {
1725
  before: before,
1726
  after: after,
1727
  prepend: prepend,
1731
  };
1732
 
1733
  var before$1 = function (marker, elements) {
1734
+ each(elements, function (x) {
1735
+ $_1yoqsmmdjjgweddo.before(marker, x);
1736
  });
1737
  };
1738
  var after$1 = function (marker, elements) {
1739
+ each(elements, function (x, i) {
1740
  var e = i === 0 ? marker : elements[i - 1];
1741
+ $_1yoqsmmdjjgweddo.after(e, x);
1742
  });
1743
  };
1744
  var prepend$1 = function (parent, elements) {
1745
+ each(elements.slice().reverse(), function (x) {
1746
+ $_1yoqsmmdjjgweddo.prepend(parent, x);
1747
  });
1748
  };
1749
  var append$1 = function (parent, elements) {
1750
+ each(elements, function (x) {
1751
+ $_1yoqsmmdjjgweddo.append(parent, x);
1752
  });
1753
  };
1754
+ var $_7onf0emfjjgweddu = {
1755
  before: before$1,
1756
  after: after$1,
1757
  prepend: prepend$1,
1760
 
1761
  var empty = function (element) {
1762
  element.dom().textContent = '';
1763
+ each($_97vsilljjjgwed9v.children(element), function (rogue) {
1764
  remove$2(rogue);
1765
  });
1766
  };
1770
  dom.parentNode.removeChild(dom);
1771
  };
1772
  var unwrap = function (wrapper) {
1773
+ var children = $_97vsilljjjgwed9v.children(wrapper);
1774
  if (children.length > 0)
1775
+ $_7onf0emfjjgweddu.before(wrapper, children);
1776
  remove$2(wrapper);
1777
  };
1778
+ var $_1y8qodmejjgweddq = {
1779
  empty: empty,
1780
  remove: remove$2,
1781
  unwrap: unwrap
1782
  };
1783
 
1784
+ var stats = Immutable('minRow', 'minCol', 'maxRow', 'maxCol');
1785
  var findSelectedStats = function (house, isSelected) {
1786
  var totalColumns = house.grid().columns();
1787
  var totalRows = house.grid().rows();
1789
  var minCol = totalColumns;
1790
  var maxRow = 0;
1791
  var maxCol = 0;
1792
+ each$1(house.access(), function (detail) {
1793
  if (isSelected(detail)) {
1794
  var startRow = detail.row();
1795
  var endRow = startRow + detail.rowspan() - 1;
1809
  };
1810
  var makeCell = function (list, seenSelected, rowIndex) {
1811
  var row = list[rowIndex].element();
1812
+ var td = Element$$1.fromTag('td');
1813
+ $_1yoqsmmdjjgweddo.append(td, Element$$1.fromTag('br'));
1814
+ var f = seenSelected ? $_1yoqsmmdjjgweddo.append : $_1yoqsmmdjjgweddo.prepend;
1815
  f(row, td);
1816
  };
1817
  var fillInGaps = function (list, house, stats, isSelected) {
1821
  var seenSelected = false;
1822
  for (var j = 0; j < totalColumns; j++) {
1823
  if (!(i < stats.minRow() || i > stats.maxRow() || j < stats.minCol() || j > stats.maxCol())) {
1824
+ var needCell = $_eesv8pmajjgwedcx.getAt(house, i, j).filter(isSelected).isNone();
1825
  if (needCell)
1826
  makeCell(list, seenSelected, i);
1827
  else
1831
  }
1832
  };
1833
  var clean = function (table, stats) {
1834
+ var emptyRows = filter($_5gvx1dlejjgwed8t.firstLayer(table, 'tr'), function (row) {
1835
  return row.dom().childElementCount === 0;
1836
  });
1837
+ each(emptyRows, $_1y8qodmejjgweddq.remove);
1838
  if (stats.minCol() === stats.maxCol() || stats.minRow() === stats.maxRow()) {
1839
+ each($_5gvx1dlejjgwed8t.firstLayer(table, 'th,td'), function (cell) {
1840
+ $_72hn9pm2jjgwedbq.remove(cell, 'rowspan');
1841
+ $_72hn9pm2jjgwedbq.remove(cell, 'colspan');
1842
  });
1843
  }
1844
+ $_72hn9pm2jjgwedbq.remove(table, 'width');
1845
+ $_72hn9pm2jjgwedbq.remove(table, 'height');
1846
+ $_59neaymbjjgwedd8.remove(table, 'width');
1847
+ $_59neaymbjjgwedd8.remove(table, 'height');
1848
  };
1849
  var extract = function (table, selectedSelector) {
1850
  var isSelected = function (detail) {
1851
+ return $_5htea7lfjjgwed94.is(detail.element(), selectedSelector);
1852
  };
1853
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
1854
+ var house = $_eesv8pmajjgwedcx.generate(list);
1855
  var stats = findSelectedStats(house, isSelected);
1856
  var selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';
1857
+ var unselectedCells = $_5gvx1dlejjgwed8t.filterFirstLayer(table, 'th,td', function (cell) {
1858
+ return $_5htea7lfjjgwed94.is(cell, selector);
1859
  });
1860
+ each(unselectedCells, $_1y8qodmejjgweddq.remove);
1861
  fillInGaps(list, house, stats, isSelected);
1862
  clean(table, stats);
1863
  return table;
1864
  };
1865
+ var $_22kbdsl5jjgwed6v = { extract: extract };
1866
 
1867
  var clone$1 = function (original, deep) {
1868
+ return Element$$1.fromDom(original.dom().cloneNode(deep));
1869
  };
1870
  var shallow = function (original) {
1871
  return clone$1(original, false);
1874
  return clone$1(original, true);
1875
  };
1876
  var shallowAs = function (original, tag) {
1877
+ var nu = Element$$1.fromTag(tag);
1878
+ var attributes = $_72hn9pm2jjgwedbq.clone(original);
1879
+ $_72hn9pm2jjgwedbq.setAll(nu, attributes);
1880
  return nu;
1881
  };
1882
  var copy$1 = function (original, tag) {
1883
  var nu = shallowAs(original, tag);
1884
+ var cloneChildren = $_97vsilljjjgwed9v.children(deep(original));
1885
+ $_7onf0emfjjgweddu.append(nu, cloneChildren);
1886
  return nu;
1887
  };
1888
  var mutate = function (original, tag) {
1889
  var nu = shallowAs(original, tag);
1890
+ $_1yoqsmmdjjgweddo.before(original, nu);
1891
+ var children = $_97vsilljjjgwed9v.children(original);
1892
+ $_7onf0emfjjgweddu.append(nu, children);
1893
+ $_1y8qodmejjgweddq.remove(original);
1894
  return nu;
1895
  };
1896
+ var $_ginehlmhjjgwedet = {
1897
  shallow: shallow,
1898
  shallowAs: shallowAs,
1899
  deep: deep,
1917
  var getOptionSafe = function (element) {
1918
  return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
1919
  };
1920
+ var browser = $_avfe9dlqjjgwedat.detect().browser;
1921
  var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;
1922
  var set = function (element, value) {
1923
  if (!is(element))
1931
  };
1932
  }
1933
 
1934
+ var api = NodeValue($_g6duvbm3jjgwedby.isText, 'text');
1935
  var get$2 = function (element) {
1936
  return api.get(element);
1937
  };
1941
  var set$2 = function (element, value) {
1942
  api.set(element, value);
1943
  };
1944
+ var $_btltedmkjjgwedf4 = {
1945
  get: get$2,
1946
  getOption: getOption,
1947
  set: set$2
1948
  };
1949
 
1950
  var getEnd = function (element) {
1951
+ return $_g6duvbm3jjgwedby.name(element) === 'img' ? 1 : $_btltedmkjjgwedf4.getOption(element).fold(function () {
1952
+ return $_97vsilljjjgwed9v.children(element).length;
1953
  }, function (v) {
1954
  return v.length;
1955
  });
1962
  };
1963
  var NBSP = '\xA0';
1964
  var isTextNodeWithCursorPosition = function (el) {
1965
+ return $_btltedmkjjgwedf4.getOption(el).filter(function (text) {
1966
  return text.trim().length !== 0 || text.indexOf(NBSP) > -1;
1967
  }).isSome();
1968
  };
1972
  ];
1973
  var isCursorPosition = function (elem) {
1974
  var hasCursorPosition = isTextNodeWithCursorPosition(elem);
1975
+ return hasCursorPosition || contains(elementsWithCursorPosition, $_g6duvbm3jjgwedby.name(elem));
1976
  };
1977
+ var $_3uimohmjjjgwedf1 = {
1978
  getEnd: getEnd,
1979
  isEnd: isEnd,
1980
  isStart: isStart,
1982
  };
1983
 
1984
  var first$3 = function (element) {
1985
+ return $_6l4e4m8jjgwedci.descendant(element, $_3uimohmjjjgwedf1.isCursorPosition);
1986
  };
1987
  var last$2 = function (element) {
1988
+ return descendantRtl(element, $_3uimohmjjjgwedf1.isCursorPosition);
1989
  };
1990
  var descendantRtl = function (scope, predicate) {
1991
  var descend = function (element) {
1992
+ var children = $_97vsilljjjgwed9v.children(element);
1993
  for (var i = children.length - 1; i >= 0; i--) {
1994
  var child = children[i];
1995
  if (predicate(child))
2002
  };
2003
  return descend(scope);
2004
  };
2005
+ var $_cww1bpmijjgwedex = {
2006
  first: first$3,
2007
  last: last$2
2008
  };
2009
 
2010
  var cell$1 = function () {
2011
+ var td = Element$$1.fromTag('td');
2012
+ $_1yoqsmmdjjgweddo.append(td, Element$$1.fromTag('br'));
2013
  return td;
2014
  };
2015
  var replace = function (cell, tag, attrs) {
2016
+ var replica = $_ginehlmhjjgwedet.copy(cell, tag);
2017
+ each$1(attrs, function (v, k) {
2018
  if (v === null)
2019
+ $_72hn9pm2jjgwedbq.remove(replica, k);
2020
  else
2021
+ $_72hn9pm2jjgwedbq.set(replica, k, v);
2022
  });
2023
  return replica;
2024
  };
2027
  };
2028
  var newRow = function (doc) {
2029
  return function () {
2030
+ return Element$$1.fromTag('tr', doc.dom());
2031
  };
2032
  };
2033
  var cloneFormats = function (oldCell, newCell, formats) {
2034
+ var first = $_cww1bpmijjgwedex.first(oldCell);
2035
  return first.map(function (firstText) {
2036
  var formatSelector = formats.join(',');
2037
+ var parents = $_5ko5j3m4jjgwedc0.ancestors(firstText, formatSelector, function (element) {
2038
+ return $_e1yh5slljjgwedae.eq(element, oldCell);
2039
  });
2040
+ return foldr(parents, function (last$$1, parent) {
2041
+ var clonedFormat = $_ginehlmhjjgwedet.shallow(parent);
2042
+ $_72hn9pm2jjgwedbq.remove(clonedFormat, 'contenteditable');
2043
+ $_1yoqsmmdjjgweddo.append(last$$1, clonedFormat);
2044
  return clonedFormat;
2045
  }, newCell);
2046
  }).getOr(newCell);
2047
  };
2048
  var cellOperations = function (mutate, doc, formatsToClone) {
2049
  var newCell = function (prev) {
2050
+ var doc = $_97vsilljjjgwed9v.owner(prev.element());
2051
+ var td = Element$$1.fromTag($_g6duvbm3jjgwedby.name(prev.element()), doc.dom());
2052
  var formats = formatsToClone.getOr([
2053
  'strong',
2054
  'em',
2066
  'div'
2067
  ]);
2068
  var lastNode = formats.length > 0 ? cloneFormats(prev.element(), td, formats) : td;
2069
+ $_1yoqsmmdjjgweddo.append(lastNode, Element$$1.fromTag('br'));
2070
+ $_59neaymbjjgwedd8.copy(prev.element(), td);
2071
+ $_59neaymbjjgwedd8.remove(td, 'height');
2072
  if (prev.colspan() !== 1)
2073
+ $_59neaymbjjgwedd8.remove(prev.element(), 'width');
2074
  mutate(prev.element(), td);
2075
  return td;
2076
  };
2089
  gap: cell$1
2090
  };
2091
  };
2092
+ var $_cne69smgjjgweddy = {
2093
  cellOperations: cellOperations,
2094
  paste: paste
2095
  };
2098
  var doc = scope || document;
2099
  var div = doc.createElement('div');
2100
  div.innerHTML = html;
2101
+ return $_97vsilljjjgwed9v.children(Element$$1.fromDom(div));
2102
  };
2103
  var fromTags = function (tags, scope) {
2104
+ return map(tags, function (x) {
2105
+ return Element$$1.fromTag(x, scope);
2106
  });
2107
  };
2108
  var fromText$1 = function (texts, scope) {
2109
+ return map(texts, function (x) {
2110
+ return Element$$1.fromText(x, scope);
2111
  });
2112
  };
2113
  var fromDom$1 = function (nodes) {
2114
+ return map(nodes, Element$$1.fromDom);
2115
  };
2116
+ var $_4bkah5mmjjgwedfb = {
2117
  fromHtml: fromHtml$1,
2118
  fromTags: fromTags,
2119
  fromText: fromText$1,
2156
 
2157
  function DomUniverse () {
2158
  var clone = function (element) {
2159
+ return Element$$1.fromDom(element.dom().cloneNode(false));
2160
  };
2161
  var isBoundary = function (element) {
2162
+ if (!$_g6duvbm3jjgwedby.isElement(element))
2163
  return false;
2164
+ if ($_g6duvbm3jjgwedby.name(element) === 'body')
2165
  return true;
2166
+ return contains(TagBoundaries, $_g6duvbm3jjgwedby.name(element));
2167
  };
2168
  var isEmptyTag = function (element) {
2169
+ if (!$_g6duvbm3jjgwedby.isElement(element))
2170
  return false;
2171
+ return contains([
2172
  'br',
2173
  'img',
2174
  'hr',
2175
  'input'
2176
+ ], $_g6duvbm3jjgwedby.name(element));
2177
  };
2178
  var comparePosition = function (element, other) {
2179
  return element.dom().compareDocumentPosition(other.dom());
2180
  };
2181
  var copyAttributesTo = function (source, destination) {
2182
+ var as = $_72hn9pm2jjgwedbq.clone(source);
2183
+ $_72hn9pm2jjgwedbq.setAll(destination, as);
2184
  };
2185
  return {
2186
+ up: constant({
2187
+ selector: $_2e7p77m7jjgwedcg.ancestor,
2188
+ closest: $_2e7p77m7jjgwedcg.closest,
2189
+ predicate: $_6l4e4m8jjgwedci.ancestor,
2190
+ all: $_97vsilljjjgwed9v.parents
2191
  }),
2192
+ down: constant({
2193
+ selector: $_5ko5j3m4jjgwedc0.descendants,
2194
+ predicate: $_a2tivmm5jjgwedc3.descendants
2195
  }),
2196
+ styles: constant({
2197
+ get: $_59neaymbjjgwedd8.get,
2198
+ getRaw: $_59neaymbjjgwedd8.getRaw,
2199
+ set: $_59neaymbjjgwedd8.set,
2200
+ remove: $_59neaymbjjgwedd8.remove
2201
  }),
2202
+ attrs: constant({
2203
+ get: $_72hn9pm2jjgwedbq.get,
2204
+ set: $_72hn9pm2jjgwedbq.set,
2205
+ remove: $_72hn9pm2jjgwedbq.remove,
2206
  copyTo: copyAttributesTo
2207
  }),
2208
+ insert: constant({
2209
+ before: $_1yoqsmmdjjgweddo.before,
2210
+ after: $_1yoqsmmdjjgweddo.after,
2211
+ afterAll: $_7onf0emfjjgweddu.after,
2212
+ append: $_1yoqsmmdjjgweddo.append,
2213
+ appendAll: $_7onf0emfjjgweddu.append,
2214
+ prepend: $_1yoqsmmdjjgweddo.prepend,
2215
+ wrap: $_1yoqsmmdjjgweddo.wrap
2216
  }),
2217
+ remove: constant({
2218
+ unwrap: $_1y8qodmejjgweddq.unwrap,
2219
+ remove: $_1y8qodmejjgweddq.remove
2220
  }),
2221
+ create: constant({
2222
+ nu: Element$$1.fromTag,
2223
  clone: clone,
2224
+ text: Element$$1.fromText
2225
  }),
2226
+ query: constant({
2227
  comparePosition: comparePosition,
2228
+ prevSibling: $_97vsilljjjgwed9v.prevSibling,
2229
+ nextSibling: $_97vsilljjjgwed9v.nextSibling
2230
  }),
2231
+ property: constant({
2232
+ children: $_97vsilljjjgwed9v.children,
2233
+ name: $_g6duvbm3jjgwedby.name,
2234
+ parent: $_97vsilljjjgwed9v.parent,
2235
+ isText: $_g6duvbm3jjgwedby.isText,
2236
+ isComment: $_g6duvbm3jjgwedby.isComment,
2237
+ isElement: $_g6duvbm3jjgwedby.isElement,
2238
+ getText: $_btltedmkjjgwedf4.get,
2239
+ setText: $_btltedmkjjgwedf4.set,
2240
  isBoundary: isBoundary,
2241
  isEmptyTag: isEmptyTag
2242
  }),
2243
+ eq: $_e1yh5slljjgwedae.eq,
2244
+ is: $_e1yh5slljjgwedae.is
2245
  };
2246
  }
2247
 
2248
+ var leftRight = Immutable('left', 'right');
2249
  var bisect = function (universe, parent, child) {
2250
  var children = universe.property().children(parent);
2251
+ var index = findIndex(children, curry(universe.eq, child));
2252
  return index.map(function (ind) {
2253
  return {
2254
+ before: constant(children.slice(0, ind)),
2255
+ after: constant(children.slice(ind + 1))
2256
  };
2257
  });
2258
  };
2274
  });
2275
  };
2276
  var breakPath = function (universe, item, isTop, breaker) {
2277
+ var result = Immutable('first', 'second', 'splits');
2278
  var next = function (child, group, splits) {
2279
  var fallback = result(child, Option.none(), splits);
2280
  if (isTop(child))
2294
  };
2295
  return next(item, Option.none(), []);
2296
  };
2297
+ var $_3ckk26mvjjgwedin = {
2298
  breakToLeft: breakToLeft,
2299
  breakToRight: breakToRight,
2300
  breakPath: breakPath
2301
  };
2302
 
2303
  var all$3 = function (universe, look, elements, f) {
2304
+ var head$$1 = elements[0];
2305
  var tail = elements.slice(1);
2306
+ return f(universe, look, head$$1, tail);
2307
  };
2308
  var oneAll = function (universe, look, elements) {
2309
  return elements.length > 0 ? all$3(universe, look, elements, unsafeOne) : Option.none();
2310
  };
2311
+ var unsafeOne = function (universe, look, head$$1, tail) {
2312
+ var start = look(universe, head$$1);
2313
+ return foldr(tail, function (b, a) {
2314
  var current = look(universe, a);
2315
  return commonElement(universe, b, current);
2316
  }, start);
2317
  };
2318
  var commonElement = function (universe, start, end) {
2319
  return start.bind(function (s) {
2320
+ return end.filter(curry(universe.eq, s));
2321
  });
2322
  };
2323
+ var $_2cqqdzmwjjgwedix = { oneAll: oneAll };
2324
 
2325
  var eq$1 = function (universe, item) {
2326
+ return curry(universe.eq, item);
2327
  };
2328
  var unsafeSubset = function (universe, common, ps1, ps2) {
2329
  var children = universe.property().children(common);
2332
  if (universe.eq(common, ps2[0]))
2333
  return Option.some([ps2[0]]);
2334
  var finder = function (ps) {
2335
+ var topDown = reverse(ps);
2336
+ var index = findIndex(topDown, eq$1(universe, common)).getOr(-1);
2337
  var item = index < topDown.length - 1 ? topDown[index + 1] : topDown[index];
2338
+ return findIndex(children, eq$1(universe, item));
2339
  };
2340
  var startIndex = finder(ps1);
2341
  var endIndex = finder(ps2);
2342
  return startIndex.bind(function (sIndex) {
2343
  return endIndex.map(function (eIndex) {
2344
  var first = Math.min(sIndex, eIndex);
2345
+ var last$$1 = Math.max(sIndex, eIndex);
2346
+ return children.slice(first, last$$1 + 1);
2347
  });
2348
  });
2349
  };
2350
  var ancestors$2 = function (universe, start, end, _isRoot) {
2351
+ var isRoot = _isRoot !== undefined ? _isRoot : constant(false);
2352
  var ps1 = [start].concat(universe.up().all(start));
2353
  var ps2 = [end].concat(universe.up().all(end));
2354
  var prune = function (path) {
2355
+ var index = findIndex(path, isRoot);
2356
  return index.fold(function () {
2357
  return path;
2358
  }, function (ind) {
2361
  };
2362
  var pruned1 = prune(ps1);
2363
  var pruned2 = prune(ps2);
2364
+ var shared = find(pruned1, function (x) {
2365
+ return exists(pruned2, eq$1(universe, x));
2366
  });
2367
  return {
2368
+ firstpath: constant(pruned1),
2369
+ secondpath: constant(pruned2),
2370
+ shared: constant(shared)
2371
  };
2372
  };
2373
  var subset = function (universe, start, end) {
2376
  return unsafeSubset(universe, shared, ancs.firstpath(), ancs.secondpath());
2377
  });
2378
  };
2379
+ var $_c0xnnrmxjjgwedj4 = {
2380
  subset: subset,
2381
  ancestors: ancestors$2
2382
  };
2383
 
2384
  var sharedOne = function (universe, look, elements) {
2385
+ return $_2cqqdzmwjjgwedix.oneAll(universe, look, elements);
2386
  };
2387
  var subset$1 = function (universe, start, finish) {
2388
+ return $_c0xnnrmxjjgwedj4.subset(universe, start, finish);
2389
  };
2390
  var ancestors$3 = function (universe, start, finish, _isRoot) {
2391
+ return $_c0xnnrmxjjgwedj4.ancestors(universe, start, finish, _isRoot);
2392
  };
2393
  var breakToLeft$1 = function (universe, parent, child) {
2394
+ return $_3ckk26mvjjgwedin.breakToLeft(universe, parent, child);
2395
  };
2396
  var breakToRight$1 = function (universe, parent, child) {
2397
+ return $_3ckk26mvjjgwedin.breakToRight(universe, parent, child);
2398
  };
2399
  var breakPath$1 = function (universe, child, isTop, breaker) {
2400
+ return $_3ckk26mvjjgwedin.breakPath(universe, child, isTop, breaker);
2401
  };
2402
+ var $_1k5g62mujjgwedil = {
2403
  sharedOne: sharedOne,
2404
  subset: subset$1,
2405
  ancestors: ancestors$3,
2410
 
2411
  var universe = DomUniverse();
2412
  var sharedOne$1 = function (look, elements) {
2413
+ return $_1k5g62mujjgwedil.sharedOne(universe, function (universe, element) {
2414
  return look(element);
2415
  }, elements);
2416
  };
2417
  var subset$2 = function (start, finish) {
2418
+ return $_1k5g62mujjgwedil.subset(universe, start, finish);
2419
  };
2420
  var ancestors$4 = function (start, finish, _isRoot) {
2421
+ return $_1k5g62mujjgwedil.ancestors(universe, start, finish, _isRoot);
2422
  };
2423
  var breakToLeft$2 = function (parent, child) {
2424
+ return $_1k5g62mujjgwedil.breakToLeft(universe, parent, child);
2425
  };
2426
  var breakToRight$2 = function (parent, child) {
2427
+ return $_1k5g62mujjgwedil.breakToRight(universe, parent, child);
2428
  };
2429
  var breakPath$2 = function (child, isTop, breaker) {
2430
+ return $_1k5g62mujjgwedil.breakPath(universe, child, isTop, function (u, p, c) {
2431
  return breaker(p, c);
2432
  });
2433
  };
2434
+ var $_92t9ismrjjgwedhe = {
2435
  sharedOne: sharedOne$1,
2436
  subset: subset$2,
2437
  ancestors: ancestors$4,
2452
  };
2453
  var isRectangular = function (warehouse, bounds) {
2454
  var isRect = true;
2455
+ var detailIsWithin = curry(isWithin, bounds);
2456
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
2457
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
2458
+ isRect = isRect && $_eesv8pmajjgwedcx.getAt(warehouse, i, j).exists(detailIsWithin);
2459
  }
2460
  }
2461
  return isRect ? Option.some(bounds) : Option.none();
2462
  };
2463
+ var $_g3utsdn0jjgwedjo = {
2464
  inSelection: inSelection,
2465
  isWithin: isWithin,
2466
  isRectangular: isRectangular
2467
  };
2468
 
2469
  var getBounds = function (detailA, detailB) {
2470
+ return $_6lasqllcjjgwed80.bounds(Math.min(detailA.row(), detailB.row()), Math.min(detailA.column(), detailB.column()), Math.max(detailA.row() + detailA.rowspan() - 1, detailB.row() + detailB.rowspan() - 1), Math.max(detailA.column() + detailA.colspan() - 1, detailB.column() + detailB.colspan() - 1));
2471
  };
2472
  var getAnyBox = function (warehouse, startCell, finishCell) {
2473
+ var startCoords = $_eesv8pmajjgwedcx.findItem(warehouse, startCell, $_e1yh5slljjgwedae.eq);
2474
+ var finishCoords = $_eesv8pmajjgwedcx.findItem(warehouse, finishCell, $_e1yh5slljjgwedae.eq);
2475
  return startCoords.bind(function (sc) {
2476
  return finishCoords.map(function (fc) {
2477
  return getBounds(sc, fc);
2480
  };
2481
  var getBox = function (warehouse, startCell, finishCell) {
2482
  return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {
2483
+ return $_g3utsdn0jjgwedjo.isRectangular(warehouse, bounds);
2484
  });
2485
  };
2486
+ var $_g6zsxdn1jjgwedju = {
2487
  getAnyBox: getAnyBox,
2488
  getBox: getBox
2489
  };
2490
 
2491
  var moveBy = function (warehouse, cell, row, column) {
2492
+ return $_eesv8pmajjgwedcx.findItem(warehouse, cell, $_e1yh5slljjgwedae.eq).bind(function (detail) {
2493
  var startRow = row > 0 ? detail.row() + detail.rowspan() - 1 : detail.row();
2494
  var startCol = column > 0 ? detail.column() + detail.colspan() - 1 : detail.column();
2495
+ var dest = $_eesv8pmajjgwedcx.getAt(warehouse, startRow + row, startCol + column);
2496
  return dest.map(function (d) {
2497
  return d.element();
2498
  });
2499
  });
2500
  };
2501
  var intercepts = function (warehouse, start, finish) {
2502
+ return $_g6zsxdn1jjgwedju.getAnyBox(warehouse, start, finish).map(function (bounds) {
2503
+ var inside = $_eesv8pmajjgwedcx.filterItems(warehouse, curry($_g3utsdn0jjgwedjo.inSelection, bounds));
2504
+ return map(inside, function (detail) {
2505
  return detail.element();
2506
  });
2507
  });
2508
  };
2509
  var parentCell = function (warehouse, innerCell) {
2510
  var isContainedBy = function (c1, c2) {
2511
+ return $_e1yh5slljjgwedae.contains(c2, c1);
2512
  };
2513
+ return $_eesv8pmajjgwedcx.findItem(warehouse, innerCell, isContainedBy).bind(function (detail) {
2514
  return detail.element();
2515
  });
2516
  };
2517
+ var $_41dnyxmzjjgwedjh = {
2518
  moveBy: moveBy,
2519
  intercepts: intercepts,
2520
  parentCell: parentCell
2521
  };
2522
 
2523
  var moveBy$1 = function (cell, deltaRow, deltaColumn) {
2524
+ return $_bmlvw1ldjjgwed84.table(cell).bind(function (table) {
2525
  var warehouse = getWarehouse(table);
2526
+ return $_41dnyxmzjjgwedjh.moveBy(warehouse, cell, deltaRow, deltaColumn);
2527
  });
2528
  };
2529
  var intercepts$1 = function (table, first, last) {
2530
  var warehouse = getWarehouse(table);
2531
+ return $_41dnyxmzjjgwedjh.intercepts(warehouse, first, last);
2532
  };
2533
  var nestedIntercepts = function (table, first, firstTable, last, lastTable) {
2534
  var warehouse = getWarehouse(table);
2535
+ var startCell = $_e1yh5slljjgwedae.eq(table, firstTable) ? first : $_41dnyxmzjjgwedjh.parentCell(warehouse, first);
2536
+ var lastCell = $_e1yh5slljjgwedae.eq(table, lastTable) ? last : $_41dnyxmzjjgwedjh.parentCell(warehouse, last);
2537
+ return $_41dnyxmzjjgwedjh.intercepts(warehouse, startCell, lastCell);
2538
  };
2539
  var getBox$1 = function (table, first, last) {
2540
  var warehouse = getWarehouse(table);
2541
+ return $_g6zsxdn1jjgwedju.getBox(warehouse, first, last);
2542
  };
2543
  var getWarehouse = function (table) {
2544
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
2545
+ return $_eesv8pmajjgwedcx.generate(list);
2546
  };
2547
+ var $_10bmormyjjgwedjc = {
2548
  moveBy: moveBy$1,
2549
  intercepts: intercepts$1,
2550
  nestedIntercepts: nestedIntercepts,
2552
  };
2553
 
2554
  var lookupTable = function (container, isRoot) {
2555
+ return $_2e7p77m7jjgwedcg.ancestor(container, 'table');
2556
  };
2557
+ var identified = MixedBag([
2558
  'boxes',
2559
  'start',
2560
  'finish'
2562
  var identify = function (start, finish, isRoot) {
2563
  var getIsRoot = function (rootTable) {
2564
  return function (element) {
2565
+ return isRoot(element) || $_e1yh5slljjgwedae.eq(element, rootTable);
2566
  };
2567
  };
2568
+ if ($_e1yh5slljjgwedae.eq(start, finish)) {
2569
  return Option.some(identified({
2570
  boxes: Option.some([start]),
2571
  start: start,
2574
  } else {
2575
  return lookupTable(start, isRoot).bind(function (startTable) {
2576
  return lookupTable(finish, isRoot).bind(function (finishTable) {
2577
+ if ($_e1yh5slljjgwedae.eq(startTable, finishTable)) {
2578
  return Option.some(identified({
2579
+ boxes: $_10bmormyjjgwedjc.intercepts(startTable, start, finish),
2580
  start: start,
2581
  finish: finish
2582
  }));
2583
+ } else if ($_e1yh5slljjgwedae.contains(startTable, finishTable)) {
2584
+ var ancestorCells = $_5ko5j3m4jjgwedc0.ancestors(finish, 'td,th', getIsRoot(startTable));
2585
  var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;
2586
  return Option.some(identified({
2587
+ boxes: $_10bmormyjjgwedjc.nestedIntercepts(startTable, start, startTable, finish, finishTable),
2588
  start: start,
2589
  finish: finishCell
2590
  }));
2591
+ } else if ($_e1yh5slljjgwedae.contains(finishTable, startTable)) {
2592
+ var ancestorCells = $_5ko5j3m4jjgwedc0.ancestors(start, 'td,th', getIsRoot(finishTable));
2593
  var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;
2594
  return Option.some(identified({
2595
+ boxes: $_10bmormyjjgwedjc.nestedIntercepts(finishTable, start, startTable, finish, finishTable),
2596
  start: start,
2597
  finish: startCell
2598
  }));
2599
  } else {
2600
+ return $_92t9ismrjjgwedhe.ancestors(start, finish).shared().bind(function (lca) {
2601
+ return $_2e7p77m7jjgwedcg.closest(lca, 'table', isRoot).bind(function (lcaTable) {
2602
+ var finishAncestorCells = $_5ko5j3m4jjgwedc0.ancestors(finish, 'td,th', getIsRoot(lcaTable));
2603
  var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;
2604
+ var startAncestorCells = $_5ko5j3m4jjgwedc0.ancestors(start, 'td,th', getIsRoot(lcaTable));
2605
  var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;
2606
  return Option.some(identified({
2607
+ boxes: $_10bmormyjjgwedjc.nestedIntercepts(lcaTable, start, startTable, finish, finishTable),
2608
  start: startCell,
2609
  finish: finishCell
2610
  }));
2616
  }
2617
  };
2618
  var retrieve = function (container, selector) {
2619
+ var sels = $_5ko5j3m4jjgwedc0.descendants(container, selector);
2620
  return sels.length > 0 ? Option.some(sels) : Option.none();
2621
  };
2622
  var getLast = function (boxes, lastSelectedSelector) {
2623
+ return find(boxes, function (box) {
2624
+ return $_5htea7lfjjgwed94.is(box, lastSelectedSelector);
2625
  });
2626
  };
2627
  var getEdges = function (container, firstSelectedSelector, lastSelectedSelector) {
2628
+ return $_2e7p77m7jjgwedcg.descendant(container, firstSelectedSelector).bind(function (first) {
2629
+ return $_2e7p77m7jjgwedcg.descendant(container, lastSelectedSelector).bind(function (last$$1) {
2630
+ return $_92t9ismrjjgwedhe.sharedOne(lookupTable, [
2631
  first,
2632
+ last$$1
2633
  ]).map(function (tbl) {
2634
  return {
2635
+ first: constant(first),
2636
+ last: constant(last$$1),
2637
+ table: constant(tbl)
2638
  };
2639
  });
2640
  });
2641
  });
2642
  };
2643
  var expandTo = function (finish, firstSelectedSelector) {
2644
+ return $_2e7p77m7jjgwedcg.ancestor(finish, 'table').bind(function (table) {
2645
+ return $_2e7p77m7jjgwedcg.descendant(table, firstSelectedSelector).bind(function (start) {
2646
  return identify(start, finish).bind(function (identified) {
2647
  return identified.boxes().map(function (boxes) {
2648
  return {
2649
+ boxes: constant(boxes),
2650
+ start: constant(identified.start()),
2651
+ finish: constant(identified.finish())
2652
  };
2653
  });
2654
  });
2656
  });
2657
  };
2658
  var shiftSelection = function (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) {
2659
+ return getLast(boxes, lastSelectedSelector).bind(function (last$$1) {
2660
+ return $_10bmormyjjgwedjc.moveBy(last$$1, deltaRow, deltaColumn).bind(function (finish) {
2661
  return expandTo(finish, firstSelectedSelector);
2662
  });
2663
  });
2664
  };
2665
+ var $_cl87acmqjjgwedgo = {
2666
  identify: identify,
2667
  retrieve: retrieve,
2668
  shiftSelection: shiftSelection,
2670
  };
2671
 
2672
  var retrieve$1 = function (container, selector) {
2673
+ return $_cl87acmqjjgwedgo.retrieve(container, selector);
2674
  };
2675
  var retrieveBox = function (container, firstSelectedSelector, lastSelectedSelector) {
2676
+ return $_cl87acmqjjgwedgo.getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(function (edges) {
2677
  var isRoot = function (ancestor) {
2678
+ return $_e1yh5slljjgwedae.eq(container, ancestor);
2679
  };
2680
+ var firstAncestor = $_2e7p77m7jjgwedcg.ancestor(edges.first(), 'thead,tfoot,tbody,table', isRoot);
2681
+ var lastAncestor = $_2e7p77m7jjgwedcg.ancestor(edges.last(), 'thead,tfoot,tbody,table', isRoot);
2682
  return firstAncestor.bind(function (fA) {
2683
  return lastAncestor.bind(function (lA) {
2684
+ return $_e1yh5slljjgwedae.eq(fA, lA) ? $_10bmormyjjgwedjc.getBox(edges.table(), edges.first(), edges.last()) : Option.none();
2685
  });
2686
  });
2687
  });
2688
  };
2689
+ var $_9sh63kmpjjgwedg7 = {
2690
  retrieve: retrieve$1,
2691
  retrieveBox: retrieveBox
2692
  };
2698
  var firstSelectedSelector = 'td[' + firstSelected + '],th[' + firstSelected + ']';
2699
  var lastSelected = 'data-mce-last-selected';
2700
  var lastSelectedSelector = 'td[' + lastSelected + '],th[' + lastSelected + ']';
2701
+ var $_b2a4bzn2jjgwedjz = {
2702
+ selected: constant(selected),
2703
+ selectedSelector: constant(selectedSelector),
2704
+ attributeSelector: constant(attributeSelector),
2705
+ firstSelected: constant(firstSelected),
2706
+ firstSelectedSelector: constant(firstSelectedSelector),
2707
+ lastSelected: constant(lastSelected),
2708
+ lastSelectedSelector: constant(lastSelectedSelector)
2709
  };
2710
 
2711
  var generate$1 = function (cases) {
2712
+ if (!isArray(cases)) {
2713
  throw new Error('cases must be an array');
2714
  }
2715
  if (cases.length === 0) {
2717
  }
2718
  var constructors = [];
2719
  var adt = {};
2720
+ each(cases, function (acase, count) {
2721
+ var keys$$1 = keys(acase);
2722
+ if (keys$$1.length !== 1) {
2723
  throw new Error('one and only one name per case');
2724
  }
2725
+ var key = keys$$1[0];
2726
  var value = acase[key];
2727
  if (adt[key] !== undefined) {
2728
  throw new Error('duplicate key detected:' + key);
2729
  } else if (key === 'cata') {
2730
  throw new Error('cannot have a case named cata (sorry)');
2731
+ } else if (!isArray(value)) {
2732
  throw new Error('case arguments must be an array');
2733
  }
2734
  constructors.push(key);
2741
  for (var i = 0; i < args.length; i++)
2742
  args[i] = arguments[i];
2743
  var match = function (branches) {
2744
+ var branchKeys = keys(branches);
2745
  if (constructors.length !== branchKeys.length) {
2746
  throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\nActual: ' + branchKeys.join(','));
2747
  }
2748
+ var allReqd = forall(constructors, function (reqKey) {
2749
+ return contains(branchKeys, reqKey);
2750
  });
2751
  if (!allReqd)
2752
  throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
2773
  });
2774
  return adt;
2775
  };
2776
+ var Adt = { generate: generate$1 };
2777
 
2778
+ var type$1 = Adt.generate([
2779
  { none: [] },
2780
  { multiple: ['elements'] },
2781
  { single: ['selection'] }
2783
  var cata = function (subject, onNone, onMultiple, onSingle) {
2784
  return subject.fold(onNone, onMultiple, onSingle);
2785
  };
2786
+ var $_a362bzn3jjgwedk2 = {
2787
  cata: cata,
2788
  none: type$1.none,
2789
  multiple: type$1.multiple,
2791
  };
2792
 
2793
  var selection = function (cell, selections) {
2794
+ return $_a362bzn3jjgwedk2.cata(selections.get(), constant([]), identity, constant([cell]));
2795
  };
2796
  var unmergable = function (cell, selections) {
2797
  var hasSpan = function (elem) {
2798
+ return $_72hn9pm2jjgwedbq.has(elem, 'rowspan') && parseInt($_72hn9pm2jjgwedbq.get(elem, 'rowspan'), 10) > 1 || $_72hn9pm2jjgwedbq.has(elem, 'colspan') && parseInt($_72hn9pm2jjgwedbq.get(elem, 'colspan'), 10) > 1;
2799
  };
2800
  var candidates = selection(cell, selections);
2801
+ return candidates.length > 0 && forall(candidates, hasSpan) ? Option.some(candidates) : Option.none();
2802
  };
2803
  var mergable = function (table, selections) {
2804
+ return $_a362bzn3jjgwedk2.cata(selections.get(), Option.none, function (cells, _env) {
2805
  if (cells.length === 0) {
2806
  return Option.none();
2807
  }
2808
+ return $_9sh63kmpjjgwedg7.retrieveBox(table, $_b2a4bzn2jjgwedjz.firstSelectedSelector(), $_b2a4bzn2jjgwedjz.lastSelectedSelector()).bind(function (bounds) {
2809
  return cells.length > 1 ? Option.some({
2810
+ bounds: constant(bounds),
2811
+ cells: constant(cells)
2812
  }) : Option.none();
2813
  });
2814
  }, Option.none);
2815
  };
2816
+ var $_4hmt1amojjgwedfl = {
2817
  mergable: mergable,
2818
  unmergable: unmergable,
2819
  selection: selection
2821
 
2822
  var noMenu = function (cell) {
2823
  return {
2824
+ element: constant(cell),
2825
  mergable: Option.none,
2826
  unmergable: Option.none,
2827
+ selection: constant([cell])
2828
  };
2829
  };
2830
  var forMenu = function (selections, table, cell) {
2831
  return {
2832
+ element: constant(cell),
2833
+ mergable: constant($_4hmt1amojjgwedfl.mergable(table, selections)),
2834
+ unmergable: constant($_4hmt1amojjgwedfl.unmergable(cell, selections)),
2835
+ selection: constant($_4hmt1amojjgwedfl.selection(cell, selections))
2836
  };
2837
  };
2838
  var notCell$1 = function (element) {
2839
  return noMenu(element);
2840
  };
2841
+ var paste$1 = Immutable('element', 'clipboard', 'generators');
2842
  var pasteRows = function (selections, table, cell, clipboard, generators) {
2843
  return {
2844
+ element: constant(cell),
2845
  mergable: Option.none,
2846
  unmergable: Option.none,
2847
+ selection: constant($_4hmt1amojjgwedfl.selection(cell, selections)),
2848
+ clipboard: constant(clipboard),
2849
+ generators: constant(generators)
2850
  };
2851
  };
2852
+ var $_a5s279mnjjgwedff = {
2853
  noMenu: noMenu,
2854
  forMenu: forMenu,
2855
  notCell: notCell$1,
2858
  };
2859
 
2860
  var extractSelected = function (cells) {
2861
+ return $_bmlvw1ldjjgwed84.table(cells[0]).map($_ginehlmhjjgwedet.deep).map(function (replica) {
2862
+ return [$_22kbdsl5jjgwed6v.extract(replica, $_b2a4bzn2jjgwedjz.attributeSelector())];
2863
  });
2864
  };
2865
  var serializeElement = function (editor, elm) {
2870
  var multiCellContext = function (cells) {
2871
  e.preventDefault();
2872
  extractSelected(cells).each(function (elements) {
2873
+ e.content = map(elements, function (elm) {
2874
  return serializeElement(editor, elm);
2875
  }).join('');
2876
  });
2877
  };
2878
  if (e.selection === true) {
2879
+ $_a362bzn3jjgwedk2.cata(selections.get(), noop, multiCellContext, noop);
2880
  }
2881
  });
2882
  editor.on('BeforeSetContent', function (e) {
2883
  if (e.selection === true && e.paste === true) {
2884
  var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
2885
  cellOpt.each(function (domCell) {
2886
+ var cell = Element$$1.fromDom(domCell);
2887
+ var table = $_bmlvw1ldjjgwed84.table(cell);
2888
  table.bind(function (table) {
2889
+ var elements = filter($_4bkah5mmjjgwedfb.fromHtml(e.content), function (content) {
2890
+ return $_g6duvbm3jjgwedby.name(content) !== 'meta';
2891
  });
2892
+ if (elements.length === 1 && $_g6duvbm3jjgwedby.name(elements[0]) === 'table') {
2893
  e.preventDefault();
2894
+ var doc = Element$$1.fromDom(editor.getDoc());
2895
+ var generators = $_cne69smgjjgweddy.paste(doc);
2896
+ var targets = $_a5s279mnjjgwedff.paste(cell, elements[0], generators);
2897
  actions.pasteCells(table, targets).each(function (rng) {
2898
  editor.selection.setRng(rng);
2899
  editor.focus();
2905
  }
2906
  });
2907
  };
2908
+ var $_fqjxp5l0jjgwed5s = { registerEvents: registerEvents };
2909
 
2910
  function Dimension (name, getOffset) {
2911
  var set = function (element, h) {
2912
+ if (!isNumber(h) && !h.match(/^[0-9]+$/))
2913
  throw name + '.set accepts only positive integer values. Value was ' + h;
2914
  var dom = element.dom();
2915
+ if ($_5f4hknmcjjgweddm.isSupported(dom))
2916
  dom.style[name] = h + 'px';
2917
  };
2918
  var get = function (element) {
2919
  var r = getOffset(element);
2920
  if (r <= 0 || r === null) {
2921
+ var css = $_59neaymbjjgwedd8.get(element, name);
2922
  return parseFloat(css) || 0;
2923
  }
2924
  return r;
2925
  };
2926
  var getOuter = get;
2927
  var aggregate = function (element, properties) {
2928
+ return foldl(properties, function (acc, property) {
2929
+ var val = $_59neaymbjjgwedd8.get(element, property);
2930
  var value = val === undefined ? 0 : parseInt(val, 10);
2931
  return isNaN(value) ? acc : acc + value;
2932
  }, 0);
2946
  }
2947
 
2948
  var api$1 = Dimension('height', function (element) {
2949
+ var dom = element.dom();
2950
+ return $_95kxntm6jjgwedc6.inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;
2951
  });
2952
  var set$3 = function (element, h) {
2953
  api$1.set(element, h);
2968
  'margin-bottom'
2969
  ];
2970
  var absMax = api$1.max(element, value, inclusions);
2971
+ $_59neaymbjjgwedd8.set(element, 'max-height', absMax + 'px');
2972
  };
2973
+ var $_da9rlin9jjgwedlp = {
2974
  set: set$3,
2975
  get: get$3,
2976
  getOuter: getOuter,
2999
  'margin-right'
3000
  ];
3001
  var absMax = api$2.max(element, value, inclusions);
3002
+ $_59neaymbjjgwedd8.set(element, 'max-width', absMax + 'px');
3003
  };
3004
+ var $_ga29tsnbjjgwedly = {
3005
  set: set$4,
3006
  get: get$4,
3007
  getOuter: getOuter$1,
3008
  setMax: setMax$1
3009
  };
3010
 
3011
+ var platform = $_avfe9dlqjjgwedat.detect();
3012
  var needManualCalc = function () {
3013
  return platform.browser.isIE() || platform.browser.isEdge();
3014
  };
3017
  return isNaN(num) ? fallback : num;
3018
  };
3019
  var getProp = function (elm, name, fallback) {
3020
+ return toNumber($_59neaymbjjgwedd8.get(elm, name), fallback);
3021
  };
3022
  var getCalculatedHeight = function (cell) {
3023
  var paddingTop = getProp(cell, 'padding-top', 0);
3025
  var borderTop = getProp(cell, 'border-top-width', 0);
3026
  var borderBottom = getProp(cell, 'border-bottom-width', 0);
3027
  var height = cell.dom().getBoundingClientRect().height;
3028
+ var boxSizing = $_59neaymbjjgwedd8.get(cell, 'box-sizing');
3029
  var borders = borderTop + borderBottom;
3030
  return boxSizing === 'border-box' ? height : height - paddingTop - paddingBottom - borders;
3031
  };
3032
  var getWidth = function (cell) {
3033
+ return getProp(cell, 'width', $_ga29tsnbjjgwedly.get(cell));
3034
  };
3035
  var getHeight = function (cell) {
3036
+ return needManualCalc() ? getCalculatedHeight(cell) : getProp(cell, 'height', $_da9rlin9jjgwedlp.get(cell));
3037
  };
3038
+ var $_a9ivafn8jjgwedlg = {
3039
  getWidth: getWidth,
3040
  getHeight: getHeight
3041
  };
3044
  var percentageBasedSizeRegex = /(\d+(\.\d+)?)%/;
3045
  var pixelBasedSizeRegex = /(\d+(\.\d+)?)px|em/;
3046
  var setPixelWidth = function (cell, amount) {
3047
+ $_59neaymbjjgwedd8.set(cell, 'width', amount + 'px');
3048
  };
3049
  var setPercentageWidth = function (cell, amount) {
3050
+ $_59neaymbjjgwedd8.set(cell, 'width', amount + '%');
3051
  };
3052
  var setHeight = function (cell, amount) {
3053
+ $_59neaymbjjgwedd8.set(cell, 'height', amount + 'px');
3054
  };
3055
  var getHeightValue = function (cell) {
3056
+ return $_59neaymbjjgwedd8.getRaw(cell, 'height').getOrThunk(function () {
3057
+ return $_a9ivafn8jjgwedlg.getHeight(cell) + 'px';
3058
  });
3059
  };
3060
  var convert = function (cell, number, getter, setter) {
3061
+ var newSize = $_bmlvw1ldjjgwed84.table(cell).map(function (table) {
3062
  var total = getter(table);
3063
  return Math.floor(number / 100 * total);
3064
  }).getOr(number);
3067
  };
3068
  var normalizePixelSize = function (value, cell, getter, setter) {
3069
  var number = parseInt(value, 10);
3070
+ return endsWith(value, '%') && $_g6duvbm3jjgwedby.name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;
3071
  };
3072
  var getTotalHeight = function (cell) {
3073
  var value = getHeightValue(cell);
3074
  if (!value)
3075
+ return $_da9rlin9jjgwedlp.get(cell);
3076
+ return normalizePixelSize(value, cell, $_da9rlin9jjgwedlp.get, setHeight);
3077
  };
3078
  var get$5 = function (cell, type, f) {
3079
  var v = f(cell);
3081
  return v / span;
3082
  };
3083
  var getSpan = function (cell, type) {
3084
+ return $_72hn9pm2jjgwedbq.has(cell, type) ? parseInt($_72hn9pm2jjgwedbq.get(cell, type), 10) : 1;
3085
  };
3086
  var getRawWidth = function (element) {
3087
+ var cssWidth = $_59neaymbjjgwedd8.getRaw(element, 'width');
3088
  return cssWidth.fold(function () {
3089
+ return Option.from($_72hn9pm2jjgwedbq.get(element, 'width'));
3090
  }, function (width) {
3091
  return Option.some(width);
3092
  });
3099
  var percentMatch = percentageBasedSizeRegex.exec(width);
3100
  return parseFloat(percentMatch[1]);
3101
  } else {
3102
+ var intWidth = $_ga29tsnbjjgwedly.get(element);
 
3103
  return normalizePercentageWidth(intWidth, tableSize);
3104
  }
3105
  };
3106
  var getPercentageWidth = function (cell, tableSize) {
3107
  var width = getRawWidth(cell);
3108
  return width.fold(function () {
3109
+ var intWidth = $_ga29tsnbjjgwedly.get(cell);
 
3110
  return normalizePercentageWidth(intWidth, tableSize);
3111
  }, function (width) {
3112
  return choosePercentageSize(cell, width, tableSize);
3124
  var floatWidth = parseFloat(percentMatch[1]);
3125
  return normalizePixelWidth(floatWidth, tableSize);
3126
  } else {
3127
+ return $_ga29tsnbjjgwedly.get(element);
 
3128
  }
3129
  };
3130
  var getPixelWidth = function (cell, tableSize) {
3131
  var width = getRawWidth(cell);
3132
  return width.fold(function () {
3133
+ return $_ga29tsnbjjgwedly.get(cell);
 
 
3134
  }, function (width) {
3135
  return choosePixelSize(cell, width, tableSize);
3136
  });
3144
  if (genericSizeRegex.test(width)) {
3145
  var match = genericSizeRegex.exec(width);
3146
  return Option.some({
3147
+ width: constant(match[1]),
3148
+ unit: constant(match[3])
3149
  });
3150
  } else {
3151
  return Option.none();
3153
  });
3154
  };
3155
  var setGenericWidth = function (cell, amount, unit) {
3156
+ $_59neaymbjjgwedd8.set(cell, 'width', amount + unit);
3157
  };
3158
+ var $_b9jva9n7jjgwedkv = {
3159
+ percentageBasedSizeRegex: constant(percentageBasedSizeRegex),
3160
+ pixelBasedSizeRegex: constant(pixelBasedSizeRegex),
3161
  setPixelWidth: setPixelWidth,
3162
  setPercentageWidth: setPercentageWidth,
3163
  setHeight: setHeight,
3170
  };
3171
 
3172
  var halve = function (main, other) {
3173
+ var width = $_b9jva9n7jjgwedkv.getGenericWidth(main);
3174
  width.each(function (width) {
3175
  var newWidth = width.width() / 2;
3176
+ $_b9jva9n7jjgwedkv.setGenericWidth(main, newWidth, width.unit());
3177
+ $_b9jva9n7jjgwedkv.setGenericWidth(other, newWidth, width.unit());
3178
  });
3179
  };
3180
+ var $_ajdo6on6jjgwedks = { halve: halve };
3181
 
3182
  var attached = function (element, scope) {
3183
+ var doc = scope || Element$$1.fromDom(document.documentElement);
3184
+ return $_6l4e4m8jjgwedci.ancestor(element, curry($_e1yh5slljjgwedae.eq, doc)).isSome();
3185
  };
3186
  var windowOf = function (element) {
3187
  var dom = element.dom();
3188
+ if (dom === dom.window && element instanceof Window)
3189
  return element;
3190
+ return $_g6duvbm3jjgwedby.isDocument(element) ? dom.defaultView || dom.parentWindow : null;
3191
  };
3192
+ var $_f9m22angjjgwedmn = {
3193
  attached: attached,
3194
  windowOf: windowOf
3195
  };
3199
  return r(left + x, top + y);
3200
  };
3201
  return {
3202
+ left: constant(left),
3203
+ top: constant(top),
3204
  translate: translate
3205
  };
3206
  };
3207
+ var Position = r;
3208
 
3209
  var boxPosition = function (dom) {
3210
  var box = dom.getBoundingClientRect();
3211
+ return Position(box.left, box.top);
3212
  };
3213
  var firstDefinedOrZero = function (a, b) {
3214
  return a !== undefined ? a : b !== undefined ? b : 0;
3216
  var absolute = function (element) {
3217
  var doc = element.dom().ownerDocument;
3218
  var body = doc.body;
3219
+ var win = $_f9m22angjjgwedmn.windowOf(Element$$1.fromDom(doc));
3220
  var html = doc.documentElement;
3221
  var scrollTop = firstDefinedOrZero(win.pageYOffset, html.scrollTop);
3222
  var scrollLeft = firstDefinedOrZero(win.pageXOffset, html.scrollLeft);
3226
  };
3227
  var relative = function (element) {
3228
  var dom = element.dom();
3229
+ return Position(dom.offsetLeft, dom.offsetTop);
3230
  };
3231
  var viewport = function (element) {
3232
  var dom = element.dom();
3233
  var doc = dom.ownerDocument;
3234
  var body = doc.body;
3235
+ var html = Element$$1.fromDom(doc.documentElement);
3236
  if (body === dom)
3237
+ return Position(body.offsetLeft, body.offsetTop);
3238
+ if (!$_f9m22angjjgwedmn.attached(element, html))
3239
+ return Position(0, 0);
3240
  return boxPosition(dom);
3241
  };
3242
+ var $_emicwtnfjjgwedml = {
3243
  absolute: absolute,
3244
  relative: relative,
3245
  viewport: viewport
3246
  };
3247
 
3248
+ var rowInfo = Immutable('row', 'y');
3249
+ var colInfo = Immutable('col', 'x');
3250
  var rtlEdge = function (cell) {
3251
+ var pos = $_emicwtnfjjgwedml.absolute(cell);
3252
+ return pos.left() + $_ga29tsnbjjgwedly.getOuter(cell);
3253
  };
3254
  var ltrEdge = function (cell) {
3255
+ return $_emicwtnfjjgwedml.absolute(cell).left();
3256
  };
3257
  var getLeftEdge = function (index, cell) {
3258
  return colInfo(index, ltrEdge(cell));
3261
  return colInfo(index, rtlEdge(cell));
3262
  };
3263
  var getTop = function (cell) {
3264
+ return $_emicwtnfjjgwedml.absolute(cell).top();
3265
  };
3266
  var getTopEdge = function (index, cell) {
3267
  return rowInfo(index, getTop(cell));
3268
  };
3269
  var getBottomEdge = function (index, cell) {
3270
+ return rowInfo(index, getTop(cell) + $_da9rlin9jjgwedlp.getOuter(cell));
3271
  };
3272
  var findPositions = function (getInnerEdge, getOuterEdge, array) {
3273
  if (array.length === 0)
3274
  return [];
3275
+ var lines = map(array.slice(1), function (cellOption, index) {
3276
  return cellOption.map(function (cell) {
3277
  return getInnerEdge(index, cell);
3278
  });
3286
  return -step;
3287
  };
3288
  var height = {
3289
+ delta: identity,
3290
+ positions: curry(findPositions, getTopEdge, getBottomEdge),
3291
  edge: getTop
3292
  };
3293
  var ltr = {
3294
+ delta: identity,
3295
  edge: ltrEdge,
3296
+ positions: curry(findPositions, getLeftEdge, getRightEdge)
3297
  };
3298
  var rtl = {
3299
  delta: negate,
3300
  edge: rtlEdge,
3301
+ positions: curry(findPositions, getRightEdge, getLeftEdge)
3302
  };
3303
+ var $_fsi6i6nejjgwedm2 = {
3304
  height: height,
3305
  rtl: rtl,
3306
  ltr: ltr
3307
  };
3308
 
3309
+ var $_ghqfhundjjgwedm1 = {
3310
+ ltr: $_fsi6i6nejjgwedm2.ltr,
3311
+ rtl: $_fsi6i6nejjgwedm2.rtl
3312
  };
3313
 
3314
  function TableDirection (directionAt) {
3315
  var auto = function (table) {
3316
+ return directionAt(table).isRtl() ? $_ghqfhundjjgwedm1.rtl : $_ghqfhundjjgwedm1.ltr;
3317
  };
3318
  var delta = function (amount, table) {
3319
  return auto(table).delta(amount, table);
3332
  }
3333
 
3334
  var getGridSize = function (table) {
3335
+ var input = $_da6e59lbjjgwed7r.fromTable(table);
3336
+ var warehouse = $_eesv8pmajjgwedcx.generate(input);
3337
  return warehouse.grid();
3338
  };
3339
+ var $_6hdhmfnijjgwedmv = { getGridSize: getGridSize };
3340
 
3341
  var Cell = function (initial) {
3342
  var value = initial;
3358
 
3359
  var base = function (handleUnsupported, required) {
3360
  return baseWith(handleUnsupported, required, {
3361
+ validate: isFunction,
3362
  label: 'function'
3363
  });
3364
  };
3365
  var baseWith = function (handleUnsupported, required, pred) {
3366
  if (required.length === 0)
3367
  throw new Error('You must specify at least one required field.');
3368
+ validateStrArr('required', required);
3369
+ checkDupes(required);
3370
  return function (obj) {
3371
+ var keys$$1 = keys(obj);
3372
+ var allReqd = forall(required, function (req) {
3373
+ return contains(keys$$1, req);
3374
  });
3375
  if (!allReqd)
3376
+ reqMessage(required, keys$$1);
3377
+ handleUnsupported(required, keys$$1);
3378
+ var invalidKeys = filter(required, function (key) {
3379
  return !pred.validate(obj[key], key);
3380
  });
3381
  if (invalidKeys.length > 0)
3382
+ invalidTypeMessage(invalidKeys, pred.label);
3383
  return obj;
3384
  };
3385
  };
3386
+ var handleExact = function (required, keys$$1) {
3387
+ var unsupported = filter(keys$$1, function (key) {
3388
+ return !contains(required, key);
3389
  });
3390
  if (unsupported.length > 0)
3391
+ unsuppMessage(unsupported);
3392
  };
3393
+ var exactly = function (required) {
3394
+ return base(handleExact, required);
 
 
 
3395
  };
3396
 
3397
  var elementToData = function (element) {
3398
+ var colspan = $_72hn9pm2jjgwedbq.has(element, 'colspan') ? parseInt($_72hn9pm2jjgwedbq.get(element, 'colspan'), 10) : 1;
3399
+ var rowspan = $_72hn9pm2jjgwedbq.has(element, 'rowspan') ? parseInt($_72hn9pm2jjgwedbq.get(element, 'rowspan'), 10) : 1;
3400
  return {
3401
+ element: constant(element),
3402
+ colspan: constant(colspan),
3403
+ rowspan: constant(rowspan)
3404
  };
3405
  };
3406
  var modification = function (generators, _toData) {
3442
  var position = Cell(Option.none());
3443
  contract(generators);
3444
  var list = [];
3445
+ var find$$1 = function (element, comparator) {
3446
+ return find(list, function (x) {
3447
  return comparator(x.item, element);
3448
  });
3449
  };
3458
  return cell;
3459
  };
3460
  var replaceOrInit = function (element, comparator) {
3461
+ return find$$1(element, comparator).fold(function () {
3462
  return makeNew(element);
3463
  }, function (p) {
3464
  return comparator(element, p.item) ? p.sub : makeNew(element);
3478
  position.set(Option.some(cell));
3479
  return function () {
3480
  var raw = generators.cell({
3481
+ element: constant(cell),
3482
+ colspan: constant(1),
3483
+ rowspan: constant(1)
3484
  });
3485
+ $_59neaymbjjgwedd8.remove(raw, 'width');
3486
+ $_59neaymbjjgwedd8.remove(cell, 'width');
3487
  return raw;
3488
  };
3489
  };
3492
  cursor: position.get
3493
  };
3494
  };
3495
+ var contract = exactly([
3496
  'cell',
3497
  'row',
3498
  'replace',
3499
  'gap'
3500
  ]);
3501
+ var $_5kytwlnkjjgwednf = {
3502
  modification: modification,
3503
  transform: transform,
3504
  merging: merging
3538
  ];
3539
  var isList = function (universe, item) {
3540
  var tagName = universe.property().name(item);
3541
+ return contains([
3542
  'ol',
3543
  'ul'
3544
  ], tagName);
3545
  };
3546
  var isBlock = function (universe, item) {
3547
  var tagName = universe.property().name(item);
3548
+ return contains(blockList, tagName);
3549
  };
3550
  var isFormatting = function (universe, item) {
3551
  var tagName = universe.property().name(item);
3552
+ return contains([
3553
  'address',
3554
  'pre',
3555
  'p',
3563
  };
3564
  var isHeading = function (universe, item) {
3565
  var tagName = universe.property().name(item);
3566
+ return contains([
3567
  'h1',
3568
  'h2',
3569
  'h3',
3573
  ], tagName);
3574
  };
3575
  var isContainer = function (universe, item) {
3576
+ return contains([
3577
  'div',
3578
  'li',
3579
  'td',
3584
  ], universe.property().name(item));
3585
  };
3586
  var isEmptyTag = function (universe, item) {
3587
+ return contains([
3588
  'br',
3589
  'img',
3590
  'hr',
3597
  var isInline = function (universe, item) {
3598
  return !(isBlock(universe, item) || isEmptyTag(universe, item)) && universe.property().name(item) !== 'li';
3599
  };
3600
+ var $_foqbk4npjjgwedoy = {
3601
  isBlock: isBlock,
3602
  isList: isList,
3603
  isFormatting: isFormatting,
3610
 
3611
  var universe$1 = DomUniverse();
3612
  var isBlock$1 = function (element) {
3613
+ return $_foqbk4npjjgwedoy.isBlock(universe$1, element);
3614
  };
3615
  var isList$1 = function (element) {
3616
+ return $_foqbk4npjjgwedoy.isList(universe$1, element);
3617
  };
3618
  var isFormatting$1 = function (element) {
3619
+ return $_foqbk4npjjgwedoy.isFormatting(universe$1, element);
3620
  };
3621
  var isHeading$1 = function (element) {
3622
+ return $_foqbk4npjjgwedoy.isHeading(universe$1, element);
3623
  };
3624
  var isContainer$1 = function (element) {
3625
+ return $_foqbk4npjjgwedoy.isContainer(universe$1, element);
3626
  };
3627
  var isEmptyTag$1 = function (element) {
3628
+ return $_foqbk4npjjgwedoy.isEmptyTag(universe$1, element);
3629
  };
3630
  var isFrame$1 = function (element) {
3631
+ return $_foqbk4npjjgwedoy.isFrame(universe$1, element);
3632
  };
3633
  var isInline$1 = function (element) {
3634
+ return $_foqbk4npjjgwedoy.isInline(universe$1, element);
3635
  };
3636
+ var $_2d7i0tnojjgwedou = {
3637
  isBlock: isBlock$1,
3638
  isList: isList$1,
3639
  isFormatting: isFormatting$1,
3646
 
3647
  var merge = function (cells) {
3648
  var isBr = function (el) {
3649
+ return $_g6duvbm3jjgwedby.name(el) === 'br';
3650
  };
3651
  var advancedBr = function (children) {
3652
+ return forall(children, function (c) {
3653
+ return isBr(c) || $_g6duvbm3jjgwedby.isText(c) && $_btltedmkjjgwedf4.get(c).trim().length === 0;
3654
  });
3655
  };
3656
  var isListItem = function (el) {
3657
+ return $_g6duvbm3jjgwedby.name(el) === 'li' || $_6l4e4m8jjgwedci.ancestor(el, $_2d7i0tnojjgwedou.isList).isSome();
3658
  };
3659
  var siblingIsBlock = function (el) {
3660
+ return $_97vsilljjjgwed9v.nextSibling(el).map(function (rightSibling) {
3661
+ if ($_2d7i0tnojjgwedou.isBlock(rightSibling))
3662
  return true;
3663
+ if ($_2d7i0tnojjgwedou.isEmptyTag(rightSibling)) {
3664
+ return $_g6duvbm3jjgwedby.name(rightSibling) === 'img' ? false : true;
3665
  }
3666
  }).getOr(false);
3667
  };
3668
  var markCell = function (cell) {
3669
+ return $_cww1bpmijjgwedex.last(cell).bind(function (rightEdge) {
3670
  var rightSiblingIsBlock = siblingIsBlock(rightEdge);
3671
+ return $_97vsilljjjgwed9v.parent(rightEdge).map(function (parent) {
3672
+ return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || $_2d7i0tnojjgwedou.isBlock(parent) && !$_e1yh5slljjgwedae.eq(cell, parent) ? [] : [Element$$1.fromTag('br')];
3673
  });
3674
  }).getOr([]);
3675
  };
3676
  var markContent = function () {
3677
+ var content = bind(cells, function (cell) {
3678
+ var children = $_97vsilljjjgwed9v.children(cell);
3679
  return advancedBr(children) ? [] : children.concat(markCell(cell));
3680
  });
3681
+ return content.length === 0 ? [Element$$1.fromTag('br')] : content;
3682
  };
3683
  var contents = markContent();
3684
+ $_1y8qodmejjgweddq.empty(cells[0]);
3685
+ $_7onf0emfjjgweddu.append(cells[0], contents);
3686
  };
3687
+ var $_bbrz1bnnjjgwedo6 = { merge: merge };
3688
 
3689
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
3690
  var shallow$1 = function (old, nu) {
3691
  return nu;
3692
  };
 
 
 
 
3693
  var baseMerge = function (merger) {
3694
  return function () {
3695
  var objects = new Array(arguments.length);
3701
  for (var j = 0; j < objects.length; j++) {
3702
  var curObject = objects[j];
3703
  for (var key in curObject)
3704
+ if (hasOwnProperty.call(curObject, key)) {
3705
  ret[key] = merger(ret[key], curObject[key]);
3706
  }
3707
  }
3708
  return ret;
3709
  };
3710
  };
3711
+
3712
  var merge$1 = baseMerge(shallow$1);
 
 
 
 
3713
 
3714
  var cat = function (arr) {
3715
  var r = [];
3730
  }
3731
  return Option.none();
3732
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3733
 
3734
  var addCell = function (gridRow, index, cell) {
3735
  var cells = gridRow.cells();
3743
  cells[index] = cell;
3744
  };
3745
  var setCells = function (gridRow, cells) {
3746
+ return $_6lasqllcjjgwed80.rowcells(cells, gridRow.section());
3747
  };
3748
  var mapCells = function (gridRow, f) {
3749
  var cells = gridRow.cells();
3750
+ var r = map(cells, f);
3751
+ return $_6lasqllcjjgwed80.rowcells(r, gridRow.section());
3752
  };
3753
  var getCell = function (gridRow, index) {
3754
  return gridRow.cells()[index];
3759
  var cellLength = function (gridRow) {
3760
  return gridRow.cells().length;
3761
  };
3762
+ var $_4q9s6anvjjgwedq7 = {
3763
  addCell: addCell,
3764
  setCells: setCells,
3765
  mutateCell: mutateCell,
3770
  };
3771
 
3772
  var getColumn = function (grid, index) {
3773
+ return map(grid, function (row) {
3774
+ return $_4q9s6anvjjgwedq7.getCell(row, index);
3775
  });
3776
  };
3777
  var getRow = function (grid, index) {
3781
  if (xs.length === 0)
3782
  return 0;
3783
  var first = xs[0];
3784
+ var index = findIndex(xs, function (x) {
3785
  return !comp(first.element(), x.element());
3786
  });
3787
  return index.fold(function () {
3796
  var restOfColumn = getColumn(grid, column).slice(row);
3797
  var endRowIndex = findDiff(restOfColumn, comparator);
3798
  return {
3799
+ colspan: constant(endColIndex),
3800
+ rowspan: constant(endRowIndex)
3801
  };
3802
  };
3803
+ var $_e2rfo9nujjgwedq1 = { subgrid: subgrid };
3804
 
3805
  var toDetails = function (grid, comparator) {
3806
+ var seen = map(grid, function (row, ri) {
3807
+ return map(row.cells(), function (col, ci) {
3808
  return false;
3809
  });
3810
  });
3815
  }
3816
  }
3817
  };
3818
+ return map(grid, function (row, ri) {
3819
+ var details = bind(row.cells(), function (cell, ci) {
3820
  if (seen[ri][ci] === false) {
3821
+ var result = $_e2rfo9nujjgwedq1.subgrid(grid, ri, ci, comparator);
3822
  updateSeen(ri, ci, result.rowspan(), result.colspan());
3823
+ return [$_6lasqllcjjgwed80.detailnew(cell.element(), result.rowspan(), result.colspan(), cell.isNew())];
3824
  } else {
3825
  return [];
3826
  }
3827
  });
3828
+ return $_6lasqllcjjgwed80.rowdetails(details, row.section());
3829
  });
3830
  };
3831
  var toGrid = function (warehouse, generators, isNew) {
3833
  for (var i = 0; i < warehouse.grid().rows(); i++) {
3834
  var rowCells = [];
3835
  for (var j = 0; j < warehouse.grid().columns(); j++) {
3836
+ var element = $_eesv8pmajjgwedcx.getAt(warehouse, i, j).map(function (item) {
3837
+ return $_6lasqllcjjgwed80.elementnew(item.element(), isNew);
3838
  }).getOrThunk(function () {
3839
+ return $_6lasqllcjjgwed80.elementnew(generators.gap(), true);
3840
  });
3841
  rowCells.push(element);
3842
  }
3843
+ var row = $_6lasqllcjjgwed80.rowcells(rowCells, warehouse.all()[i].section());
3844
  grid.push(row);
3845
  }
3846
  return grid;
3847
  };
3848
+ var $_7omv2yntjjgwedpr = {
3849
  toDetails: toDetails,
3850
  toGrid: toGrid
3851
  };
3852
 
3853
  var setIfNot = function (element, property, value, ignore) {
3854
  if (value === ignore)
3855
+ $_72hn9pm2jjgwedbq.remove(element, property);
3856
  else
3857
+ $_72hn9pm2jjgwedbq.set(element, property, value);
3858
  };
3859
  var render = function (table, grid) {
3860
  var newRows = [];
3861
  var newCells = [];
3862
  var renderSection = function (gridSection, sectionName) {
3863
+ var section = $_2e7p77m7jjgwedcg.child(table, sectionName).getOrThunk(function () {
3864
+ var tb = Element$$1.fromTag(sectionName, $_97vsilljjjgwed9v.owner(table).dom());
3865
+ $_1yoqsmmdjjgweddo.append(table, tb);
3866
  return tb;
3867
  });
3868
+ $_1y8qodmejjgweddq.empty(section);
3869
+ var rows = map(gridSection, function (row) {
3870
  if (row.isNew()) {
3871
  newRows.push(row.element());
3872
  }
3873
  var tr = row.element();
3874
+ $_1y8qodmejjgweddq.empty(tr);
3875
+ each(row.cells(), function (cell) {
3876
  if (cell.isNew()) {
3877
  newCells.push(cell.element());
3878
  }
3879
  setIfNot(cell.element(), 'colspan', cell.colspan(), 1);
3880
  setIfNot(cell.element(), 'rowspan', cell.rowspan(), 1);
3881
+ $_1yoqsmmdjjgweddo.append(tr, cell.element());
3882
  });
3883
  return tr;
3884
  });
3885
+ $_7onf0emfjjgweddu.append(section, rows);
3886
  };
3887
  var removeSection = function (sectionName) {
3888
+ $_2e7p77m7jjgwedcg.child(table, sectionName).each($_1y8qodmejjgweddq.remove);
3889
  };
3890
  var renderOrRemoveSection = function (gridSection, sectionName) {
3891
  if (gridSection.length > 0) {
3897
  var headSection = [];
3898
  var bodySection = [];
3899
  var footSection = [];
3900
+ each(grid, function (row) {
3901
  switch (row.section()) {
3902
  case 'thead':
3903
  headSection.push(row);
3914
  renderOrRemoveSection(bodySection, 'tbody');
3915
  renderOrRemoveSection(footSection, 'tfoot');
3916
  return {
3917
+ newRows: constant(newRows),
3918
+ newCells: constant(newCells)
3919
  };
3920
  };
3921
  var copy$2 = function (grid) {
3922
+ var rows = map(grid, function (row) {
3923
+ var tr = $_ginehlmhjjgwedet.shallow(row.element());
3924
+ each(row.cells(), function (cell) {
3925
+ var clonedCell = $_ginehlmhjjgwedet.deep(cell.element());
3926
  setIfNot(clonedCell, 'colspan', cell.colspan(), 1);
3927
  setIfNot(clonedCell, 'rowspan', cell.rowspan(), 1);
3928
+ $_1yoqsmmdjjgweddo.append(tr, clonedCell);
3929
  });
3930
  return tr;
3931
  });
3932
  return rows;
3933
  };
3934
+ var $_fdgjk7nwjjgwedqb = {
3935
  render: render,
3936
  copy: copy$2
3937
  };
3952
  };
3953
  var unique = function (xs, comparator) {
3954
  var result = [];
3955
+ each(xs, function (x, i) {
3956
  if (i < xs.length - 1 && !comparator(x, xs[i + 1])) {
3957
  result.push(x);
3958
  } else if (i === xs.length - 1) {
3965
  if (index < 0 || index >= xs.length - 1)
3966
  return Option.none();
3967
  var current = xs[index].fold(function () {
3968
+ var rest = reverse(xs.slice(0, index));
3969
+ return findMap(rest, function (a, i) {
3970
  return a.map(function (aa) {
3971
  return {
3972
  value: aa,
3982
  });
3983
  var next = xs[index + 1].fold(function () {
3984
  var rest = xs.slice(index + 1);
3985
+ return findMap(rest, function (a, i) {
3986
  return a.map(function (aa) {
3987
  return {
3988
  value: aa,
4003
  });
4004
  });
4005
  };
4006
+ var $_2pc8lnnzjjgwedrw = {
4007
  repeat: repeat,
4008
  range: range$1,
4009
  unique: unique,
4012
 
4013
  var columns = function (warehouse) {
4014
  var grid = warehouse.grid();
4015
+ var cols = $_2pc8lnnzjjgwedrw.range(0, grid.columns());
4016
+ var rows = $_2pc8lnnzjjgwedrw.range(0, grid.rows());
4017
+ return map(cols, function (col) {
4018
  var getBlock = function () {
4019
+ return bind(rows, function (r) {
4020
+ return $_eesv8pmajjgwedcx.getAt(warehouse, r, col).filter(function (detail) {
4021
  return detail.column() === col;
4022
+ }).fold(constant([]), function (detail) {
4023
  return [detail];
4024
  });
4025
  });
4028
  return detail.colspan() === 1;
4029
  };
4030
  var getFallback = function () {
4031
+ return $_eesv8pmajjgwedcx.getAt(warehouse, 0, col);
4032
  };
4033
  return decide(getBlock, isSingle, getFallback);
4034
  });
4035
  };
4036
  var decide = function (getBlock, isSingle, getFallback) {
4037
  var inBlock = getBlock();
4038
+ var singleInBlock = find(inBlock, isSingle);
4039
  var detailOption = singleInBlock.orThunk(function () {
4040
  return Option.from(inBlock[0]).orThunk(getFallback);
4041
  });
4045
  };
4046
  var rows$1 = function (warehouse) {
4047
  var grid = warehouse.grid();
4048
+ var rows = $_2pc8lnnzjjgwedrw.range(0, grid.rows());
4049
+ var cols = $_2pc8lnnzjjgwedrw.range(0, grid.columns());
4050
+ return map(rows, function (row) {
4051
  var getBlock = function () {
4052
+ return bind(cols, function (c) {
4053
+ return $_eesv8pmajjgwedcx.getAt(warehouse, row, c).filter(function (detail) {
4054
  return detail.row() === row;
4055
+ }).fold(constant([]), function (detail) {
4056
  return [detail];
4057
  });
4058
  });
4061
  return detail.rowspan() === 1;
4062
  };
4063
  var getFallback = function () {
4064
+ return $_eesv8pmajjgwedcx.getAt(warehouse, row, 0);
4065
  };
4066
  return decide(getBlock, isSingle, getFallback);
4067
  });
4068
  };
4069
+ var $_4xn2lhnyjjgwedrj = {
4070
  columns: columns,
4071
  rows: rows$1
4072
  };
4073
 
4074
  var col = function (column, x, y, w, h) {
4075
+ var blocker = Element$$1.fromTag('div');
4076
+ $_59neaymbjjgwedd8.setAll(blocker, {
4077
  position: 'absolute',
4078
  left: x - w / 2 + 'px',
4079
  top: y + 'px',
4080
  height: h + 'px',
4081
  width: w + 'px'
4082
  });
4083
+ $_72hn9pm2jjgwedbq.setAll(blocker, {
4084
  'data-column': column,
4085
  'role': 'presentation'
4086
  });
4087
  return blocker;
4088
  };
4089
  var row$1 = function (row, x, y, w, h) {
4090
+ var blocker = Element$$1.fromTag('div');
4091
+ $_59neaymbjjgwedd8.setAll(blocker, {
4092
  position: 'absolute',
4093
  left: x + 'px',
4094
  top: y - h / 2 + 'px',
4095
  height: h + 'px',
4096
  width: w + 'px'
4097
  });
4098
+ $_72hn9pm2jjgwedbq.setAll(blocker, {
4099
  'data-row': row,
4100
  'role': 'presentation'
4101
  });
4102
  return blocker;
4103
  };
4104
+ var $_4tsfdko0jjgweds5 = {
4105
  col: col,
4106
  row: row$1
4107
  };
4113
  };
4114
  return { resolve: resolve };
4115
  };
 
4116
 
4117
+ var styles = css('ephox-snooker');
4118
+ var $_a7mbdxo1jjgwedsc = { resolve: styles.resolve };
4119
 
4120
  function Toggler (turnOff, turnOn, initial) {
4121
  var active = initial || false;
4143
  }
4144
 
4145
  var read = function (element, attr) {
4146
+ var value = $_72hn9pm2jjgwedbq.get(element, attr);
4147
  return value === undefined || value === '' ? [] : value.split(' ');
4148
  };
4149
  var add = function (element, attr, id) {
4150
  var old = read(element, attr);
4151
  var nu = old.concat([id]);
4152
+ $_72hn9pm2jjgwedbq.set(element, attr, nu.join(' '));
4153
+ return true;
4154
  };
4155
  var remove$3 = function (element, attr, id) {
4156
+ var nu = filter(read(element, attr), function (v) {
4157
  return v !== id;
4158
  });
4159
  if (nu.length > 0)
4160
+ $_72hn9pm2jjgwedbq.set(element, attr, nu.join(' '));
4161
  else
4162
+ $_72hn9pm2jjgwedbq.remove(element, attr);
4163
+ return false;
4164
  };
4165
+ var $_fr3zqno6jjgwedsr = {
4166
  read: read,
4167
  add: add,
4168
  remove: remove$3
4172
  return element.dom().classList !== undefined;
4173
  };
4174
  var get$6 = function (element) {
4175
+ return $_fr3zqno6jjgwedsr.read(element, 'class');
4176
  };
4177
  var add$1 = function (element, clazz) {
4178
+ return $_fr3zqno6jjgwedsr.add(element, 'class', clazz);
4179
  };
4180
  var remove$4 = function (element, clazz) {
4181
+ return $_fr3zqno6jjgwedsr.remove(element, 'class', clazz);
4182
  };
4183
  var toggle = function (element, clazz) {
4184
+ if (contains(get$6(element), clazz)) {
4185
+ return remove$4(element, clazz);
4186
  } else {
4187
+ return add$1(element, clazz);
4188
  }
4189
  };
4190
+ var $_f1c8m0o5jjgwedsj = {
4191
  get: get$6,
4192
  add: add$1,
4193
  remove: remove$4,
4196
  };
4197
 
4198
  var add$2 = function (element, clazz) {
4199
+ if ($_f1c8m0o5jjgwedsj.supports(element))
4200
  element.dom().classList.add(clazz);
4201
  else
4202
+ $_f1c8m0o5jjgwedsj.add(element, clazz);
4203
  };
4204
  var cleanClass = function (element) {
4205
+ var classList = $_f1c8m0o5jjgwedsj.supports(element) ? element.dom().classList : $_f1c8m0o5jjgwedsj.get(element);
4206
  if (classList.length === 0) {
4207
+ $_72hn9pm2jjgwedbq.remove(element, 'class');
4208
  }
4209
  };
4210
  var remove$5 = function (element, clazz) {
4211
+ if ($_f1c8m0o5jjgwedsj.supports(element)) {
4212
  var classList = element.dom().classList;
4213
  classList.remove(clazz);
4214
  } else
4215
+ $_f1c8m0o5jjgwedsj.remove(element, clazz);
4216
  cleanClass(element);
4217
  };
4218
  var toggle$1 = function (element, clazz) {
4219
+ return $_f1c8m0o5jjgwedsj.supports(element) ? element.dom().classList.toggle(clazz) : $_f1c8m0o5jjgwedsj.toggle(element, clazz);
4220
  };
4221
  var toggler = function (element, clazz) {
4222
+ var hasClasslist = $_f1c8m0o5jjgwedsj.supports(element);
4223
  var classList = element.dom().classList;
4224
  var off = function () {
4225
  if (hasClasslist)
4226
  classList.remove(clazz);
4227
  else
4228
+ $_f1c8m0o5jjgwedsj.remove(element, clazz);
4229
  };
4230
  var on = function () {
4231
  if (hasClasslist)
4232
  classList.add(clazz);
4233
  else
4234
+ $_f1c8m0o5jjgwedsj.add(element, clazz);
4235
  };
4236
  return Toggler(off, on, has$1(element, clazz));
4237
  };
4238
  var has$1 = function (element, clazz) {
4239
+ return $_f1c8m0o5jjgwedsj.supports(element) && element.dom().classList.contains(clazz);
4240
  };
4241
+ var $_btizb5o3jjgwedsg = {
4242
  add: add$2,
4243
  remove: remove$5,
4244
  toggle: toggle$1,
4246
  has: has$1
4247
  };
4248
 
4249
+ var resizeBar = $_a7mbdxo1jjgwedsc.resolve('resizer-bar');
4250
+ var resizeRowBar = $_a7mbdxo1jjgwedsc.resolve('resizer-rows');
4251
+ var resizeColBar = $_a7mbdxo1jjgwedsc.resolve('resizer-cols');
4252
  var BAR_THICKNESS = 7;
4253
  var clear = function (wire) {
4254
+ var previous = $_5ko5j3m4jjgwedc0.descendants(wire.parent(), '.' + resizeBar);
4255
+ each(previous, $_1y8qodmejjgweddq.remove);
4256
  };
4257
  var drawBar = function (wire, positions, create) {
4258
  var origin = wire.origin();
4259
+ each(positions, function (cpOption, i) {
4260
  cpOption.each(function (cp) {
4261
  var bar = create(origin, cp);
4262
+ $_btizb5o3jjgwedsg.add(bar, resizeBar);
4263
+ $_1yoqsmmdjjgweddo.append(wire.parent(), bar);
4264
  });
4265
  });
4266
  };
4267
  var refreshCol = function (wire, colPositions, position, tableHeight) {
4268
  drawBar(wire, colPositions, function (origin, cp) {
4269
+ var colBar = $_4tsfdko0jjgweds5.col(cp.col(), cp.x() - origin.left(), position.top() - origin.top(), BAR_THICKNESS, tableHeight);
4270
+ $_btizb5o3jjgwedsg.add(colBar, resizeColBar);
4271
  return colBar;
4272
  });
4273
  };
4274
  var refreshRow = function (wire, rowPositions, position, tableWidth) {
4275
  drawBar(wire, rowPositions, function (origin, cp) {
4276
+ var rowBar = $_4tsfdko0jjgweds5.row(cp.row(), position.left() - origin.left(), cp.y() - origin.top(), tableWidth, BAR_THICKNESS);
4277
+ $_btizb5o3jjgwedsg.add(rowBar, resizeRowBar);
4278
  return rowBar;
4279
  });
4280
  };
4281
  var refreshGrid = function (wire, table, rows, cols, hdirection, vdirection) {
4282
+ var position = $_emicwtnfjjgwedml.absolute(table);
4283
  var rowPositions = rows.length > 0 ? hdirection.positions(rows, table) : [];
4284
+ refreshRow(wire, rowPositions, position, $_ga29tsnbjjgwedly.getOuter(table));
4285
  var colPositions = cols.length > 0 ? vdirection.positions(cols, table) : [];
4286
+ refreshCol(wire, colPositions, position, $_da9rlin9jjgwedlp.getOuter(table));
4287
  };
4288
  var refresh = function (wire, table, hdirection, vdirection) {
4289
  clear(wire);
4290
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
4291
+ var warehouse = $_eesv8pmajjgwedcx.generate(list);
4292
+ var rows = $_4xn2lhnyjjgwedrj.rows(warehouse);
4293
+ var cols = $_4xn2lhnyjjgwedrj.columns(warehouse);
4294
  refreshGrid(wire, table, rows, cols, hdirection, vdirection);
4295
  };
4296
  var each$2 = function (wire, f) {
4297
+ var bars = $_5ko5j3m4jjgwedc0.descendants(wire.parent(), '.' + resizeBar);
4298
+ each(bars, f);
4299
  };
4300
  var hide = function (wire) {
4301
  each$2(wire, function (bar) {
4302
+ $_59neaymbjjgwedd8.set(bar, 'display', 'none');
4303
  });
4304
  };
4305
  var show = function (wire) {
4306
  each$2(wire, function (bar) {
4307
+ $_59neaymbjjgwedd8.set(bar, 'display', 'block');
4308
  });
4309
  };
4310
  var isRowBar = function (element) {
4311
+ return $_btizb5o3jjgwedsg.has(element, resizeRowBar);
4312
  };
4313
  var isColBar = function (element) {
4314
+ return $_btizb5o3jjgwedsg.has(element, resizeColBar);
4315
  };
4316
+ var $_anyrprnxjjgwedqz = {
4317
  refresh: refresh,
4318
  hide: hide,
4319
  show: show,
4323
  };
4324
 
4325
  var fromWarehouse = function (warehouse, generators) {
4326
+ return $_7omv2yntjjgwedpr.toGrid(warehouse, generators, false);
4327
  };
4328
  var deriveRows = function (rendered, generators) {
4329
  var findRow = function (details) {
4330
+ var rowOfCells = findMap(details, function (detail) {
4331
+ return $_97vsilljjjgwed9v.parent(detail.element()).map(function (row) {
4332
+ var isNew = $_97vsilljjjgwed9v.parent(row).isNone();
4333
+ return $_6lasqllcjjgwed80.elementnew(row, isNew);
4334
  });
4335
  });
4336
  return rowOfCells.getOrThunk(function () {
4337
+ return $_6lasqllcjjgwed80.elementnew(generators.row(), true);
4338
  });
4339
  };
4340
+ return map(rendered, function (details) {
4341
  var row = findRow(details.details());
4342
+ return $_6lasqllcjjgwed80.rowdatanew(row.element(), details.details(), details.section(), row.isNew());
4343
  });
4344
  };
4345
  var toDetailList = function (grid, generators) {
4346
+ var rendered = $_7omv2yntjjgwedpr.toDetails(grid, $_e1yh5slljjgwedae.eq);
4347
  return deriveRows(rendered, generators);
4348
  };
4349
  var findInWarehouse = function (warehouse, element) {
4350
+ var all = flatten(map(warehouse.all(), function (r) {
4351
  return r.cells();
4352
  }));
4353
+ return find(all, function (e) {
4354
+ return $_e1yh5slljjgwedae.eq(element, e.element());
4355
  });
4356
  };
4357
  var run = function (operation, extract, adjustment, postAction, genWrappers) {
4358
  return function (wire, table, target, generators, direction) {
4359
+ var input = $_da6e59lbjjgwed7r.fromTable(table);
4360
+ var warehouse = $_eesv8pmajjgwedcx.generate(input);
4361
  var output = extract(warehouse, target).map(function (info) {
4362
  var model = fromWarehouse(warehouse, generators);
4363
+ var result = operation(model, info, $_e1yh5slljjgwedae.eq, genWrappers(generators));
4364
  var grid = toDetailList(result.grid(), generators);
4365
  return {
4366
+ grid: constant(grid),
4367
  cursor: result.cursor
4368
  };
4369
  });
4370
  return output.fold(function () {
4371
  return Option.none();
4372
  }, function (out) {
4373
+ var newElements = $_fdgjk7nwjjgwedqb.render(table, out.grid());
4374
  adjustment(table, out.grid(), direction);
4375
  postAction(table);
4376
+ $_anyrprnxjjgwedqz.refresh(wire, table, $_fsi6i6nejjgwedm2.height, direction);
4377
  return Option.some({
4378
  cursor: out.cursor,
4379
  newRows: newElements.newRows,
4383
  };
4384
  };
4385
  var onCell = function (warehouse, target) {
4386
+ return $_bmlvw1ldjjgwed84.cell(target.element()).bind(function (cell) {
4387
  return findInWarehouse(warehouse, cell);
4388
  });
4389
  };
4390
  var onPaste = function (warehouse, target) {
4391
+ return $_bmlvw1ldjjgwed84.cell(target.element()).bind(function (cell) {
4392
  return findInWarehouse(warehouse, cell).map(function (details) {
4393
+ return merge$1(details, {
4394
  generators: target.generators,
4395
  clipboard: target.clipboard
4396
  });
4398
  });
4399
  };
4400
  var onPasteRows = function (warehouse, target) {
4401
+ var details = map(target.selection(), function (cell) {
4402
+ return $_bmlvw1ldjjgwed84.cell(cell).bind(function (lc) {
4403
  return findInWarehouse(warehouse, lc);
4404
  });
4405
  });
4406
+ var cells = cat(details);
4407
+ return cells.length > 0 ? Option.some(merge$1({ cells: cells }, {
4408
  generators: target.generators,
4409
  clipboard: target.clipboard
4410
  })) : Option.none();
4416
  return target.unmergable();
4417
  };
4418
  var onCells = function (warehouse, target) {
4419
+ var details = map(target.selection(), function (cell) {
4420
+ return $_bmlvw1ldjjgwed84.cell(cell).bind(function (lc) {
4421
  return findInWarehouse(warehouse, lc);
4422
  });
4423
  });
4424
+ var cells = cat(details);
4425
  return cells.length > 0 ? Option.some(cells) : Option.none();
4426
  };
4427
+ var $_a3xhvcnqjjgwedp4 = {
4428
  run: run,
4429
  toDetailList: toDetailList,
4430
  onCell: onCell,
4468
  };
4469
  return {
4470
  is: is,
4471
+ isValue: always,
4472
+ isError: never,
4473
+ getOr: constant(o),
4474
+ getOrThunk: constant(o),
4475
+ getOrDie: constant(o),
4476
  or: or,
4477
  orThunk: orThunk,
4478
  fold: fold,
4489
  return f();
4490
  };
4491
  var getOrDie = function () {
4492
+ return die(String(message))();
4493
  };
4494
  var or = function (opt) {
4495
  return opt;
4507
  return onError(message);
4508
  };
4509
  return {
4510
+ is: never,
4511
+ isValue: never,
4512
+ isError: always,
4513
+ getOr: identity,
4514
  getOrThunk: getOrThunk,
4515
  getOrDie: getOrDie,
4516
  or: or,
4517
  orThunk: orThunk,
4518
  fold: fold,
4519
  map: map,
4520
+ each: noop,
4521
  bind: bind,
4522
+ exists: never,
4523
+ forall: always,
4524
  toOption: Option.none
4525
  };
4526
  };
4530
  };
4531
 
4532
  var measure = function (startAddress, gridA, gridB) {
4533
+ if (startAddress.row() >= gridA.length || startAddress.column() > $_4q9s6anvjjgwedq7.cellLength(gridA[0]))
4534
  return Result.error('invalid start address out of table bounds, row: ' + startAddress.row() + ', column: ' + startAddress.column());
4535
  var rowRemainder = gridA.slice(startAddress.row());
4536
  var colRemainder = rowRemainder[0].cells().slice(startAddress.column());
4537
+ var colRequired = $_4q9s6anvjjgwedq7.cellLength(gridB[0]);
4538
  var rowRequired = gridB.length;
4539
  return Result.value({
4540
+ rowDelta: constant(rowRemainder.length - rowRequired),
4541
+ colDelta: constant(colRemainder.length - colRequired)
4542
  });
4543
  };
4544
  var measureWidth = function (gridA, gridB) {
4545
+ var colLengthA = $_4q9s6anvjjgwedq7.cellLength(gridA[0]);
4546
+ var colLengthB = $_4q9s6anvjjgwedq7.cellLength(gridB[0]);
4547
  return {
4548
+ rowDelta: constant(0),
4549
+ colDelta: constant(colLengthA - colLengthB)
4550
  };
4551
  };
4552
  var fill = function (cells, generator) {
4553
+ return map(cells, function () {
4554
+ return $_6lasqllcjjgwed80.elementnew(generator.cell(), true);
4555
  });
4556
  };
4557
  var rowFill = function (grid, amount, generator) {
4558
+ return grid.concat($_2pc8lnnzjjgwedrw.repeat(amount, function (_row) {
4559
+ return $_4q9s6anvjjgwedq7.setCells(grid[grid.length - 1], fill(grid[grid.length - 1].cells(), generator));
4560
  }));
4561
  };
4562
  var colFill = function (grid, amount, generator) {
4563
+ return map(grid, function (row) {
4564
+ return $_4q9s6anvjjgwedq7.setCells(row, row.cells().concat(fill($_2pc8lnnzjjgwedrw.range(0, amount), generator)));
4565
  });
4566
  };
4567
  var tailor = function (gridA, delta, generator) {
4568
+ var fillCols = delta.colDelta() < 0 ? colFill : identity;
4569
+ var fillRows = delta.rowDelta() < 0 ? rowFill : identity;
4570
  var modifiedCols = fillCols(gridA, Math.abs(delta.colDelta()), generator);
4571
  var tailoredGrid = fillRows(modifiedCols, Math.abs(delta.rowDelta()), generator);
4572
  return tailoredGrid;
4573
  };
4574
+ var $_cgbpano8jjgwedt3 = {
4575
  measure: measure,
4576
  measureWidth: measureWidth,
4577
  tailor: tailor
4582
  return grid;
4583
  for (var i = bounds.startRow(); i <= bounds.finishRow(); i++) {
4584
  for (var j = bounds.startCol(); j <= bounds.finishCol(); j++) {
4585
+ $_4q9s6anvjjgwedq7.mutateCell(grid[i], j, $_6lasqllcjjgwed80.elementnew(substitution(), false));
4586
  }
4587
  }
4588
  return grid;
4590
  var unmerge = function (grid, target, comparator, substitution) {
4591
  var first = true;
4592
  for (var i = 0; i < grid.length; i++) {
4593
+ for (var j = 0; j < $_4q9s6anvjjgwedq7.cellLength(grid[0]); j++) {
4594
+ var current = $_4q9s6anvjjgwedq7.getCellElement(grid[i], j);
4595
  var isToReplace = comparator(current, target);
4596
  if (isToReplace === true && first === false) {
4597
+ $_4q9s6anvjjgwedq7.mutateCell(grid[i], j, $_6lasqllcjjgwed80.elementnew(substitution(), true));
4598
  } else if (isToReplace === true) {
4599
  first = false;
4600
  }
4603
  return grid;
4604
  };
4605
  var uniqueCells = function (row, comparator) {
4606
+ return foldl(row, function (rest, cell) {
4607
+ return exists(rest, function (currentCell) {
4608
  return comparator(currentCell.element(), cell.element());
4609
  }) ? rest : rest.concat([cell]);
4610
  }, []);
4613
  if (index > 0 && index < grid.length) {
4614
  var rowPrevCells = grid[index - 1].cells();
4615
  var cells = uniqueCells(rowPrevCells, comparator);
4616
+ each(cells, function (cell) {
4617
  var replacement = Option.none();
4618
  for (var i = index; i < grid.length; i++) {
4619
+ for (var j = 0; j < $_4q9s6anvjjgwedq7.cellLength(grid[0]); j++) {
4620
  var current = grid[i].cells()[j];
4621
  var isToReplace = comparator(current.element(), cell.element());
4622
  if (isToReplace) {
4624
  replacement = Option.some(substitution());
4625
  }
4626
  replacement.each(function (sub) {
4627
+ $_4q9s6anvjjgwedq7.mutateCell(grid[i], j, $_6lasqllcjjgwed80.elementnew(sub, true));
4628
  });
4629
  }
4630
  }
4633
  }
4634
  return grid;
4635
  };
4636
+ var $_g5x9r0oajjgwedtg = {
4637
  merge: merge$2,
4638
  unmerge: unmerge,
4639
  splitRows: splitRows
4640
  };
4641
 
4642
  var isSpanning = function (grid, row, col, comparator) {
4643
+ var candidate = $_4q9s6anvjjgwedq7.getCell(grid[row], col);
4644
+ var matching = curry(comparator, candidate.element());
4645
  var currentRow = grid[row];
4646
+ return grid.length > 1 && $_4q9s6anvjjgwedq7.cellLength(currentRow) > 1 && (col > 0 && matching($_4q9s6anvjjgwedq7.getCellElement(currentRow, col - 1)) || col < currentRow.length - 1 && matching($_4q9s6anvjjgwedq7.getCellElement(currentRow, col + 1)) || row > 0 && matching($_4q9s6anvjjgwedq7.getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching($_4q9s6anvjjgwedq7.getCellElement(grid[row + 1], col)));
4647
  };
4648
  var mergeTables = function (startAddress, gridA, gridB, generator, comparator) {
4649
  var startRow = startAddress.row();
4650
  var startCol = startAddress.column();
4651
  var mergeHeight = gridB.length;
4652
+ var mergeWidth = $_4q9s6anvjjgwedq7.cellLength(gridB[0]);
4653
  var endRow = startRow + mergeHeight;
4654
  var endCol = startCol + mergeWidth;
4655
  for (var r = startRow; r < endRow; r++) {
4656
  for (var c = startCol; c < endCol; c++) {
4657
  if (isSpanning(gridA, r, c, comparator)) {
4658
+ $_g5x9r0oajjgwedtg.unmerge(gridA, $_4q9s6anvjjgwedq7.getCellElement(gridA[r], c), comparator, generator.cell);
4659
  }
4660
+ var newCell = $_4q9s6anvjjgwedq7.getCellElement(gridB[r - startRow], c - startCol);
4661
  var replacement = generator.replace(newCell);
4662
+ $_4q9s6anvjjgwedq7.mutateCell(gridA[r], c, $_6lasqllcjjgwed80.elementnew(replacement, true));
4663
  }
4664
  }
4665
  return gridA;
4666
  };
4667
  var merge$3 = function (startAddress, gridA, gridB, generator, comparator) {
4668
+ var result = $_cgbpano8jjgwedt3.measure(startAddress, gridA, gridB);
4669
  return result.map(function (delta) {
4670
+ var fittedGrid = $_cgbpano8jjgwedt3.tailor(gridA, delta, generator);
4671
  return mergeTables(startAddress, fittedGrid, gridB, generator, comparator);
4672
  });
4673
  };
4674
  var insert = function (index, gridA, gridB, generator, comparator) {
4675
+ $_g5x9r0oajjgwedtg.splitRows(gridA, index, comparator, generator.cell);
4676
+ var delta = $_cgbpano8jjgwedt3.measureWidth(gridB, gridA);
4677
+ var fittedNewGrid = $_cgbpano8jjgwedt3.tailor(gridB, delta, generator);
4678
+ var secondDelta = $_cgbpano8jjgwedt3.measureWidth(gridA, fittedNewGrid);
4679
+ var fittedOldGrid = $_cgbpano8jjgwedt3.tailor(gridA, secondDelta, generator);
4680
  return fittedOldGrid.slice(0, index).concat(fittedNewGrid).concat(fittedOldGrid.slice(index, fittedOldGrid.length));
4681
  };
4682
+ var $_1gr31eo7jjgwedsx = {
4683
  merge: merge$3,
4684
  insert: insert
4685
  };
4687
  var insertRowAt = function (grid, index, example, comparator, substitution) {
4688
  var before = grid.slice(0, index);
4689
  var after = grid.slice(index);
4690
+ var between = $_4q9s6anvjjgwedq7.mapCells(grid[example], function (ex, c) {
4691
+ var withinSpan = index > 0 && index < grid.length && comparator($_4q9s6anvjjgwedq7.getCellElement(grid[index - 1], c), $_4q9s6anvjjgwedq7.getCellElement(grid[index], c));
4692
+ var ret = withinSpan ? $_4q9s6anvjjgwedq7.getCell(grid[index], c) : $_6lasqllcjjgwed80.elementnew(substitution(ex.element(), comparator), true);
4693
  return ret;
4694
  });
4695
  return before.concat([between]).concat(after);
4696
  };
4697
  var insertColumnAt = function (grid, index, example, comparator, substitution) {
4698
+ return map(grid, function (row) {
4699
+ var withinSpan = index > 0 && index < $_4q9s6anvjjgwedq7.cellLength(row) && comparator($_4q9s6anvjjgwedq7.getCellElement(row, index - 1), $_4q9s6anvjjgwedq7.getCellElement(row, index));
4700
+ var sub = withinSpan ? $_4q9s6anvjjgwedq7.getCell(row, index) : $_6lasqllcjjgwed80.elementnew(substitution($_4q9s6anvjjgwedq7.getCellElement(row, example), comparator), true);
4701
+ return $_4q9s6anvjjgwedq7.addCell(row, index, sub);
4702
  });
4703
  };
4704
  var splitCellIntoColumns = function (grid, exampleRow, exampleCol, comparator, substitution) {
4705
  var index = exampleCol + 1;
4706
+ return map(grid, function (row, i) {
4707
  var isTargetCell = i === exampleRow;
4708
+ var sub = isTargetCell ? $_6lasqllcjjgwed80.elementnew(substitution($_4q9s6anvjjgwedq7.getCellElement(row, exampleCol), comparator), true) : $_4q9s6anvjjgwedq7.getCell(row, exampleCol);
4709
+ return $_4q9s6anvjjgwedq7.addCell(row, index, sub);
4710
  });
4711
  };
4712
  var splitCellIntoRows = function (grid, exampleRow, exampleCol, comparator, substitution) {
4713
  var index = exampleRow + 1;
4714
  var before = grid.slice(0, index);
4715
  var after = grid.slice(index);
4716
+ var between = $_4q9s6anvjjgwedq7.mapCells(grid[exampleRow], function (ex, i) {
4717
  var isTargetCell = i === exampleCol;
4718
+ return isTargetCell ? $_6lasqllcjjgwed80.elementnew(substitution(ex.element(), comparator), true) : ex;
4719
  });
4720
  return before.concat([between]).concat(after);
4721
  };
4722
  var deleteColumnsAt = function (grid, start, finish) {
4723
+ var rows = map(grid, function (row) {
4724
  var cells = row.cells().slice(0, start).concat(row.cells().slice(finish + 1));
4725
+ return $_6lasqllcjjgwed80.rowcells(cells, row.section());
4726
  });
4727
+ return filter(rows, function (row) {
4728
  return row.cells().length > 0;
4729
  });
4730
  };
4731
  var deleteRowsAt = function (grid, start, finish) {
4732
  return grid.slice(0, start).concat(grid.slice(finish + 1));
4733
  };
4734
+ var $_6ilb5mobjjgwedtn = {
4735
  insertRowAt: insertRowAt,
4736
  insertColumnAt: insertColumnAt,
4737
  splitCellIntoColumns: splitCellIntoColumns,
4742
 
4743
  var replaceIn = function (grid, targets, comparator, substitution) {
4744
  var isTarget = function (cell) {
4745
+ return exists(targets, function (target) {
4746
  return comparator(cell.element(), target.element());
4747
  });
4748
  };
4749
+ return map(grid, function (row) {
4750
+ return $_4q9s6anvjjgwedq7.mapCells(row, function (cell) {
4751
+ return isTarget(cell) ? $_6lasqllcjjgwed80.elementnew(substitution(cell.element(), comparator), true) : cell;
4752
  });
4753
  });
4754
  };
4755
  var notStartRow = function (grid, rowIndex, colIndex, comparator) {
4756
+ return $_4q9s6anvjjgwedq7.getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator($_4q9s6anvjjgwedq7.getCellElement(grid[rowIndex - 1], colIndex), $_4q9s6anvjjgwedq7.getCellElement(grid[rowIndex], colIndex)));
4757
  };
4758
  var notStartColumn = function (row, index, comparator) {
4759
+ return index > 0 && comparator($_4q9s6anvjjgwedq7.getCellElement(row, index - 1), $_4q9s6anvjjgwedq7.getCellElement(row, index));
4760
  };
4761
  var replaceColumn = function (grid, index, comparator, substitution) {
4762
+ var targets = bind(grid, function (row, i) {
4763
  var alreadyAdded = notStartRow(grid, i, index, comparator) || notStartColumn(row, index, comparator);
4764
+ return alreadyAdded ? [] : [$_4q9s6anvjjgwedq7.getCell(row, index)];
4765
  });
4766
  return replaceIn(grid, targets, comparator, substitution);
4767
  };
4768
  var replaceRow = function (grid, index, comparator, substitution) {
4769
  var targetRow = grid[index];
4770
+ var targets = bind(targetRow.cells(), function (item, i) {
4771
  var alreadyAdded = notStartRow(grid, index, i, comparator) || notStartColumn(targetRow, i, comparator);
4772
  return alreadyAdded ? [] : [item];
4773
  });
4774
  return replaceIn(grid, targets, comparator, substitution);
4775
  };
4776
+ var $_a2f8x6ocjjgwedtt = {
4777
  replaceColumn: replaceColumn,
4778
  replaceRow: replaceRow
4779
  };
4806
  var folder = function (fold) {
4807
  return { fold: fold };
4808
  };
4809
+ var $_dy5p7gofjjgweduj = {
4810
  none: none$1,
4811
  only: only,
4812
  left: left,
4816
 
4817
  var neighbours$1 = function (input, index) {
4818
  if (input.length === 0)
4819
+ return $_dy5p7gofjjgweduj.none();
4820
  if (input.length === 1)
4821
+ return $_dy5p7gofjjgweduj.only(0);
4822
  if (index === 0)
4823
+ return $_dy5p7gofjjgweduj.left(0, 1);
4824
  if (index === input.length - 1)
4825
+ return $_dy5p7gofjjgweduj.right(index - 1, index);
4826
  if (index > 0 && index < input.length - 1)
4827
+ return $_dy5p7gofjjgweduj.middle(index - 1, index, index + 1);
4828
+ return $_dy5p7gofjjgweduj.none();
4829
  };
4830
  var determine = function (input, column, step, tableSize) {
4831
  var result = input.slice(0);
4832
  var context = neighbours$1(input, column);
4833
  var zero = function (array) {
4834
+ return map(array, constant(0));
4835
  };
4836
+ var onNone = constant(zero(result));
4837
  var onOnly = function (index) {
4838
  return tableSize.singleColumnWidth(result[index], step);
4839
  };
4867
  };
4868
  return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);
4869
  };
4870
+ var $_5hh8p8oejjgwedub = { determine: determine };
4871
 
4872
  var getSpan$1 = function (cell, type) {
4873
+ return $_72hn9pm2jjgwedbq.has(cell, type) && parseInt($_72hn9pm2jjgwedbq.get(cell, type), 10) > 1;
4874
  };
4875
  var hasColspan = function (cell) {
4876
  return getSpan$1(cell, 'colspan');
4879
  return getSpan$1(cell, 'rowspan');
4880
  };
4881
  var getInt = function (element, property) {
4882
+ return parseInt($_59neaymbjjgwedd8.get(element, property), 10);
4883
  };
4884
+ var $_6gfmi1ohjjgweduu = {
4885
  hasColspan: hasColspan,
4886
  hasRowspan: hasRowspan,
4887
+ minWidth: constant(10),
4888
+ minHeight: constant(10),
4889
  getInt: getInt
4890
  };
4891
 
4892
  var getRaw$1 = function (cell, property, getter) {
4893
+ return $_59neaymbjjgwedd8.getRaw(cell, property).fold(function () {
4894
  return getter(cell) + 'px';
4895
  }, function (raw) {
4896
  return raw;
4897
  });
4898
  };
4899
  var getRawW = function (cell) {
4900
+ return getRaw$1(cell, 'width', $_b9jva9n7jjgwedkv.getPixelWidth);
4901
  };
4902
  var getRawH = function (cell) {
4903
+ return getRaw$1(cell, 'height', $_b9jva9n7jjgwedkv.getHeight);
4904
  };
4905
  var getWidthFrom = function (warehouse, direction, getWidth, fallback, tableSize) {
4906
+ var columns = $_4xn2lhnyjjgwedrj.columns(warehouse);
4907
+ var backups = map(columns, function (cellOption) {
4908
  return cellOption.map(direction.edge);
4909
  });
4910
+ return map(columns, function (cellOption, c) {
4911
+ var columnCell = cellOption.filter(not($_6gfmi1ohjjgweduu.hasColspan));
4912
  return columnCell.fold(function () {
4913
+ var deduced = $_2pc8lnnzjjgwedrw.deduce(backups, c);
4914
  return fallback(deduced);
4915
  }, function (cell) {
4916
  return getWidth(cell, tableSize);
4926
  return getWidthFrom(warehouse, direction, getRawW, getDeduced);
4927
  };
4928
  var getPercentageWidths = function (warehouse, direction, tableSize) {
4929
+ return getWidthFrom(warehouse, direction, $_b9jva9n7jjgwedkv.getPercentageWidth, function (deduced) {
4930
  return deduced.fold(function () {
4931
  return tableSize.minCellWidth();
4932
  }, function (cellWidth) {
4935
  }, tableSize);
4936
  };
4937
  var getPixelWidths = function (warehouse, direction, tableSize) {
4938
+ return getWidthFrom(warehouse, direction, $_b9jva9n7jjgwedkv.getPixelWidth, function (deduced) {
4939
  return deduced.getOrThunk(tableSize.minCellWidth);
4940
  }, tableSize);
4941
  };
4942
  var getHeightFrom = function (warehouse, direction, getHeight, fallback) {
4943
+ var rows = $_4xn2lhnyjjgwedrj.rows(warehouse);
4944
+ var backups = map(rows, function (cellOption) {
4945
  return cellOption.map(direction.edge);
4946
  });
4947
+ return map(rows, function (cellOption, c) {
4948
+ var rowCell = cellOption.filter(not($_6gfmi1ohjjgweduu.hasRowspan));
4949
  return rowCell.fold(function () {
4950
+ var deduced = $_2pc8lnnzjjgwedrw.deduce(backups, c);
4951
  return fallback(deduced);
4952
  }, function (cell) {
4953
  return getHeight(cell);
4955
  });
4956
  };
4957
  var getPixelHeights = function (warehouse, direction) {
4958
+ return getHeightFrom(warehouse, direction, $_b9jva9n7jjgwedkv.getHeight, function (deduced) {
4959
+ return deduced.getOrThunk($_6gfmi1ohjjgweduu.minHeight);
4960
  });
4961
  };
4962
  var getRawHeights = function (warehouse, direction) {
4963
  return getHeightFrom(warehouse, direction, getRawH, getDeduced);
4964
  };
4965
+ var $_8hy1x9ogjjgwedul = {
4966
  getRawWidths: getRawWidths,
4967
  getPixelWidths: getPixelWidths,
4968
  getPercentageWidths: getPercentageWidths,
4978
  return r;
4979
  };
4980
  var recalculateWidth = function (warehouse, widths) {
4981
+ var all = $_eesv8pmajjgwedcx.justCells(warehouse);
4982
+ return map(all, function (cell) {
4983
  var width = total(cell.column(), cell.column() + cell.colspan(), widths);
4984
  return {
4985
  element: cell.element,
4986
+ width: constant(width),
4987
  colspan: cell.colspan
4988
  };
4989
  });
4990
  };
4991
  var recalculateHeight = function (warehouse, heights) {
4992
+ var all = $_eesv8pmajjgwedcx.justCells(warehouse);
4993
+ return map(all, function (cell) {
4994
  var height = total(cell.row(), cell.row() + cell.rowspan(), heights);
4995
  return {
4996
  element: cell.element,
4997
+ height: constant(height),
4998
  rowspan: cell.rowspan
4999
  };
5000
  });
5001
  };
5002
  var matchRowHeight = function (warehouse, heights) {
5003
+ return map(warehouse.all(), function (row, i) {
5004
  return {
5005
  element: row.element,
5006
+ height: constant(heights[i])
5007
  };
5008
  });
5009
  };
5010
+ var $_1f5uvboijjgwedv1 = {
5011
  recalculateWidth: recalculateWidth,
5012
  recalculateHeight: recalculateHeight,
5013
  matchRowHeight: matchRowHeight
5015
 
5016
  var percentageSize = function (width, element) {
5017
  var floatWidth = parseFloat(width);
5018
+ var pixelWidth = $_ga29tsnbjjgwedly.get(element);
5019
  var getCellDelta = function (delta) {
5020
  return delta / pixelWidth * 100;
5021
  };
5023
  return [100 - width];
5024
  };
5025
  var minCellWidth = function () {
5026
+ return $_6gfmi1ohjjgweduu.minWidth() / pixelWidth * 100;
5027
  };
5028
  var setTableWidth = function (table, _newWidths, delta) {
5029
  var total = floatWidth + delta;
5030
+ $_b9jva9n7jjgwedkv.setPercentageWidth(table, total);
5031
  };
5032
  return {
5033
+ width: constant(floatWidth),
5034
+ pixelWidth: constant(pixelWidth),
5035
+ getWidths: $_8hy1x9ogjjgwedul.getPercentageWidths,
5036
  getCellDelta: getCellDelta,
5037
  singleColumnWidth: singleColumnWidth,
5038
  minCellWidth: minCellWidth,
5039
+ setElementWidth: $_b9jva9n7jjgwedkv.setPercentageWidth,
5040
  setTableWidth: setTableWidth
5041
  };
5042
  };
5043
  var pixelSize = function (width) {
5044
  var intWidth = parseInt(width, 10);
5045
+ var getCellDelta = identity;
5046
  var singleColumnWidth = function (width, delta) {
5047
+ var newNext = Math.max($_6gfmi1ohjjgweduu.minWidth(), width + delta);
5048
  return [newNext - width];
5049
  };
5050
  var setTableWidth = function (table, newWidths, _delta) {
5051
+ var total = foldr(newWidths, function (b, a) {
5052
  return b + a;
5053
  }, 0);
5054
+ $_b9jva9n7jjgwedkv.setPixelWidth(table, total);
5055
  };
5056
  return {
5057
+ width: constant(intWidth),
5058
+ pixelWidth: constant(intWidth),
5059
+ getWidths: $_8hy1x9ogjjgwedul.getPixelWidths,
5060
  getCellDelta: getCellDelta,
5061
  singleColumnWidth: singleColumnWidth,
5062
+ minCellWidth: $_6gfmi1ohjjgweduu.minWidth,
5063
+ setElementWidth: $_b9jva9n7jjgwedkv.setPixelWidth,
5064
  setTableWidth: setTableWidth
5065
  };
5066
  };
5067
  var chooseSize = function (element, width) {
5068
+ if ($_b9jva9n7jjgwedkv.percentageBasedSizeRegex().test(width)) {
5069
+ var percentMatch = $_b9jva9n7jjgwedkv.percentageBasedSizeRegex().exec(width);
5070
  return percentageSize(percentMatch[1], element);
5071
+ } else if ($_b9jva9n7jjgwedkv.pixelBasedSizeRegex().test(width)) {
5072
+ var pixelMatch = $_b9jva9n7jjgwedkv.pixelBasedSizeRegex().exec(width);
5073
  return pixelSize(pixelMatch[1]);
5074
  } else {
5075
+ var fallbackWidth = $_ga29tsnbjjgwedly.get(element);
5076
  return pixelSize(fallbackWidth);
5077
  }
5078
  };
5079
  var getTableSize = function (element) {
5080
+ var width = $_b9jva9n7jjgwedkv.getRawWidth(element);
5081
  return width.fold(function () {
5082
+ var fallbackWidth = $_ga29tsnbjjgwedly.get(element);
5083
  return pixelSize(fallbackWidth);
5084
  }, function (width) {
5085
  return chooseSize(element, width);
5086
  });
5087
  };
5088
+ var $_6si1ajojjjgwedv7 = { getTableSize: getTableSize };
5089
 
5090
  var getWarehouse$1 = function (list) {
5091
+ return $_eesv8pmajjgwedcx.generate(list);
5092
  };
5093
  var sumUp = function (newSize) {
5094
+ return foldr(newSize, function (b, a) {
5095
  return b + a;
5096
  }, 0);
5097
  };
5098
  var getTableWarehouse = function (table) {
5099
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
5100
  return getWarehouse$1(list);
5101
  };
5102
  var adjustWidth = function (table, delta, index, direction) {
5103
+ var tableSize = $_6si1ajojjjgwedv7.getTableSize(table);
5104
  var step = tableSize.getCellDelta(delta);
5105
  var warehouse = getTableWarehouse(table);
5106
  var widths = tableSize.getWidths(warehouse, direction, tableSize);
5107
+ var deltas = $_5hh8p8oejjgwedub.determine(widths, index, step, tableSize);
5108
+ var newWidths = map(deltas, function (dx, i) {
5109
  return dx + widths[i];
5110
  });
5111
+ var newSizes = $_1f5uvboijjgwedv1.recalculateWidth(warehouse, newWidths);
5112
+ each(newSizes, function (cell) {
5113
  tableSize.setElementWidth(cell.element(), cell.width());
5114
  });
5115
  if (index === warehouse.grid().columns() - 1) {
5118
  };
5119
  var adjustHeight = function (table, delta, index, direction) {
5120
  var warehouse = getTableWarehouse(table);
5121
+ var heights = $_8hy1x9ogjjgwedul.getPixelHeights(warehouse, direction);
5122
+ var newHeights = map(heights, function (dy, i) {
5123
+ return index === i ? Math.max(delta + dy, $_6gfmi1ohjjgweduu.minHeight()) : dy;
5124
  });
5125
+ var newCellSizes = $_1f5uvboijjgwedv1.recalculateHeight(warehouse, newHeights);
5126
+ var newRowSizes = $_1f5uvboijjgwedv1.matchRowHeight(warehouse, newHeights);
5127
+ each(newRowSizes, function (row) {
5128
+ $_b9jva9n7jjgwedkv.setHeight(row.element(), row.height());
5129
  });
5130
+ each(newCellSizes, function (cell) {
5131
+ $_b9jva9n7jjgwedkv.setHeight(cell.element(), cell.height());
5132
  });
5133
  var total = sumUp(newHeights);
5134
+ $_b9jva9n7jjgwedkv.setHeight(table, total);
5135
  };
5136
  var adjustWidthTo = function (table, list, direction) {
5137
+ var tableSize = $_6si1ajojjjgwedv7.getTableSize(table);
5138
  var warehouse = getWarehouse$1(list);
5139
  var widths = tableSize.getWidths(warehouse, direction, tableSize);
5140
+ var newSizes = $_1f5uvboijjgwedv1.recalculateWidth(warehouse, widths);
5141
+ each(newSizes, function (cell) {
5142
  tableSize.setElementWidth(cell.element(), cell.width());
5143
  });
5144
+ var total = foldr(widths, function (b, a) {
5145
  return a + b;
5146
  }, 0);
5147
  if (newSizes.length > 0) {
5148
  tableSize.setElementWidth(table, total);
5149
  }
5150
  };
5151
+ var $_5zl29zodjjgwedu6 = {
5152
  adjustWidth: adjustWidth,
5153
  adjustHeight: adjustHeight,
5154
  adjustWidthTo: adjustWidthTo
5155
  };
5156
 
5157
  var prune = function (table) {
5158
+ var cells = $_bmlvw1ldjjgwed84.cells(table);
5159
  if (cells.length === 0)
5160
+ $_1y8qodmejjgweddq.remove(table);
5161
  };
5162
+ var outcome = Immutable('grid', 'cursor');
5163
  var elementFromGrid = function (grid, row, column) {
5164
  return findIn(grid, row, column).orThunk(function () {
5165
  return findIn(grid, 0, 0);
5176
  return outcome(grid, findIn(grid, row, column));
5177
  };
5178
  var uniqueRows = function (details) {
5179
+ return foldl(details, function (rest, detail) {
5180
+ return exists(rest, function (currentDetail) {
5181
  return currentDetail.row() === detail.row();
5182
  }) ? rest : rest.concat([detail]);
5183
  }, []).sort(function (detailA, detailB) {
5185
  });
5186
  };
5187
  var uniqueColumns = function (details) {
5188
+ return foldl(details, function (rest, detail) {
5189
+ return exists(rest, function (currentDetail) {
5190
  return currentDetail.column() === detail.column();
5191
  }) ? rest : rest.concat([detail]);
5192
  }, []).sort(function (detailA, detailB) {
5196
  var insertRowBefore = function (grid, detail, comparator, genWrappers) {
5197
  var example = detail.row();
5198
  var targetIndex = detail.row();
5199
+ var newGrid = $_6ilb5mobjjgwedtn.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5200
  return bundle(newGrid, targetIndex, detail.column());
5201
  };
5202
  var insertRowsBefore = function (grid, details, comparator, genWrappers) {
5203
  var example = details[0].row();
5204
  var targetIndex = details[0].row();
5205
  var rows = uniqueRows(details);
5206
+ var newGrid = foldl(rows, function (newGrid, _row) {
5207
+ return $_6ilb5mobjjgwedtn.insertRowAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5208
  }, grid);
5209
  return bundle(newGrid, targetIndex, details[0].column());
5210
  };
5211
  var insertRowAfter = function (grid, detail, comparator, genWrappers) {
5212
  var example = detail.row();
5213
  var targetIndex = detail.row() + detail.rowspan();
5214
+ var newGrid = $_6ilb5mobjjgwedtn.insertRowAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5215
  return bundle(newGrid, targetIndex, detail.column());
5216
  };
5217
  var insertRowsAfter = function (grid, details, comparator, genWrappers) {
5218
  var rows = uniqueRows(details);
5219
  var example = rows[rows.length - 1].row();
5220
  var targetIndex = rows[rows.length - 1].row() + rows[rows.length - 1].rowspan();
5221
+ var newGrid = foldl(rows, function (newGrid, _row) {
5222
+ return $_6ilb5mobjjgwedtn.insertRowAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5223
  }, grid);
5224
  return bundle(newGrid, targetIndex, details[0].column());
5225
  };
5226
  var insertColumnBefore = function (grid, detail, comparator, genWrappers) {
5227
  var example = detail.column();
5228
  var targetIndex = detail.column();
5229
+ var newGrid = $_6ilb5mobjjgwedtn.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5230
  return bundle(newGrid, detail.row(), targetIndex);
5231
  };
5232
  var insertColumnsBefore = function (grid, details, comparator, genWrappers) {
5233
  var columns = uniqueColumns(details);
5234
  var example = columns[0].column();
5235
  var targetIndex = columns[0].column();
5236
+ var newGrid = foldl(columns, function (newGrid, _row) {
5237
+ return $_6ilb5mobjjgwedtn.insertColumnAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5238
  }, grid);
5239
  return bundle(newGrid, details[0].row(), targetIndex);
5240
  };
5241
  var insertColumnAfter = function (grid, detail, comparator, genWrappers) {
5242
  var example = detail.column();
5243
  var targetIndex = detail.column() + detail.colspan();
5244
+ var newGrid = $_6ilb5mobjjgwedtn.insertColumnAt(grid, targetIndex, example, comparator, genWrappers.getOrInit);
5245
  return bundle(newGrid, detail.row(), targetIndex);
5246
  };
5247
  var insertColumnsAfter = function (grid, details, comparator, genWrappers) {
5248
  var example = details[details.length - 1].column();
5249
  var targetIndex = details[details.length - 1].column() + details[details.length - 1].colspan();
5250
  var columns = uniqueColumns(details);
5251
+ var newGrid = foldl(columns, function (newGrid, _row) {
5252
+ return $_6ilb5mobjjgwedtn.insertColumnAt(newGrid, targetIndex, example, comparator, genWrappers.getOrInit);
5253
  }, grid);
5254
  return bundle(newGrid, details[0].row(), targetIndex);
5255
  };
5256
  var makeRowHeader = function (grid, detail, comparator, genWrappers) {
5257
+ var newGrid = $_a2f8x6ocjjgwedtt.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);
5258
  return bundle(newGrid, detail.row(), detail.column());
5259
  };
5260
  var makeColumnHeader = function (grid, detail, comparator, genWrappers) {
5261
+ var newGrid = $_a2f8x6ocjjgwedtt.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);
5262
  return bundle(newGrid, detail.row(), detail.column());
5263
  };
5264
  var unmakeRowHeader = function (grid, detail, comparator, genWrappers) {
5265
+ var newGrid = $_a2f8x6ocjjgwedtt.replaceRow(grid, detail.row(), comparator, genWrappers.replaceOrInit);
5266
  return bundle(newGrid, detail.row(), detail.column());
5267
  };
5268
  var unmakeColumnHeader = function (grid, detail, comparator, genWrappers) {
5269
+ var newGrid = $_a2f8x6ocjjgwedtt.replaceColumn(grid, detail.column(), comparator, genWrappers.replaceOrInit);
5270
  return bundle(newGrid, detail.row(), detail.column());
5271
  };
5272
  var splitCellIntoColumns$1 = function (grid, detail, comparator, genWrappers) {
5273
+ var newGrid = $_6ilb5mobjjgwedtn.splitCellIntoColumns(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
5274
  return bundle(newGrid, detail.row(), detail.column());
5275
  };
5276
  var splitCellIntoRows$1 = function (grid, detail, comparator, genWrappers) {
5277
+ var newGrid = $_6ilb5mobjjgwedtn.splitCellIntoRows(grid, detail.row(), detail.column(), comparator, genWrappers.getOrInit);
5278
  return bundle(newGrid, detail.row(), detail.column());
5279
  };
5280
  var eraseColumns = function (grid, details, comparator, _genWrappers) {
5281
  var columns = uniqueColumns(details);
5282
+ var newGrid = $_6ilb5mobjjgwedtn.deleteColumnsAt(grid, columns[0].column(), columns[columns.length - 1].column());
5283
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
5284
  return outcome(newGrid, cursor);
5285
  };
5286
  var eraseRows = function (grid, details, comparator, _genWrappers) {
5287
  var rows = uniqueRows(details);
5288
+ var newGrid = $_6ilb5mobjjgwedtn.deleteRowsAt(grid, rows[0].row(), rows[rows.length - 1].row());
5289
  var cursor = elementFromGrid(newGrid, details[0].row(), details[0].column());
5290
  return outcome(newGrid, cursor);
5291
  };
5292
  var mergeCells = function (grid, mergable, comparator, _genWrappers) {
5293
  var cells = mergable.cells();
5294
+ $_bbrz1bnnjjgwedo6.merge(cells);
5295
+ var newGrid = $_g5x9r0oajjgwedtg.merge(grid, mergable.bounds(), comparator, constant(cells[0]));
5296
  return outcome(newGrid, Option.from(cells[0]));
5297
  };
5298
  var unmergeCells = function (grid, unmergable, comparator, genWrappers) {
5299
+ var newGrid = foldr(unmergable, function (b, cell) {
5300
+ return $_g5x9r0oajjgwedtg.unmerge(b, cell, comparator, genWrappers.combine(cell));
5301
  }, grid);
5302
  return outcome(newGrid, Option.from(unmergable[0]));
5303
  };
5304
  var pasteCells = function (grid, pasteDetails, comparator, genWrappers) {
5305
  var gridify = function (table, generators) {
5306
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
5307
+ var wh = $_eesv8pmajjgwedcx.generate(list);
5308
+ return $_7omv2yntjjgwedpr.toGrid(wh, generators, true);
5309
  };
5310
  var gridB = gridify(pasteDetails.clipboard(), pasteDetails.generators());
5311
+ var startAddress = $_6lasqllcjjgwed80.address(pasteDetails.row(), pasteDetails.column());
5312
+ var mergedGrid = $_1gr31eo7jjgwedsx.merge(startAddress, grid, gridB, pasteDetails.generators(), comparator);
5313
  return mergedGrid.fold(function () {
5314
  return outcome(grid, Option.some(pasteDetails.element()));
5315
  }, function (nuGrid) {
5318
  });
5319
  };
5320
  var gridifyRows = function (rows, generators, example) {
5321
+ var pasteDetails = $_da6e59lbjjgwed7r.fromPastedRows(rows, example);
5322
+ var wh = $_eesv8pmajjgwedcx.generate(pasteDetails);
5323
+ return $_7omv2yntjjgwedpr.toGrid(wh, generators, true);
5324
  };
5325
  var pasteRowsBefore = function (grid, pasteDetails, comparator, genWrappers) {
5326
  var example = grid[pasteDetails.cells[0].row()];
5327
  var index = pasteDetails.cells[0].row();
5328
  var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);
5329
+ var mergedGrid = $_1gr31eo7jjgwedsx.insert(index, grid, gridB, pasteDetails.generators(), comparator);
5330
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
5331
  return outcome(mergedGrid, cursor);
5332
  };
5334
  var example = grid[pasteDetails.cells[0].row()];
5335
  var index = pasteDetails.cells[pasteDetails.cells.length - 1].row() + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan();
5336
  var gridB = gridifyRows(pasteDetails.clipboard(), pasteDetails.generators(), example);
5337
+ var mergedGrid = $_1gr31eo7jjgwedsx.insert(index, grid, gridB, pasteDetails.generators(), comparator);
5338
  var cursor = elementFromGrid(mergedGrid, pasteDetails.cells[0].row(), pasteDetails.cells[0].column());
5339
  return outcome(mergedGrid, cursor);
5340
  };
5341
+ var resize = $_5zl29zodjjgwedu6.adjustWidthTo;
5342
+ var $_1evrpxnjjjgwedmy = {
5343
+ insertRowBefore: $_a3xhvcnqjjgwedp4.run(insertRowBefore, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.modification),
5344
+ insertRowsBefore: $_a3xhvcnqjjgwedp4.run(insertRowsBefore, $_a3xhvcnqjjgwedp4.onCells, noop, noop, $_5kytwlnkjjgwednf.modification),
5345
+ insertRowAfter: $_a3xhvcnqjjgwedp4.run(insertRowAfter, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.modification),
5346
+ insertRowsAfter: $_a3xhvcnqjjgwedp4.run(insertRowsAfter, $_a3xhvcnqjjgwedp4.onCells, noop, noop, $_5kytwlnkjjgwednf.modification),
5347
+ insertColumnBefore: $_a3xhvcnqjjgwedp4.run(insertColumnBefore, $_a3xhvcnqjjgwedp4.onCell, resize, noop, $_5kytwlnkjjgwednf.modification),
5348
+ insertColumnsBefore: $_a3xhvcnqjjgwedp4.run(insertColumnsBefore, $_a3xhvcnqjjgwedp4.onCells, resize, noop, $_5kytwlnkjjgwednf.modification),
5349
+ insertColumnAfter: $_a3xhvcnqjjgwedp4.run(insertColumnAfter, $_a3xhvcnqjjgwedp4.onCell, resize, noop, $_5kytwlnkjjgwednf.modification),
5350
+ insertColumnsAfter: $_a3xhvcnqjjgwedp4.run(insertColumnsAfter, $_a3xhvcnqjjgwedp4.onCells, resize, noop, $_5kytwlnkjjgwednf.modification),
5351
+ splitCellIntoColumns: $_a3xhvcnqjjgwedp4.run(splitCellIntoColumns$1, $_a3xhvcnqjjgwedp4.onCell, resize, noop, $_5kytwlnkjjgwednf.modification),
5352
+ splitCellIntoRows: $_a3xhvcnqjjgwedp4.run(splitCellIntoRows$1, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.modification),
5353
+ eraseColumns: $_a3xhvcnqjjgwedp4.run(eraseColumns, $_a3xhvcnqjjgwedp4.onCells, resize, prune, $_5kytwlnkjjgwednf.modification),
5354
+ eraseRows: $_a3xhvcnqjjgwedp4.run(eraseRows, $_a3xhvcnqjjgwedp4.onCells, noop, prune, $_5kytwlnkjjgwednf.modification),
5355
+ makeColumnHeader: $_a3xhvcnqjjgwedp4.run(makeColumnHeader, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.transform('row', 'th')),
5356
+ unmakeColumnHeader: $_a3xhvcnqjjgwedp4.run(unmakeColumnHeader, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.transform(null, 'td')),
5357
+ makeRowHeader: $_a3xhvcnqjjgwedp4.run(makeRowHeader, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.transform('col', 'th')),
5358
+ unmakeRowHeader: $_a3xhvcnqjjgwedp4.run(unmakeRowHeader, $_a3xhvcnqjjgwedp4.onCell, noop, noop, $_5kytwlnkjjgwednf.transform(null, 'td')),
5359
+ mergeCells: $_a3xhvcnqjjgwedp4.run(mergeCells, $_a3xhvcnqjjgwedp4.onMergable, noop, noop, $_5kytwlnkjjgwednf.merging),
5360
+ unmergeCells: $_a3xhvcnqjjgwedp4.run(unmergeCells, $_a3xhvcnqjjgwedp4.onUnmergable, resize, noop, $_5kytwlnkjjgwednf.merging),
5361
+ pasteCells: $_a3xhvcnqjjgwedp4.run(pasteCells, $_a3xhvcnqjjgwedp4.onPaste, resize, noop, $_5kytwlnkjjgwednf.modification),
5362
+ pasteRowsBefore: $_a3xhvcnqjjgwedp4.run(pasteRowsBefore, $_a3xhvcnqjjgwedp4.onPasteRows, noop, noop, $_5kytwlnkjjgwednf.modification),
5363
+ pasteRowsAfter: $_a3xhvcnqjjgwedp4.run(pasteRowsAfter, $_a3xhvcnqjjgwedp4.onPasteRows, noop, noop, $_5kytwlnkjjgwednf.modification)
5364
  };
5365
 
5366
  var getBody$1 = function (editor) {
5367
+ return Element$$1.fromDom(editor.getBody());
5368
+ };
5369
+ var getPixelWidth$1 = function (elm) {
5370
+ return elm.getBoundingClientRect().width;
5371
+ };
5372
+ var getPixelHeight = function (elm) {
5373
+ return elm.getBoundingClientRect().height;
5374
  };
5375
  var getIsRoot = function (editor) {
5376
  return function (element) {
5377
+ return $_e1yh5slljjgwedae.eq(element, getBody$1(editor));
5378
  };
5379
  };
5380
  var removePxSuffix = function (size) {
5386
  }
5387
  return size;
5388
  };
5389
+ var removeDataStyle = function (table) {
5390
+ var dataStyleCells = $_5ko5j3m4jjgwedc0.descendants(table, 'td[data-mce-style],th[data-mce-style]');
5391
+ $_72hn9pm2jjgwedbq.remove(table, 'data-mce-style');
5392
+ each(dataStyleCells, function (cell) {
5393
+ $_72hn9pm2jjgwedbq.remove(cell, 'data-mce-style');
5394
+ });
5395
  };
5396
 
5397
  var onDirection = function (isLtr, isRtl) {
5400
  };
5401
  };
5402
  var getDirection = function (element) {
5403
+ return $_59neaymbjjgwedd8.get(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';
5404
  };
5405
+ var $_1xze07omjjgwedvt = {
5406
  onDirection: onDirection,
5407
  getDirection: getDirection
5408
  };
5409
 
5410
+ var ltr$1 = { isRtl: constant(false) };
5411
+ var rtl$1 = { isRtl: constant(true) };
5412
  var directionAt = function (element) {
5413
+ var dir = $_1xze07omjjgwedvt.getDirection(element);
5414
  return dir === 'rtl' ? rtl$1 : ltr$1;
5415
  };
5416
+ var $_dowdxdoljjgwedvp = { directionAt: directionAt };
5417
 
5418
  var defaultTableToolbar = [
5419
  'tableprops',
5479
  };
5480
  var getCloneElements = function (editor) {
5481
  var cloneElements = editor.getParam('table_clone_elements');
5482
+ if (isString(cloneElements)) {
5483
  return Option.some(cloneElements.split(/[ ,]/));
5484
  } else if (Array.isArray(cloneElements)) {
5485
  return Option.some(cloneElements);
5495
  var toolbar = editor.getParam('table_toolbar', defaultTableToolbar);
5496
  if (toolbar === '' || toolbar === false) {
5497
  return [];
5498
+ } else if (isString(toolbar)) {
5499
  return toolbar.split(/[ ,]/);
5500
+ } else if (isArray(toolbar)) {
5501
  return toolbar;
5502
  } else {
5503
  return [];
5510
  var fireNewCell = function (editor, cell) {
5511
  return editor.fire('newcell', { node: cell });
5512
  };
5513
+ var fireObjectResizeStart = function (editor, target, width, height) {
5514
+ editor.fire('ObjectResizeStart', {
5515
+ target: target,
5516
+ width: width,
5517
+ height: height
5518
+ });
5519
+ };
5520
+ var fireObjectResized = function (editor, target, width, height) {
5521
+ editor.fire('ObjectResized', {
5522
+ target: target,
5523
+ width: width,
5524
+ height: height
5525
+ });
5526
+ };
5527
 
5528
  var TableActions = function (editor, lazyWire) {
5529
  var isTableBody = function (editor) {
5530
+ return $_g6duvbm3jjgwedby.name(getBody$1(editor)) === 'table';
5531
  };
5532
  var lastRowGuard = function (table) {
5533
+ var size = $_6hdhmfnijjgwedmv.getGridSize(table);
5534
  return isTableBody(editor) === false || size.rows() > 1;
5535
  };
5536
  var lastColumnGuard = function (table) {
5537
+ var size = $_6hdhmfnijjgwedmv.getGridSize(table);
5538
  return isTableBody(editor) === false || size.columns() > 1;
5539
  };
5540
  var cloneFormats = getCloneElements(editor);
5541
  var execute = function (operation, guard, mutate, lazyWire) {
5542
  return function (table, target) {
5543
+ removeDataStyle(table);
 
 
 
5544
  var wire = lazyWire();
5545
+ var doc = Element$$1.fromDom(editor.getDoc());
5546
+ var direction = TableDirection($_dowdxdoljjgwedvp.directionAt);
5547
+ var generators = $_cne69smgjjgweddy.cellOperations(mutate, doc, cloneFormats);
5548
  return guard(table) ? operation(wire, table, target, generators, direction).bind(function (result) {
5549
+ each(result.newRows(), function (row) {
5550
  fireNewRow(editor, row.dom());
5551
  });
5552
+ each(result.newCells(), function (cell) {
5553
  fireNewCell(editor, cell.dom());
5554
  });
5555
  return result.cursor().map(function (cell) {
5561
  }) : Option.none();
5562
  };
5563
  };
5564
+ var deleteRow = execute($_1evrpxnjjjgwedmy.eraseRows, lastRowGuard, noop, lazyWire);
5565
+ var deleteColumn = execute($_1evrpxnjjjgwedmy.eraseColumns, lastColumnGuard, noop, lazyWire);
5566
+ var insertRowsBefore = execute($_1evrpxnjjjgwedmy.insertRowsBefore, always, noop, lazyWire);
5567
+ var insertRowsAfter = execute($_1evrpxnjjjgwedmy.insertRowsAfter, always, noop, lazyWire);
5568
+ var insertColumnsBefore = execute($_1evrpxnjjjgwedmy.insertColumnsBefore, always, $_ajdo6on6jjgwedks.halve, lazyWire);
5569
+ var insertColumnsAfter = execute($_1evrpxnjjjgwedmy.insertColumnsAfter, always, $_ajdo6on6jjgwedks.halve, lazyWire);
5570
+ var mergeCells = execute($_1evrpxnjjjgwedmy.mergeCells, always, noop, lazyWire);
5571
+ var unmergeCells = execute($_1evrpxnjjjgwedmy.unmergeCells, always, noop, lazyWire);
5572
+ var pasteRowsBefore = execute($_1evrpxnjjjgwedmy.pasteRowsBefore, always, noop, lazyWire);
5573
+ var pasteRowsAfter = execute($_1evrpxnjjjgwedmy.pasteRowsAfter, always, noop, lazyWire);
5574
+ var pasteCells = execute($_1evrpxnjjjgwedmy.pasteCells, always, noop, lazyWire);
5575
  return {
5576
  deleteRow: deleteRow,
5577
  deleteColumn: deleteColumn,
5588
  };
5589
 
5590
  var copyRows = function (table, target, generators) {
5591
+ var list = $_da6e59lbjjgwed7r.fromTable(table);
5592
+ var house = $_eesv8pmajjgwedcx.generate(list);
5593
+ var details = $_a3xhvcnqjjgwedp4.onCells(house, target);
5594
  return details.map(function (selectedCells) {
5595
+ var grid = $_7omv2yntjjgwedpr.toGrid(house, generators, false);
5596
  var slicedGrid = grid.slice(selectedCells[0].row(), selectedCells[selectedCells.length - 1].row() + selectedCells[selectedCells.length - 1].rowspan());
5597
+ var slicedDetails = $_a3xhvcnqjjgwedp4.toDetailList(slicedGrid, generators);
5598
+ return $_fdgjk7nwjjgwedqb.copy(slicedDetails);
5599
  });
5600
  };
5601
+ var $_1cz66ioqjjgwedwq = { copyRows: copyRows };
5602
 
5603
+ var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
5604
 
5605
  var getTDTHOverallStyle = function (dom, elm, name) {
5606
  var cells = dom.select('td,th', elm);
5631
  }
5632
  };
5633
  var unApplyAlign = function (editor, elm) {
5634
+ global$1.each('left center right'.split(' '), function (name) {
5635
  editor.formatter.remove('align' + name, {}, elm);
5636
  });
5637
  };
5638
  var unApplyVAlign = function (editor, elm) {
5639
+ global$1.each('top middle bottom'.split(' '), function (name) {
5640
  editor.formatter.remove('valign' + name, {}, elm);
5641
  });
5642
  };
5643
+ var $_cmvolcotjjgwedx1 = {
5644
  applyAlign: applyAlign,
5645
  applyVAlign: applyVAlign,
5646
  unApplyAlign: unApplyAlign,
5651
  var buildListItems = function (inputList, itemCallback, startItems) {
5652
  var appendItems = function (values, output) {
5653
  output = output || [];
5654
+ global$1.each(values, function (item) {
5655
  var menuItem = { text: item.text || item.title };
5656
  if (item.menu) {
5657
  menuItem.menu = appendItems(item.menu);
5667
  };
5668
  return appendItems(inputList, startItems || []);
5669
  };
5670
+ function styleFieldHasFocus(e) {
5671
+ return e.control.rootControl.find('#style')[0].getEl().isEqualNode(document.activeElement);
5672
+ }
5673
+ var syncAdvancedStyleFields = function (editor, evt) {
5674
+ if (styleFieldHasFocus(evt)) {
5675
+ updateAdvancedFields(editor, evt);
5676
+ } else {
5677
+ updateStyleField(editor, evt);
5678
+ }
5679
+ };
5680
  var updateStyleField = function (editor, evt) {
5681
  var dom = editor.dom;
5682
  var rootControl = evt.control.rootControl;
5683
  var data = rootControl.toJSON();
5684
  var css = dom.parseStyle(data.style);
5685
+ css['border-style'] = data.borderStyle;
5686
+ css['border-color'] = data.borderColor;
5687
+ css['background-color'] = data.backgroundColor;
5688
+ css.width = data.width ? addSizeSuffix(data.width) : '';
5689
+ css.height = data.height ? addSizeSuffix(data.height) : '';
 
 
 
 
 
 
 
 
5690
  rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))));
5691
  };
5692
+ var updateAdvancedFields = function (editor, evt) {
5693
+ var dom = editor.dom;
5694
+ var rootControl = evt.control.rootControl;
5695
+ var data = rootControl.toJSON();
5696
+ var css = dom.parseStyle(data.style);
5697
+ rootControl.find('#borderStyle').value(css['border-style'] || '');
5698
+ rootControl.find('#borderColor').value(css['border-color'] || '');
5699
+ rootControl.find('#backgroundColor').value(css['background-color'] || '');
5700
+ rootControl.find('#width').value(css.width || '');
5701
+ rootControl.find('#height').value(css.height || '');
5702
+ };
5703
  var extractAdvancedStyles = function (dom, elm) {
5704
  var css = dom.parseStyle(dom.getAttrib(elm, 'style'));
5705
  var data = {};
5729
  return {
5730
  title: 'Advanced',
5731
  type: 'form',
5732
+ defaults: { onchange: curry(updateStyleField, editor) },
5733
  items: [
5734
  {
5735
  label: 'Style',
5736
  name: 'style',
5737
+ type: 'textbox',
5738
+ onchange: curry(updateAdvancedFields, editor)
5739
  },
5740
  {
5741
  type: 'form',
5754
  type: 'listbox',
5755
  name: 'borderStyle',
5756
  width: 90,
5757
+ onselect: curry(updateStyleField, editor),
5758
  values: [
5759
  {
5760
  text: 'Select...',
5819
  ]
5820
  };
5821
  };
5822
+ var $_fex2z1oujjgwedx4 = {
5823
  createStyleForm: createStyleForm,
5824
  buildListItems: buildListItems,
5825
  updateStyleField: updateStyleField,
5826
+ extractAdvancedStyles: extractAdvancedStyles,
5827
+ updateAdvancedFields: updateAdvancedFields,
5828
+ syncAdvancedStyleFields: syncAdvancedStyleFields
5829
  };
5830
 
5831
  var updateStyles = function (elm, cssText) {
5844
  align: '',
5845
  valign: ''
5846
  };
5847
+ global$1.each('left center right'.split(' '), function (name) {
5848
  if (editor.formatter.matchNode(elm, 'align' + name)) {
5849
  data.align = name;
5850
  }
5851
  });
5852
+ global$1.each('top middle bottom'.split(' '), function (name) {
5853
  if (editor.formatter.matchNode(elm, 'valign' + name)) {
5854
  data.valign = name;
5855
  }
5856
  });
5857
  if (hasAdvancedCellTab(editor)) {
5858
+ global$1.extend(data, $_fex2z1oujjgwedx4.extractAdvancedStyles(dom, elm));
5859
  }
5860
  return data;
5861
  };
5863
  var dom = editor.dom;
5864
  var data;
5865
  function setAttrib(elm, name, value) {
5866
+ if (cells.length === 1 || value) {
5867
  dom.setAttrib(elm, name, value);
5868
  }
5869
  }
5870
  function setStyle(elm, name, value) {
5871
+ if (cells.length === 1 || value) {
5872
  dom.setStyle(elm, name, value);
5873
  }
5874
  }
5875
+ if (hasAdvancedCellTab(editor)) {
5876
+ $_fex2z1oujjgwedx4.syncAdvancedStyleFields(editor, evt);
5877
+ }
5878
  data = evt.control.rootControl.toJSON();
5879
  editor.undoManager.transact(function () {
5880
+ global$1.each(cells, function (cellElm) {
5881
  setAttrib(cellElm, 'scope', data.scope);
5882
  if (cells.length === 1) {
5883
  setAttrib(cellElm, 'style', data.style);
5885
  updateStyles(cellElm, data.style);
5886
  }
5887
  setAttrib(cellElm, 'class', data.class);
5888
+ setStyle(cellElm, 'width', addSizeSuffix(data.width));
5889
+ setStyle(cellElm, 'height', addSizeSuffix(data.height));
5890
  if (data.type && cellElm.nodeName.toLowerCase() !== data.type) {
5891
  cellElm = dom.rename(cellElm, data.type);
5892
  }
5893
  if (cells.length === 1) {
5894
+ $_cmvolcotjjgwedx1.unApplyAlign(editor, cellElm);
5895
+ $_cmvolcotjjgwedx1.unApplyVAlign(editor, cellElm);
5896
  }
5897
  if (data.align) {
5898
+ $_cmvolcotjjgwedx1.applyAlign(editor, cellElm, data.align);
5899
  }
5900
  if (data.valign) {
5901
+ $_cmvolcotjjgwedx1.applyVAlign(editor, cellElm, data.valign);
5902
  }
5903
  });
5904
  editor.focus();
5934
  name: 'class',
5935
  type: 'listbox',
5936
  label: 'Class',
5937
+ values: $_fex2z1oujjgwedx4.buildListItems(getCellClassList(editor), function (item) {
5938
  if (item.value) {
5939
  item.textStyle = function () {
5940
  return editor.formatter.getCssText({
5967
  {
5968
  label: 'Width',
5969
  name: 'width',
5970
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
5971
  },
5972
  {
5973
  label: 'Height',
5974
  name: 'height',
5975
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
5976
  },
5977
  {
5978
  label: 'Cell type',
6090
  type: 'form',
6091
  items: generalCellForm
6092
  },
6093
+ $_fex2z1oujjgwedx4.createStyleForm(editor)
6094
  ],
6095
+ onsubmit: curry(onSubmitCellForm, editor, cells)
6096
  });
6097
  } else {
6098
  editor.windowManager.open({
6099
  title: 'Cell properties',
6100
  data: data,
6101
  body: generalCellForm,
6102
+ onsubmit: curry(onSubmitCellForm, editor, cells)
6103
  });
6104
  }
6105
  };
6106
+ var $_i574vosjjgwedwu = { open: open };
6107
 
6108
  var extractDataFromElement$1 = function (editor, elm) {
6109
  var dom = editor.dom;
6115
  style: '',
6116
  type: elm.parentNode.nodeName.toLowerCase()
6117
  };
6118
+ global$1.each('left center right'.split(' '), function (name) {
6119
  if (editor.formatter.matchNode(elm, 'align' + name)) {
6120
  data.align = name;
6121
  }
6122
  });
6123
  if (hasAdvancedRowTab(editor)) {
6124
+ global$1.extend(data, $_fex2z1oujjgwedx4.extractAdvancedStyles(dom, elm));
6125
  }
6126
  return data;
6127
  };
6149
  function onSubmitRowForm(editor, rows, oldData, evt) {
6150
  var dom = editor.dom;
6151
  function setAttrib(elm, name, value) {
6152
+ if (rows.length === 1 || value) {
6153
  dom.setAttrib(elm, name, value);
6154
  }
6155
  }
6156
  function setStyle(elm, name, value) {
6157
+ if (rows.length === 1 || value) {
6158
  dom.setStyle(elm, name, value);
6159
  }
6160
  }
6161
+ if (hasAdvancedRowTab(editor)) {
6162
+ $_fex2z1oujjgwedx4.syncAdvancedStyleFields(editor, evt);
6163
+ }
6164
  var data = evt.control.rootControl.toJSON();
6165
  editor.undoManager.transact(function () {
6166
+ global$1.each(rows, function (rowElm) {
6167
  setAttrib(rowElm, 'scope', data.scope);
6168
  setAttrib(rowElm, 'style', data.style);
6169
  setAttrib(rowElm, 'class', data.class);
6170
+ setStyle(rowElm, 'height', addSizeSuffix(data.height));
6171
  if (data.type !== rowElm.parentNode.nodeName.toLowerCase()) {
6172
  switchRowType(editor.dom, rowElm, data.type);
6173
  }
6174
  if (data.align !== oldData.align) {
6175
+ $_cmvolcotjjgwedx1.unApplyAlign(editor, rowElm);
6176
+ $_cmvolcotjjgwedx1.applyAlign(editor, rowElm, data.align);
6177
  }
6178
  });
6179
  editor.focus();
6186
  var generalRowForm;
6187
  tableElm = dom.getParent(editor.selection.getStart(), 'table');
6188
  cellElm = dom.getParent(editor.selection.getStart(), 'td,th');
6189
+ global$1.each(tableElm.rows, function (row) {
6190
+ global$1.each(row.cells, function (cell) {
6191
  if (dom.getAttrib(cell, 'data-mce-selected') || cell === cellElm) {
6192
  rows.push(row);
6193
  return false;
6215
  name: 'class',
6216
  type: 'listbox',
6217
  label: 'Class',
6218
+ values: $_fex2z1oujjgwedx4.buildListItems(getRowClassList(editor), function (item) {
6219
  if (item.value) {
6220
  item.textStyle = function () {
6221
  return editor.formatter.getCssText({
6297
  type: 'form',
6298
  items: generalRowForm
6299
  },
6300
+ $_fex2z1oujjgwedx4.createStyleForm(editor)
6301
  ],
6302
+ onsubmit: curry(onSubmitRowForm, editor, rows, data)
6303
  });
6304
  } else {
6305
  editor.windowManager.open({
6306
  title: 'Row properties',
6307
  data: data,
6308
  body: generalRowForm,
6309
+ onsubmit: curry(onSubmitRowForm, editor, rows, data)
6310
  });
6311
  }
6312
  };
6313
+ var $_39xpksovjjgwedxd = { open: open$1 };
6314
 
6315
+ var global$2 = tinymce.util.Tools.resolve('tinymce.Env');
6316
 
6317
  var DefaultRenderOptions = {
6318
  styles: {
6323
  percentages: true
6324
  };
6325
  var makeTable = function () {
6326
+ return Element$$1.fromTag('table');
6327
  };
6328
  var tableBody = function () {
6329
+ return Element$$1.fromTag('tbody');
6330
  };
6331
  var tableRow = function () {
6332
+ return Element$$1.fromTag('tr');
6333
  };
6334
  var tableHeaderCell = function () {
6335
+ return Element$$1.fromTag('th');
6336
  };
6337
  var tableCell = function () {
6338
+ return Element$$1.fromTag('td');
6339
  };
6340
  var render$1 = function (rows, columns, rowHeaders, columnHeaders, renderOpts) {
6341
  if (renderOpts === void 0) {
6342
  renderOpts = DefaultRenderOptions;
6343
  }
6344
  var table = makeTable();
6345
+ $_59neaymbjjgwedd8.setAll(table, renderOpts.styles);
6346
+ $_72hn9pm2jjgwedbq.setAll(table, renderOpts.attributes);
6347
  var tbody = tableBody();
6348
+ $_1yoqsmmdjjgweddo.append(table, tbody);
6349
  var trs = [];
6350
  for (var i = 0; i < rows; i++) {
6351
  var tr = tableRow();
6352
  for (var j = 0; j < columns; j++) {
6353
  var td = i < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();
6354
  if (j < columnHeaders) {
6355
+ $_72hn9pm2jjgwedbq.set(td, 'scope', 'row');
6356
  }
6357
  if (i < rowHeaders) {
6358
+ $_72hn9pm2jjgwedbq.set(td, 'scope', 'col');
6359
  }
6360
+ $_1yoqsmmdjjgweddo.append(td, Element$$1.fromTag('br'));
6361
  if (renderOpts.percentages) {
6362
+ $_59neaymbjjgwedd8.set(td, 'width', 100 / columns + '%');
6363
  }
6364
+ $_1yoqsmmdjjgweddo.append(tr, td);
6365
  }
6366
  trs.push(tr);
6367
  }
6368
+ $_7onf0emfjjgweddu.append(tbody, trs);
6369
  return table;
6370
  };
6371
 
6373
  return element.dom().innerHTML;
6374
  };
6375
  var set$5 = function (element, content) {
6376
+ var owner = $_97vsilljjjgwed9v.owner(element);
6377
  var docDom = owner.dom();
6378
+ var fragment = Element$$1.fromDom(docDom.createDocumentFragment());
6379
+ var contentElements = $_4bkah5mmjjgwedfb.fromHtml(content, docDom);
6380
+ $_7onf0emfjjgweddu.append(fragment, contentElements);
6381
+ $_1y8qodmejjgweddq.empty(element);
6382
+ $_1yoqsmmdjjgweddo.append(element, fragment);
6383
  };
6384
  var getOuter$2 = function (element) {
6385
+ var container = Element$$1.fromTag('div');
6386
+ var clone = Element$$1.fromDom(element.dom().cloneNode(true));
6387
+ $_1yoqsmmdjjgweddo.append(container, clone);
6388
  return get$7(container);
6389
  };
6390
+ var $_gc54c4p1jjgwedys = {
6391
  get: get$7,
6392
  set: set$5,
6393
  getOuter: getOuter$2
6398
  editor.selection.collapse(true);
6399
  };
6400
  var selectFirstCellInTable = function (editor, tableElm) {
6401
+ $_2e7p77m7jjgwedcg.descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor));
6402
  };
6403
  var fireEvents = function (editor, table) {
6404
+ each($_5ko5j3m4jjgwedc0.descendants(table, 'tr'), function (row) {
6405
  fireNewRow(editor, row.dom());
6406
+ each($_5ko5j3m4jjgwedc0.descendants(row, 'th,td'), function (cell) {
6407
  fireNewCell(editor, cell.dom());
6408
  });
6409
  });
6410
  };
6411
  var isPercentage = function (width) {
6412
+ return isString(width) && width.indexOf('%') !== -1;
6413
  };
6414
  var insert$1 = function (editor, columns, rows) {
6415
  var defaultStyles = getDefaultStyles(editor);
6419
  percentages: isPercentage(defaultStyles.width) && !isPixelsForced(editor)
6420
  };
6421
  var table = render$1(rows, columns, 0, 0, options);
6422
+ $_72hn9pm2jjgwedbq.set(table, 'data-mce-id', '__mce');
6423
+ var html = $_gc54c4p1jjgwedys.getOuter(table);
6424
  editor.insertContent(html);
6425
+ return $_2e7p77m7jjgwedcg.descendant(getBody$1(editor), 'table[data-mce-id="__mce"]').map(function (table) {
6426
  if (isPixelsForced(editor)) {
6427
+ $_59neaymbjjgwedd8.set(table, 'width', $_59neaymbjjgwedd8.get(table, 'width'));
6428
  }
6429
+ $_72hn9pm2jjgwedbq.remove(table, 'data-mce-id');
6430
  fireEvents(editor, table);
6431
  selectFirstCellInTable(editor, table);
6432
  return table.dom();
6433
  }).getOr(null);
6434
  };
6435
+ var $_2ync79oyjjgwedxx = { insert: insert$1 };
6436
 
6437
  function styleTDTH(dom, elm, name, value) {
6438
  if (elm.tagName === 'TD' || elm.tagName === 'TH') {
6451
  width: dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width'),
6452
  height: dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height'),
6453
  cellspacing: dom.getStyle(tableElm, 'border-spacing') || dom.getAttrib(tableElm, 'cellspacing'),
6454
+ cellpadding: dom.getAttrib(tableElm, 'data-mce-cell-padding') || dom.getAttrib(tableElm, 'cellpadding') || $_cmvolcotjjgwedx1.getTDTHOverallStyle(editor.dom, tableElm, 'padding'),
6455
+ border: dom.getAttrib(tableElm, 'data-mce-border') || dom.getAttrib(tableElm, 'border') || $_cmvolcotjjgwedx1.getTDTHOverallStyle(editor.dom, tableElm, 'border'),
6456
  borderColor: dom.getAttrib(tableElm, 'data-mce-border-color'),
6457
  caption: !!dom.select('caption', tableElm)[0],
6458
  class: dom.getAttrib(tableElm, 'class')
6459
  };
6460
+ global$1.each('left center right'.split(' '), function (name) {
6461
  if (editor.formatter.matchNode(tableElm, 'align' + name)) {
6462
  data.align = name;
6463
  }
6464
  });
6465
  if (hasAdvancedTableTab(editor)) {
6466
+ global$1.extend(data, $_fex2z1oujjgwedx4.extractAdvancedStyles(dom, tableElm));
6467
  }
6468
  return data;
6469
  };
6472
  var attrs = {};
6473
  var styles = {};
6474
  attrs.class = data.class;
6475
+ styles.height = addSizeSuffix(data.height);
6476
  if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {
6477
+ attrs.width = removePxSuffix(data.width);
6478
  } else {
6479
+ styles.width = addSizeSuffix(data.width);
6480
  }
6481
  if (shouldStyleWithCss(editor)) {
6482
+ styles['border-width'] = addSizeSuffix(data.border);
6483
+ styles['border-spacing'] = addSizeSuffix(data.cellspacing);
6484
+ global$1.extend(attrs, {
6485
  'data-mce-border-color': data.borderColor,
6486
  'data-mce-cell-padding': data.cellpadding,
6487
  'data-mce-border': data.border
6488
  });
6489
  } else {
6490
+ global$1.extend(attrs, {
6491
  border: data.border,
6492
  cellpadding: data.cellpadding,
6493
  cellspacing: data.cellspacing
6497
  if (tableElm.children) {
6498
  for (var i = 0; i < tableElm.children.length; i++) {
6499
  styleTDTH(dom, tableElm.children[i], {
6500
+ 'border-width': addSizeSuffix(data.border),
6501
  'border-color': data.borderColor,
6502
+ 'padding': addSizeSuffix(data.cellpadding)
6503
  });
6504
  }
6505
  }
6506
  }
6507
  if (data.style) {
6508
+ global$1.extend(styles, dom.parseStyle(data.style));
6509
  } else {
6510
+ styles = global$1.extend({}, dom.parseStyle(dom.getAttrib(tableElm, 'style')), styles);
6511
  }
6512
  attrs.style = dom.serializeStyle(styles);
6513
  dom.setAttribs(tableElm, attrs);
6516
  var dom = editor.dom;
6517
  var captionElm;
6518
  var data;
6519
+ if (hasAdvancedTableTab(editor)) {
6520
+ $_fex2z1oujjgwedx4.syncAdvancedStyleFields(editor, evt);
6521
+ }
6522
  data = evt.control.rootControl.toJSON();
6523
  if (data.class === false) {
6524
  delete data.class;
6525
  }
6526
  editor.undoManager.transact(function () {
6527
  if (!tableElm) {
6528
+ tableElm = $_2ync79oyjjgwedxx.insert(editor, data.cols || 1, data.rows || 1);
6529
  }
6530
  applyDataToElement(editor, tableElm, data);
6531
  captionElm = dom.select('caption', tableElm)[0];
6534
  }
6535
  if (!captionElm && data.caption) {
6536
  captionElm = dom.create('caption');
6537
+ captionElm.innerHTML = !global$2.ie ? '<br data-mce-bogus="1"/>' : '\xA0';
6538
  tableElm.insertBefore(captionElm, tableElm.firstChild);
6539
  }
6540
+ $_cmvolcotjjgwedx1.unApplyAlign(editor, tableElm);
6541
  if (data.align) {
6542
+ $_cmvolcotjjgwedx1.applyAlign(editor, tableElm, data.align);
6543
  }
6544
  editor.focus();
6545
  editor.addVisual();
6571
  name: 'class',
6572
  type: 'listbox',
6573
  label: 'Class',
6574
+ values: $_fex2z1oujjgwedx4.buildListItems(getTableClassList(editor), function (item) {
6575
  if (item.value) {
6576
  item.textStyle = function () {
6577
  return editor.formatter.getCssText({
6606
  {
6607
  label: 'Width',
6608
  name: 'width',
6609
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
6610
  },
6611
  {
6612
  label: 'Height',
6613
  name: 'height',
6614
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
6615
  },
6616
  {
6617
  label: 'Cell spacing',
6636
  {
6637
  label: 'Width',
6638
  name: 'width',
6639
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
6640
  },
6641
  {
6642
  label: 'Height',
6643
  name: 'height',
6644
+ onchange: curry($_fex2z1oujjgwedx4.updateStyleField, editor)
6645
  }
6646
  ]
6647
  },
6683
  type: 'form',
6684
  items: generalTableForm
6685
  },
6686
+ $_fex2z1oujjgwedx4.createStyleForm(editor)
6687
  ],
6688
+ onsubmit: curry(onSubmitTableForm, editor, tableElm)
6689
  });
6690
  } else {
6691
  editor.windowManager.open({
6692
  title: 'Table properties',
6693
  data: data,
6694
  body: generalTableForm,
6695
+ onsubmit: curry(onSubmitTableForm, editor, tableElm)
6696
  });
6697
  }
6698
  };
6699
+ var $_c0uiorowjjgwedxk = { open: open$2 };
6700
 
6701
+ var each$3 = global$1.each;
6702
  var registerCommands = function (editor, actions, cellSelection, selections, clipboardRows) {
6703
+ var isRoot = getIsRoot(editor);
6704
  var eraseTable = function () {
6705
+ var cell = Element$$1.fromDom(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
6706
+ var table = $_bmlvw1ldjjgwed84.table(cell, isRoot);
6707
+ table.filter(not(isRoot)).each(function (table) {
6708
+ var cursor = Element$$1.fromText('');
6709
+ $_1yoqsmmdjjgweddo.after(table, cursor);
6710
+ $_1y8qodmejjgweddq.remove(table);
6711
  var rng = editor.dom.createRng();
6712
  rng.setStart(cursor.dom(), 0);
6713
  rng.setEnd(cursor.dom(), 0);
6715
  });
6716
  };
6717
  var getSelectionStartCell = function () {
6718
+ return Element$$1.fromDom(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
6719
  };
6720
  var getTableFromCell = function (cell) {
6721
+ return $_bmlvw1ldjjgwed84.table(cell, isRoot);
6722
+ };
6723
+ var getSize = function (table) {
6724
+ return {
6725
+ width: getPixelWidth$1(table.dom()),
6726
+ height: getPixelWidth$1(table.dom())
6727
+ };
6728
+ };
6729
+ var resizeChange = function (editor, oldSize, table) {
6730
+ var newSize = getSize(table);
6731
+ if (oldSize.width !== newSize.width || oldSize.height !== newSize.height) {
6732
+ fireObjectResizeStart(editor, table.dom(), oldSize.width, oldSize.height);
6733
+ fireObjectResized(editor, table.dom(), newSize.width, newSize.height);
6734
+ }
6735
  };
6736
  var actOnSelection = function (execute) {
6737
  var cell = getSelectionStartCell();
6738
  var table = getTableFromCell(cell);
6739
  table.each(function (table) {
6740
+ var targets = $_a5s279mnjjgwedff.forMenu(selections, table, cell);
6741
+ var beforeSize = getSize(table);
6742
  execute(table, targets).each(function (rng) {
6743
+ resizeChange(editor, beforeSize, table);
6744
  editor.selection.setRng(rng);
6745
  editor.focus();
6746
  cellSelection.clear(table);
6747
+ removeDataStyle(table);
6748
  });
6749
  });
6750
  };
6752
  var cell = getSelectionStartCell();
6753
  var table = getTableFromCell(cell);
6754
  return table.bind(function (table) {
6755
+ var doc = Element$$1.fromDom(editor.getDoc());
6756
+ var targets = $_a5s279mnjjgwedff.forMenu(selections, table, cell);
6757
+ var generators = $_cne69smgjjgweddy.cellOperations(noop, doc, Option.none());
6758
+ return $_1cz66ioqjjgwedwq.copyRows(table, targets, generators);
6759
  });
6760
  };
6761
  var pasteOnSelection = function (execute) {
6762
  clipboardRows.get().each(function (rows) {
6763
+ var clonedRows = map(rows, function (row) {
6764
+ return $_ginehlmhjjgwedet.deep(row);
6765
  });
6766
  var cell = getSelectionStartCell();
6767
  var table = getTableFromCell(cell);
6768
  table.bind(function (table) {
6769
+ var doc = Element$$1.fromDom(editor.getDoc());
6770
+ var generators = $_cne69smgjjgweddy.paste(doc);
6771
+ var targets = $_a5s279mnjjgwedff.pasteRows(selections, table, cell, clonedRows, generators);
6772
  execute(table, targets).each(function (rng) {
6773
  editor.selection.setRng(rng);
6774
  editor.focus();
6820
  editor.addCommand(name, func);
6821
  });
6822
  each$3({
6823
+ mceInsertTable: curry($_c0uiorowjjgwedxk.open, editor),
6824
+ mceTableProps: curry($_c0uiorowjjgwedxk.open, editor, true),
6825
+ mceTableRowProps: curry($_39xpksovjjgwedxd.open, editor),
6826
+ mceTableCellProps: curry($_i574vosjjgwedwu.open, editor)
6827
  }, function (func, name) {
6828
  editor.addCommand(name, function (ui, val) {
6829
  func(val);
6830
  });
6831
  });
6832
  };
6833
+ var $_cnyxavopjjgwedw9 = { registerCommands: registerCommands };
6834
 
6835
  var only$1 = function (element) {
6836
+ var parent = Option.from(element.dom().documentElement).map(Element$$1.fromDom).getOr(element);
6837
  return {
6838
+ parent: constant(parent),
6839
+ view: constant(element),
6840
+ origin: constant(Position(0, 0))
6841
  };
6842
  };
6843
  var detached = function (editable, chrome) {
6844
+ var origin = curry($_emicwtnfjjgwedml.absolute, chrome);
6845
  return {
6846
+ parent: constant(chrome),
6847
+ view: constant(editable),
6848
  origin: origin
6849
  };
6850
  };
6851
  var body$1 = function (editable, chrome) {
6852
  return {
6853
+ parent: constant(chrome),
6854
+ view: constant(editable),
6855
+ origin: constant(Position(0, 0))
6856
  };
6857
  };
6858
+ var $_6fstdvp3jjgwedz7 = {
6859
  only: only$1,
6860
  detached: detached,
6861
  body: body$1
6862
  };
6863
 
6864
  function Event (fields) {
6865
+ var struct = Immutable.apply(null, fields);
6866
  var handlers = [];
6867
+ var bind$$1 = function (handler) {
6868
  if (handler === undefined) {
6869
  throw 'Event bind error: undefined handler';
6870
  }
6871
  handlers.push(handler);
6872
  };
6873
  var unbind = function (handler) {
6874
+ handlers = filter(handlers, function (h) {
6875
  return h !== handler;
6876
  });
6877
  };
6878
  var trigger = function () {
6879
  var event = struct.apply(null, arguments);
6880
+ each(handlers, function (handler) {
6881
  handler(event);
6882
  });
6883
  };
6884
  return {
6885
+ bind: bind$$1,
6886
  unbind: unbind,
6887
  trigger: trigger
6888
  };
6889
  }
6890
 
6891
  var create = function (typeDefs) {
6892
+ var registry = map$1(typeDefs, function (event) {
6893
  return {
6894
  bind: event.bind,
6895
  unbind: event.unbind
6896
  };
6897
  });
6898
+ var trigger = map$1(typeDefs, function (event) {
6899
  return event.trigger;
6900
  });
6901
  return {
6903
  trigger: trigger
6904
  };
6905
  };
6906
+ var $_a0n03hp6jjgwee01 = { create: create };
6907
 
6908
+ var mode = exactly([
6909
  'compare',
6910
  'extract',
6911
  'mutate',
6912
  'sink'
6913
  ]);
6914
+ var sink = exactly([
6915
  'element',
6916
  'start',
6917
  'stop',
6918
  'destroy'
6919
  ]);
6920
+ var api$3 = exactly([
6921
  'forceDrop',
6922
  'drop',
6923
  'move',
6924
  'delayDrop'
6925
  ]);
6926
+ var $_fzx0ozpajjgwee1b = {
6927
  mode: mode,
6928
  sink: sink,
6929
  api: api$3
6930
  };
6931
 
6932
+ var styles$1 = css('ephox-dragster');
6933
+ var $_gdibacpcjjgwee1u = { resolve: styles$1.resolve };
6934
 
6935
  function Blocker (options) {
6936
+ var settings = merge$1({ 'layerClass': $_gdibacpcjjgwee1u.resolve('blocker') }, options);
6937
+ var div = Element$$1.fromTag('div');
6938
+ $_72hn9pm2jjgwedbq.set(div, 'role', 'presentation');
6939
+ $_59neaymbjjgwedd8.setAll(div, {
6940
  position: 'fixed',
6941
  left: '0px',
6942
  top: '0px',
6943
  width: '100%',
6944
  height: '100%'
6945
  });
6946
+ $_btizb5o3jjgwedsg.add(div, $_gdibacpcjjgwee1u.resolve('blocker'));
6947
+ $_btizb5o3jjgwedsg.add(div, settings.layerClass);
6948
  var element = function () {
6949
  return div;
6950
  };
6951
  var destroy = function () {
6952
+ $_1y8qodmejjgweddq.remove(div);
6953
  };
6954
  return {
6955
  element: element,
6959
 
6960
  var mkEvent = function (target, x, y, stop, prevent, kill, raw) {
6961
  return {
6962
+ 'target': constant(target),
6963
+ 'x': constant(x),
6964
+ 'y': constant(y),
6965
  'stop': stop,
6966
  'prevent': prevent,
6967
  'kill': kill,
6968
+ 'raw': constant(raw)
6969
  };
6970
  };
6971
  var handle = function (filter, handler) {
6972
  return function (rawEvent) {
6973
  if (!filter(rawEvent))
6974
  return;
6975
+ var target = Element$$1.fromDom(rawEvent.target);
6976
  var stop = function () {
6977
  rawEvent.stopPropagation();
6978
  };
6979
  var prevent = function () {
6980
  rawEvent.preventDefault();
6981
  };
6982
+ var kill = compose(prevent, stop);
6983
  var evt = mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);
6984
  handler(evt);
6985
  };
6987
  var binder = function (element, event, filter, handler, useCapture) {
6988
  var wrapped = handle(filter, handler);
6989
  element.dom().addEventListener(event, wrapped, useCapture);
6990
+ return { unbind: curry(unbind, element, event, wrapped, useCapture) };
6991
  };
6992
  var bind$1 = function (element, event, filter, handler) {
6993
  return binder(element, event, filter, handler, false);
6998
  var unbind = function (element, event, handler, useCapture) {
6999
  element.dom().removeEventListener(event, handler, useCapture);
7000
  };
7001
+ var $_b75tmfpejjgwee20 = {
7002
  bind: bind$1,
7003
  capture: capture
7004
  };
7005
 
7006
+ var filter$1 = constant(true);
7007
  var bind$2 = function (element, event, handler) {
7008
+ return $_b75tmfpejjgwee20.bind(element, event, filter$1, handler);
7009
  };
7010
  var capture$1 = function (element, event, handler) {
7011
+ return $_b75tmfpejjgwee20.capture(element, event, filter$1, handler);
7012
  };
7013
+ var $_b2tdiypdjjgwee1x = {
7014
  bind: bind$2,
7015
  capture: capture$1
7016
  };
7017
 
7018
  var compare = function (old, nu) {
7019
+ return Position(nu.left() - old.left(), nu.top() - old.top());
7020
  };
7021
  var extract$1 = function (event) {
7022
+ return Option.some(Position(event.x(), event.y()));
7023
  };
7024
  var mutate$1 = function (mutation, info) {
7025
  mutation.mutate(info.left(), info.top());
7026
  };
7027
  var sink$1 = function (dragApi, settings) {
7028
  var blocker = Blocker(settings);
7029
+ var mdown = $_b2tdiypdjjgwee1x.bind(blocker.element(), 'mousedown', dragApi.forceDrop);
7030
+ var mup = $_b2tdiypdjjgwee1x.bind(blocker.element(), 'mouseup', dragApi.drop);
7031
+ var mmove = $_b2tdiypdjjgwee1x.bind(blocker.element(), 'mousemove', dragApi.move);
7032
+ var mout = $_b2tdiypdjjgwee1x.bind(blocker.element(), 'mouseout', dragApi.delayDrop);
7033
  var destroy = function () {
7034
  blocker.destroy();
7035
  mup.unbind();
7038
  mdown.unbind();
7039
  };
7040
  var start = function (parent) {
7041
+ $_1yoqsmmdjjgweddo.append(parent, blocker.element());
7042
  };
7043
  var stop = function () {
7044
+ $_1y8qodmejjgweddq.remove(blocker.element());
7045
  };
7046
+ return $_fzx0ozpajjgwee1b.sink({
7047
  element: blocker.element,
7048
  start: start,
7049
  stop: stop,
7050
  destroy: destroy
7051
  });
7052
  };
7053
+ var MouseDrag = $_fzx0ozpajjgwee1b.mode({
7054
  compare: compare,
7055
  extract: extract$1,
7056
  sink: sink$1,
7078
  });
7079
  });
7080
  };
7081
+ var events = $_a0n03hp6jjgwee01.create({ move: Event(['info']) });
7082
  return {
7083
  onEvent: onEvent,
7084
  reset: reset,
7091
  };
7092
  return {
7093
  onEvent: onEvent,
7094
+ reset: noop
7095
  };
7096
  }
7097
 
7122
  };
7123
  }
7124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7125
  var last$3 = function (fn, rate) {
7126
  var timer = null;
7127
  var cancel = function () {
7131
  }
7132
  };
7133
  var throttle = function () {
7134
+ var args = [];
7135
+ for (var _i = 0; _i < arguments.length; _i++) {
7136
+ args[_i] = arguments[_i];
7137
+ }
7138
  if (timer !== null)
7139
  clearTimeout(timer);
7140
  timer = setTimeout(function () {
7141
  fn.apply(null, args);
7142
  timer = null;
 
7143
  }, rate);
7144
  };
7145
  return {
7147
  throttle: throttle
7148
  };
7149
  };
 
 
 
 
 
7150
 
7151
  var setup = function (mutation, mode, settings) {
7152
  var active = false;
7153
+ var events = $_a0n03hp6jjgwee01.create({
7154
  start: Event([]),
7155
  stop: Event([])
7156
  });
7162
  events.trigger.stop();
7163
  }
7164
  };
7165
+ var throttledDrop = last$3(drop, 200);
7166
  var go = function (parent) {
7167
  sink.start(parent);
7168
  movement.on();
7189
  }
7190
  };
7191
  };
7192
+ var sink = mode.sink($_fzx0ozpajjgwee1b.api({
7193
  forceDrop: drop,
7194
  drop: runIfActive(drop),
7195
  move: runIfActive(mousemove),
7207
  events: events.registry
7208
  };
7209
  };
7210
+ var $_e6j9k7pfjjgwee25 = { setup: setup };
7211
 
7212
  var transform$1 = function (mutation, options) {
7213
  var settings = options !== undefined ? options : {};
7214
  var mode = settings.mode !== undefined ? settings.mode : MouseDrag;
7215
+ return $_e6j9k7pfjjgwee25.setup(mutation, mode, options);
7216
  };
7217
+ var $_2jnhotp8jjgwee0z = { transform: transform$1 };
7218
 
7219
  function Mutation () {
7220
+ var events = $_a0n03hp6jjgwee01.create({
7221
  'drag': Event([
7222
  'xDelta',
7223
  'yDelta'
7233
  }
7234
 
7235
  function BarMutation () {
7236
+ var events = $_a0n03hp6jjgwee01.create({
7237
  drag: Event([
7238
  'xDelta',
7239
  'yDelta',
7262
  }
7263
 
7264
  var any = function (selector) {
7265
+ return $_2e7p77m7jjgwedcg.first(selector).isSome();
7266
  };
7267
  var ancestor$2 = function (scope, selector, isRoot) {
7268
+ return $_2e7p77m7jjgwedcg.ancestor(scope, selector, isRoot).isSome();
7269
  };
7270
  var sibling$2 = function (scope, selector) {
7271
+ return $_2e7p77m7jjgwedcg.sibling(scope, selector).isSome();
7272
  };
7273
  var child$3 = function (scope, selector) {
7274
+ return $_2e7p77m7jjgwedcg.child(scope, selector).isSome();
7275
  };
7276
  var descendant$2 = function (scope, selector) {
7277
+ return $_2e7p77m7jjgwedcg.descendant(scope, selector).isSome();
7278
  };
7279
  var closest$2 = function (scope, selector, isRoot) {
7280
+ return $_2e7p77m7jjgwedcg.closest(scope, selector, isRoot).isSome();
7281
  };
7282
+ var $_61rv34pmjjgwee34 = {
7283
  any: any,
7284
  ancestor: ancestor$2,
7285
  sibling: sibling$2,
7288
  closest: closest$2
7289
  };
7290
 
7291
+ var resizeBarDragging = $_a7mbdxo1jjgwedsc.resolve('resizer-bar-dragging');
7292
  function BarManager (wire, direction, hdirection) {
7293
  var mutation = BarMutation();
7294
+ var resizing = $_2jnhotp8jjgwee0z.transform(mutation, {});
7295
  var hoverTable = Option.none();
7296
  var getResizer = function (element, type) {
7297
+ return Option.from($_72hn9pm2jjgwedbq.get(element, type));
7298
  };
7299
  mutation.events.drag.bind(function (event) {
7300
  getResizer(event.target(), 'data-row').each(function (_dataRow) {
7301
+ var currentRow = $_6gfmi1ohjjgweduu.getInt(event.target(), 'top');
7302
+ $_59neaymbjjgwedd8.set(event.target(), 'top', currentRow + event.yDelta() + 'px');
7303
  });
7304
  getResizer(event.target(), 'data-column').each(function (_dataCol) {
7305
+ var currentCol = $_6gfmi1ohjjgweduu.getInt(event.target(), 'left');
7306
+ $_59neaymbjjgwedd8.set(event.target(), 'left', currentCol + event.xDelta() + 'px');
7307
  });
7308
  });
7309
  var getDelta = function (target, direction) {
7310
+ var newX = $_6gfmi1ohjjgweduu.getInt(target, direction);
7311
+ var oldX = parseInt($_72hn9pm2jjgwedbq.get(target, 'data-initial-' + direction), 10);
7312
  return newX - oldX;
7313
  };
7314
  resizing.events.stop.bind(function () {
7316
  hoverTable.each(function (table) {
7317
  getResizer(target, 'data-row').each(function (row) {
7318
  var delta = getDelta(target, 'top');
7319
+ $_72hn9pm2jjgwedbq.remove(target, 'data-initial-top');
7320
  events.trigger.adjustHeight(table, delta, parseInt(row, 10));
7321
  });
7322
  getResizer(target, 'data-column').each(function (column) {
7323
  var delta = getDelta(target, 'left');
7324
+ $_72hn9pm2jjgwedbq.remove(target, 'data-initial-left');
7325
  events.trigger.adjustWidth(table, delta, parseInt(column, 10));
7326
  });
7327
+ $_anyrprnxjjgwedqz.refresh(wire, table, hdirection, direction);
7328
  });
7329
  });
7330
  });
7331
  var handler = function (target, direction) {
7332
  events.trigger.startAdjust();
7333
  mutation.assign(target);
7334
+ $_72hn9pm2jjgwedbq.set(target, 'data-initial-' + direction, parseInt($_59neaymbjjgwedd8.get(target, direction), 10));
7335
+ $_btizb5o3jjgwedsg.add(target, resizeBarDragging);
7336
+ $_59neaymbjjgwedd8.set(target, 'opacity', '0.2');
7337
  resizing.go(wire.parent());
7338
  };
7339
+ var mousedown = $_b2tdiypdjjgwee1x.bind(wire.parent(), 'mousedown', function (event) {
7340
+ if ($_anyrprnxjjgwedqz.isRowBar(event.target()))
7341
  handler(event.target(), 'top');
7342
+ if ($_anyrprnxjjgwedqz.isColBar(event.target()))
7343
  handler(event.target(), 'left');
7344
  });
7345
  var isRoot = function (e) {
7346
+ return $_e1yh5slljjgwedae.eq(e, wire.view());
7347
  };
7348
+ var mouseover = $_b2tdiypdjjgwee1x.bind(wire.view(), 'mouseover', function (event) {
7349
+ if ($_g6duvbm3jjgwedby.name(event.target()) === 'table' || $_61rv34pmjjgwee34.closest(event.target(), 'table', isRoot)) {
7350
+ hoverTable = $_g6duvbm3jjgwedby.name(event.target()) === 'table' ? Option.some(event.target()) : $_2e7p77m7jjgwedcg.ancestor(event.target(), 'table', isRoot);
7351
  hoverTable.each(function (ht) {
7352
+ $_anyrprnxjjgwedqz.refresh(wire, ht, hdirection, direction);
7353
  });
7354
+ } else if ($_95kxntm6jjgwedc6.inBody(event.target())) {
7355
+ $_anyrprnxjjgwedqz.destroy(wire);
7356
  }
7357
  });
7358
  var destroy = function () {
7359
  mousedown.unbind();
7360
  mouseover.unbind();
7361
  resizing.destroy();
7362
+ $_anyrprnxjjgwedqz.destroy(wire);
7363
  };
7364
  var refresh = function (tbl) {
7365
+ $_anyrprnxjjgwedqz.refresh(wire, tbl, hdirection, direction);
7366
  };
7367
+ var events = $_a0n03hp6jjgwee01.create({
7368
  adjustHeight: Event([
7369
  'table',
7370
  'delta',
7382
  refresh: refresh,
7383
  on: resizing.on,
7384
  off: resizing.off,
7385
+ hideBars: curry($_anyrprnxjjgwedqz.hide, wire),
7386
+ showBars: curry($_anyrprnxjjgwedqz.show, wire),
7387
  events: events.registry
7388
  };
7389
  }
7390
 
7391
  function TableResize (wire, vdirection) {
7392
+ var hdirection = $_fsi6i6nejjgwedm2.height;
7393
  var manager = BarManager(wire, vdirection, hdirection);
7394
+ var events = $_a0n03hp6jjgwee01.create({
7395
  beforeResize: Event(['table']),
7396
  afterResize: Event(['table']),
7397
  startDrag: Event([])
7399
  manager.events.adjustHeight.bind(function (event) {
7400
  events.trigger.beforeResize(event.table());
7401
  var delta = hdirection.delta(event.delta(), event.table());
7402
+ $_5zl29zodjjgwedu6.adjustHeight(event.table(), delta, event.row(), hdirection);
7403
  events.trigger.afterResize(event.table());
7404
  });
7405
  manager.events.startAdjust.bind(function (event) {
7408
  manager.events.adjustWidth.bind(function (event) {
7409
  events.trigger.beforeResize(event.table());
7410
  var delta = vdirection.delta(event.delta(), event.table());
7411
+ $_5zl29zodjjgwedu6.adjustWidth(event.table(), delta, event.column(), vdirection);
7412
  events.trigger.afterResize(event.table());
7413
  });
7414
  return {
7422
  }
7423
 
7424
  var createContainer = function () {
7425
+ var container = Element$$1.fromTag('div');
7426
+ $_59neaymbjjgwedd8.setAll(container, {
7427
  position: 'static',
7428
  height: '0',
7429
  width: '0',
7431
  margin: '0',
7432
  border: '0'
7433
  });
7434
+ $_1yoqsmmdjjgweddo.append($_95kxntm6jjgwedc6.body(), container);
7435
  return container;
7436
  };
7437
  var get$8 = function (editor, container) {
7438
+ return editor.inline ? $_6fstdvp3jjgwedz7.body(getBody$1(editor), createContainer()) : $_6fstdvp3jjgwedz7.only(Element$$1.fromDom(editor.getDoc()));
7439
  };
7440
  var remove$6 = function (editor, wire) {
7441
  if (editor.inline) {
7442
+ $_1y8qodmejjgweddq.remove(wire.parent());
7443
  }
7444
  };
7445
+ var $_bcpe2qpnjjgwee36 = {
7446
  get: get$8,
7447
  remove: remove$6
7448
  };
7463
  return resize;
7464
  };
7465
  var lazyWire = function () {
7466
+ return wire.getOr($_6fstdvp3jjgwedz7.only(Element$$1.fromDom(editor.getBody())));
7467
  };
7468
  var destroy = function () {
7469
  resize.each(function (sz) {
7470
  sz.destroy();
7471
  });
7472
  wire.each(function (w) {
7473
+ $_bcpe2qpnjjgwee36.remove(editor, w);
7474
  });
7475
  };
7476
  editor.on('init', function () {
7477
+ var direction = TableDirection($_dowdxdoljjgwedvp.directionAt);
7478
+ var rawWire = $_bcpe2qpnjjgwee36.get(editor);
7479
  wire = Option.some(rawWire);
7480
  if (hasObjectResizing(editor) && hasTableResizeBars(editor)) {
7481
  var sz = TableResize(rawWire, direction);
7483
  sz.events.startDrag.bind(function (event) {
7484
  selectionRng = Option.some(editor.selection.getRng());
7485
  });
7486
+ sz.events.beforeResize.bind(function (event) {
7487
+ var rawTable = event.table().dom();
7488
+ fireObjectResizeStart(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));
7489
+ });
7490
  sz.events.afterResize.bind(function (event) {
7491
  var table = event.table();
7492
+ var rawTable = table.dom();
7493
+ removeDataStyle(table);
 
 
7494
  selectionRng.each(function (rng) {
7495
  editor.selection.setRng(rng);
7496
  editor.focus();
7497
  });
7498
+ fireObjectResized(editor, rawTable, getPixelWidth$1(rawTable), getPixelHeight(rawTable));
7499
  editor.undoManager.add();
7500
  });
7501
  resize = Option.some(sz);
7518
  editor.dom.setStyle(table, 'width', targetPercentW + '%');
7519
  } else {
7520
  var newCellSizes_1 = [];
7521
+ global$1.each(table.rows, function (row) {
7522
+ global$1.each(row.cells, function (cell) {
7523
  var width = editor.dom.getStyle(cell, 'width', true);
7524
  newCellSizes_1.push({
7525
  cell: cell,
7527
  });
7528
  });
7529
  });
7530
+ global$1.each(newCellSizes_1, function (newCellSize) {
7531
  editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width);
7532
  editor.dom.setAttrib(newCellSize.cell, 'width', null);
7533
  });
7564
  var folder$1 = function (fold) {
7565
  return { fold: fold };
7566
  };
7567
+ var $_fd56gwpqjjgwee4c = {
7568
  none: none$2,
7569
  first: first$5,
7570
  middle: middle$1,
7572
  };
7573
 
7574
  var detect$4 = function (current, isRoot) {
7575
+ return $_bmlvw1ldjjgwed84.table(current, isRoot).bind(function (table) {
7576
+ var all = $_bmlvw1ldjjgwed84.cells(table);
7577
+ var index = findIndex(all, function (x) {
7578
+ return $_e1yh5slljjgwedae.eq(current, x);
7579
  });
7580
  return index.map(function (ind) {
7581
  return {
7582
+ index: constant(ind),
7583
+ all: constant(all)
7584
  };
7585
  });
7586
  });
7588
  var next = function (current, isRoot) {
7589
  var detection = detect$4(current, isRoot);
7590
  return detection.fold(function () {
7591
+ return $_fd56gwpqjjgwee4c.none(current);
7592
  }, function (info) {
7593
+ return info.index() + 1 < info.all().length ? $_fd56gwpqjjgwee4c.middle(current, info.all()[info.index() + 1]) : $_fd56gwpqjjgwee4c.last(current);
7594
  });
7595
  };
7596
  var prev = function (current, isRoot) {
7597
  var detection = detect$4(current, isRoot);
7598
  return detection.fold(function () {
7599
+ return $_fd56gwpqjjgwee4c.none();
7600
  }, function (info) {
7601
+ return info.index() - 1 >= 0 ? $_fd56gwpqjjgwee4c.middle(current, info.all()[info.index() - 1]) : $_fd56gwpqjjgwee4c.first(current);
7602
  });
7603
  };
7604
+ var $_37sftsppjjgwee45 = {
7605
  next: next,
7606
  prev: prev
7607
  };
7608
 
7609
+ var adt = Adt.generate([
7610
  { 'before': ['element'] },
7611
  {
7612
  'on': [
7620
  return subject.fold(onBefore, onOn, onAfter);
7621
  };
7622
  var getStart = function (situ) {
7623
+ return situ.fold(identity, identity, identity);
7624
  };
7625
+ var $_6assppsjjgwee4k = {
7626
  before: adt.before,
7627
  on: adt.on,
7628
  after: adt.after,
7630
  getStart: getStart
7631
  };
7632
 
7633
+ var type$2 = Adt.generate([
7634
  { domRange: ['rng'] },
7635
  {
7636
  relative: [
7647
  ]
7648
  }
7649
  ]);
7650
+ var range$2 = Immutable('start', 'soffset', 'finish', 'foffset');
7651
  var exactFromRange = function (simRange) {
7652
  return type$2.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());
7653
  };
7654
  var getStart$1 = function (selection) {
7655
  return selection.match({
7656
  domRange: function (rng) {
7657
+ return Element$$1.fromDom(rng.startContainer);
7658
  },
7659
  relative: function (startSitu, finishSitu) {
7660
+ return $_6assppsjjgwee4k.getStart(startSitu);
7661
  },
7662
  exact: function (start, soffset, finish, foffset) {
7663
  return start;
7666
  };
7667
  var getWin = function (selection) {
7668
  var start = getStart$1(selection);
7669
+ return $_97vsilljjjgwed9v.defaultView(start);
7670
  };
7671
+ var $_afru5jprjjgwee4e = {
7672
  domRange: type$2.domRange,
7673
  relative: type$2.relative,
7674
  exact: type$2.exact,
7678
  };
7679
 
7680
  var makeRange = function (start, soffset, finish, foffset) {
7681
+ var doc = $_97vsilljjjgwed9v.owner(start);
7682
  var rng = doc.dom().createRange();
7683
  rng.setStart(start.dom(), soffset);
7684
  rng.setEnd(finish.dom(), foffset);
7686
  };
7687
  var commonAncestorContainer = function (start, soffset, finish, foffset) {
7688
  var r = makeRange(start, soffset, finish, foffset);
7689
+ return Element$$1.fromDom(r.commonAncestorContainer);
7690
  };
7691
  var after$2 = function (start, soffset, finish, foffset) {
7692
  var r = makeRange(start, soffset, finish, foffset);
7693
+ var same = $_e1yh5slljjgwedae.eq(start, finish) && soffset === foffset;
7694
  return r.collapsed && !same;
7695
  };
7696
+ var $_10rk8wpujjgwee4x = {
7697
  after: after$2,
7698
  commonAncestorContainer: commonAncestorContainer
7699
  };
7701
  var fromElements = function (elements, scope) {
7702
  var doc = scope || document;
7703
  var fragment = doc.createDocumentFragment();
7704
+ each(elements, function (element) {
7705
  fragment.appendChild(element.dom());
7706
  });
7707
+ return Element$$1.fromDom(fragment);
7708
  };
7709
+ var $_aous4opvjjgwee4z = { fromElements: fromElements };
7710
 
7711
  var selectNodeContents = function (win, element) {
7712
  var rng = win.document.createRange();
7761
  };
7762
  var cloneFragment = function (rng) {
7763
  var fragment = rng.cloneContents();
7764
+ return Element$$1.fromDom(fragment);
7765
  };
7766
  var toRect = function (rect) {
7767
  return {
7768
+ left: constant(rect.left),
7769
+ top: constant(rect.top),
7770
+ right: constant(rect.right),
7771
+ bottom: constant(rect.bottom),
7772
+ width: constant(rect.width),
7773
+ height: constant(rect.height)
7774
  };
7775
  };
7776
  var getFirstRect = function (rng) {
7785
  var toString = function (rng) {
7786
  return rng.toString();
7787
  };
7788
+ var $_fwf7cnpwjjgwee53 = {
7789
  create: create$1,
7790
  replaceWith: replaceWith,
7791
  selectNodeContents: selectNodeContents,
7800
  toString: toString
7801
  };
7802
 
7803
+ var adt$1 = Adt.generate([
7804
  {
7805
  ltr: [
7806
  'start',
7819
  }
7820
  ]);
7821
  var fromRange = function (win, type, range) {
7822
+ return type(Element$$1.fromDom(range.startContainer), range.startOffset, Element$$1.fromDom(range.endContainer), range.endOffset);
7823
  };
7824
  var getRanges = function (win, selection) {
7825
  return selection.match({
7826
  domRange: function (rng) {
7827
  return {
7828
+ ltr: constant(rng),
7829
  rtl: Option.none
7830
  };
7831
  },
7832
  relative: function (startSitu, finishSitu) {
7833
  return {
7834
+ ltr: cached(function () {
7835
+ return $_fwf7cnpwjjgwee53.relativeToNative(win, startSitu, finishSitu);
7836
  }),
7837
+ rtl: cached(function () {
7838
+ return Option.some($_fwf7cnpwjjgwee53.relativeToNative(win, finishSitu, startSitu));
7839
  })
7840
  };
7841
  },
7842
  exact: function (start, soffset, finish, foffset) {
7843
  return {
7844
+ ltr: cached(function () {
7845
+ return $_fwf7cnpwjjgwee53.exactToNative(win, start, soffset, finish, foffset);
7846
  }),
7847
+ rtl: cached(function () {
7848
+ return Option.some($_fwf7cnpwjjgwee53.exactToNative(win, finish, foffset, start, soffset));
7849
  })
7850
  };
7851
  }
7858
  return rev.collapsed === false;
7859
  });
7860
  return reversed.map(function (rev) {
7861
+ return adt$1.rtl(Element$$1.fromDom(rev.endContainer), rev.endOffset, Element$$1.fromDom(rev.startContainer), rev.startOffset);
7862
  }).getOrThunk(function () {
7863
  return fromRange(win, adt$1.ltr, rng);
7864
  });
7887
  }
7888
  });
7889
  };
7890
+ var $_5s2zljpxjjgwee5b = {
7891
  ltr: adt$1.ltr,
7892
  rtl: adt$1.rtl,
7893
  diagnose: diagnose,
7903
  for (var i = 1; i < length; i++) {
7904
  var rect = rectForOffset(i);
7905
  var curDeltaX = Math.abs(x - rect.left);
7906
+ if (y <= rect.bottom) {
7907
+ if (y < rect.top || curDeltaX > xDelta) {
7908
+ return i - 1;
7909
+ } else {
7910
+ xDelta = curDeltaX;
7911
+ }
7912
  }
7913
  }
7914
  return 0;
7916
  var inRect = function (rect, x, y) {
7917
  return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
7918
  };
7919
+ var $_czh05dq0jjgwee61 = {
7920
  inRect: inRect,
7921
  searchForPoint: searchForPoint
7922
  };
7932
  var r = rangeForOffset(offset);
7933
  return r.getBoundingClientRect();
7934
  };
7935
+ var length = $_btltedmkjjgwedf4.get(textnode).length;
7936
+ var offset = $_czh05dq0jjgwee61.searchForPoint(rectForOffset, x, y, rect.right, length);
7937
  return rangeForOffset(offset);
7938
  };
7939
  var locate = function (doc, node, x, y) {
7940
  var r = doc.dom().createRange();
7941
  r.selectNode(node.dom());
7942
  var rects = r.getClientRects();
7943
+ var foundRect = findMap(rects, function (rect) {
7944
+ return $_czh05dq0jjgwee61.inRect(rect, x, y) ? Option.some(rect) : Option.none();
7945
  });
7946
  return foundRect.map(function (rect) {
7947
  return locateOffset(doc, node, x, y, rect);
7948
  });
7949
  };
7950
+ var $_fau798q1jjgwee62 = { locate: locate };
7951
 
7952
  var searchInChildren = function (doc, node, x, y) {
7953
  var r = doc.dom().createRange();
7954
+ var nodes = $_97vsilljjjgwed9v.children(node);
7955
+ return findMap(nodes, function (n) {
7956
  r.selectNode(n.dom());
7957
+ return $_czh05dq0jjgwee61.inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Option.none();
7958
  });
7959
  };
7960
  var locateNode = function (doc, node, x, y) {
7961
+ var locator = $_g6duvbm3jjgwedby.isText(node) ? $_fau798q1jjgwee62.locate : searchInChildren;
7962
  return locator(doc, node, x, y);
7963
  };
7964
  var locate$1 = function (doc, node, x, y) {
7969
  var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));
7970
  return locateNode(doc, node, boundedX, boundedY);
7971
  };
7972
+ var $_8hmrc5pzjjgwee5v = { locate: locate$1 };
7973
 
7974
  var COLLAPSE_TO_LEFT = true;
7975
  var COLLAPSE_TO_RIGHT = false;
7987
  cursorRange.selectNode(node.dom());
7988
  var rect = cursorRange.getBoundingClientRect();
7989
  var collapseDirection = getCollapseDirection(rect, x);
7990
+ var f = collapseDirection === COLLAPSE_TO_LEFT ? $_cww1bpmijjgwedex.first : $_cww1bpmijjgwedex.last;
7991
  return f(node).map(function (target) {
7992
  return createCollapsedNode(doc, target, collapseDirection);
7993
  });
7998
  return Option.some(createCollapsedNode(doc, node, collapseDirection));
7999
  };
8000
  var search = function (doc, node, x) {
8001
+ var f = $_97vsilljjjgwed9v.children(node).length === 0 ? locateInEmpty : locateInElement;
8002
  return f(doc, node, x);
8003
  };
8004
+ var $_d2n08oq2jjgwee68 = { search: search };
8005
 
8006
  var caretPositionFromPoint = function (doc, x, y) {
8007
  return Option.from(doc.dom().caretPositionFromPoint(x, y)).bind(function (pos) {
8022
  var rect = r.getBoundingClientRect();
8023
  var boundedX = Math.max(rect.left, Math.min(rect.right, x));
8024
  var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));
8025
+ return $_8hmrc5pzjjgwee5v.locate(doc, node, boundedX, boundedY);
8026
  };
8027
  var searchFromPoint = function (doc, x, y) {
8028
+ return Element$$1.fromPoint(doc, x, y).bind(function (elem) {
8029
  var fallback = function () {
8030
+ return $_d2n08oq2jjgwee68.search(doc, elem, x);
8031
  };
8032
+ return $_97vsilljjjgwed9v.children(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);
8033
  });
8034
  };
8035
  var availableSearch = document.caretPositionFromPoint ? caretPositionFromPoint : document.caretRangeFromPoint ? caretRangeFromPoint : searchFromPoint;
8036
  var fromPoint$1 = function (win, x, y) {
8037
+ var doc = Element$$1.fromDom(win.document);
8038
  return availableSearch(doc, x, y).map(function (rng) {
8039
+ return $_afru5jprjjgwee4e.range(Element$$1.fromDom(rng.startContainer), rng.startOffset, Element$$1.fromDom(rng.endContainer), rng.endOffset);
8040
  });
8041
  };
8042
+ var $_ox0jupyjjgwee5r = { fromPoint: fromPoint$1 };
8043
 
8044
  var withinContainer = function (win, ancestor, outerRange, selector) {
8045
+ var innerRange = $_fwf7cnpwjjgwee53.create(win);
8046
+ var self = $_5htea7lfjjgwed94.is(ancestor, selector) ? [ancestor] : [];
8047
+ var elements = self.concat($_5ko5j3m4jjgwedc0.descendants(ancestor, selector));
8048
+ return filter(elements, function (elem) {
8049
+ $_fwf7cnpwjjgwee53.selectNodeContentsUsing(innerRange, elem);
8050
+ return $_fwf7cnpwjjgwee53.isWithin(outerRange, innerRange);
8051
  });
8052
  };
8053
  var find$3 = function (win, selection, selector) {
8054
+ var outerRange = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8055
+ var ancestor = Element$$1.fromDom(outerRange.commonAncestorContainer);
8056
+ return $_g6duvbm3jjgwedby.isElement(ancestor) ? withinContainer(win, ancestor, outerRange, selector) : [];
8057
  };
8058
+ var $_dyll96q3jjgwee6c = { find: find$3 };
8059
 
8060
  var beforeSpecial = function (element, offset) {
8061
+ var name = $_g6duvbm3jjgwedby.name(element);
8062
  if ('input' === name)
8063
+ return $_6assppsjjgwee4k.after(element);
8064
+ else if (!contains([
8065
  'br',
8066
  'img'
8067
  ], name))
8068
+ return $_6assppsjjgwee4k.on(element, offset);
8069
  else
8070
+ return offset === 0 ? $_6assppsjjgwee4k.before(element) : $_6assppsjjgwee4k.after(element);
8071
  };
8072
  var preprocessRelative = function (startSitu, finishSitu) {
8073
+ var start = startSitu.fold($_6assppsjjgwee4k.before, beforeSpecial, $_6assppsjjgwee4k.after);
8074
+ var finish = finishSitu.fold($_6assppsjjgwee4k.before, beforeSpecial, $_6assppsjjgwee4k.after);
8075
+ return $_afru5jprjjgwee4e.relative(start, finish);
8076
  };
8077
  var preprocessExact = function (start, soffset, finish, foffset) {
8078
  var startSitu = beforeSpecial(start, soffset);
8079
  var finishSitu = beforeSpecial(finish, foffset);
8080
+ return $_afru5jprjjgwee4e.relative(startSitu, finishSitu);
8081
  };
8082
  var preprocess = function (selection) {
8083
  return selection.match({
8084
  domRange: function (rng) {
8085
+ var start = Element$$1.fromDom(rng.startContainer);
8086
+ var finish = Element$$1.fromDom(rng.endContainer);
8087
  return preprocessExact(start, rng.startOffset, finish, rng.endOffset);
8088
  },
8089
  relative: preprocessRelative,
8090
  exact: preprocessExact
8091
  });
8092
  };
8093
+ var $_6b8yzzq4jjgwee6g = {
8094
  beforeSpecial: beforeSpecial,
8095
  preprocess: preprocess,
8096
  preprocessRelative: preprocessRelative,
8104
  });
8105
  };
8106
  var doSetRange = function (win, start, soffset, finish, foffset) {
8107
+ var rng = $_fwf7cnpwjjgwee53.exactToNative(win, start, soffset, finish, foffset);
8108
  doSetNativeRange(win, rng);
8109
  };
8110
  var findWithin = function (win, selection, selector) {
8111
+ return $_dyll96q3jjgwee6c.find(win, selection, selector);
8112
+ };
8113
+ var setLegacyRtlRange = function (win, selection, start, soffset, finish, foffset) {
8114
+ selection.collapse(start.dom(), soffset);
8115
+ selection.extend(finish.dom(), foffset);
8116
  };
8117
  var setRangeFromRelative = function (win, relative) {
8118
+ return $_5s2zljpxjjgwee5b.diagnose(win, relative).match({
8119
  ltr: function (start, soffset, finish, foffset) {
8120
  doSetRange(win, start, soffset, finish, foffset);
8121
  },
8124
  if (selection.setBaseAndExtent) {
8125
  selection.setBaseAndExtent(start.dom(), soffset, finish.dom(), foffset);
8126
  } else if (selection.extend) {
8127
+ try {
8128
+ setLegacyRtlRange(win, selection, start, soffset, finish, foffset);
8129
+ } catch (e) {
8130
+ doSetRange(win, finish, foffset, start, soffset);
8131
+ }
8132
  } else {
8133
  doSetRange(win, finish, foffset, start, soffset);
8134
  }
8136
  });
8137
  };
8138
  var setExact = function (win, start, soffset, finish, foffset) {
8139
+ var relative = $_6b8yzzq4jjgwee6g.preprocessExact(start, soffset, finish, foffset);
8140
  setRangeFromRelative(win, relative);
8141
  };
8142
  var setRelative = function (win, startSitu, finishSitu) {
8143
+ var relative = $_6b8yzzq4jjgwee6g.preprocessRelative(startSitu, finishSitu);
8144
  setRangeFromRelative(win, relative);
8145
  };
8146
  var toNative = function (selection) {
8147
+ var win = $_afru5jprjjgwee4e.getWin(selection).dom();
8148
  var getDomRange = function (start, soffset, finish, foffset) {
8149
+ return $_fwf7cnpwjjgwee53.exactToNative(win, start, soffset, finish, foffset);
8150
  };
8151
+ var filtered = $_6b8yzzq4jjgwee6g.preprocess(selection);
8152
+ return $_5s2zljpxjjgwee5b.diagnose(win, filtered).match({
8153
  ltr: getDomRange,
8154
  rtl: getDomRange
8155
  });
8158
  if (selection.rangeCount > 0) {
8159
  var firstRng = selection.getRangeAt(0);
8160
  var lastRng = selection.getRangeAt(selection.rangeCount - 1);
8161
+ return Option.some($_afru5jprjjgwee4e.range(Element$$1.fromDom(firstRng.startContainer), firstRng.startOffset, Element$$1.fromDom(lastRng.endContainer), lastRng.endOffset));
8162
  } else {
8163
  return Option.none();
8164
  }
8165
  };
8166
  var doGetExact = function (selection) {
8167
+ var anchorNode = Element$$1.fromDom(selection.anchorNode);
8168
+ var focusNode = Element$$1.fromDom(selection.focusNode);
8169
+ return $_10rk8wpujjgwee4x.after(anchorNode, selection.anchorOffset, focusNode, selection.focusOffset) ? Option.some($_afru5jprjjgwee4e.range(Element$$1.fromDom(selection.anchorNode), selection.anchorOffset, Element$$1.fromDom(selection.focusNode), selection.focusOffset)) : readRange(selection);
8170
  };
8171
  var setToElement = function (win, element) {
8172
+ var rng = $_fwf7cnpwjjgwee53.selectNodeContents(win, element);
8173
  doSetNativeRange(win, rng);
8174
  };
8175
  var forElement = function (win, element) {
8176
+ var rng = $_fwf7cnpwjjgwee53.selectNodeContents(win, element);
8177
+ return $_afru5jprjjgwee4e.range(Element$$1.fromDom(rng.startContainer), rng.startOffset, Element$$1.fromDom(rng.endContainer), rng.endOffset);
8178
  };
8179
  var getExact = function (win) {
8180
+ return Option.from(win.getSelection()).filter(function (sel) {
8181
+ return sel.rangeCount > 0;
8182
+ }).bind(doGetExact);
8183
  };
8184
  var get$9 = function (win) {
8185
  return getExact(win).map(function (range) {
8186
+ return $_afru5jprjjgwee4e.exact(range.start(), range.soffset(), range.finish(), range.foffset());
8187
  });
8188
  };
8189
  var getFirstRect$1 = function (win, selection) {
8190
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8191
+ return $_fwf7cnpwjjgwee53.getFirstRect(rng);
8192
  };
8193
  var getBounds$2 = function (win, selection) {
8194
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8195
+ return $_fwf7cnpwjjgwee53.getBounds(rng);
8196
  };
8197
  var getAtPoint = function (win, x, y) {
8198
+ return $_ox0jupyjjgwee5r.fromPoint(win, x, y);
8199
  };
8200
  var getAsString = function (win, selection) {
8201
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8202
+ return $_fwf7cnpwjjgwee53.toString(rng);
8203
  };
8204
  var clear$1 = function (win) {
8205
  var selection = win.getSelection();
8206
  selection.removeAllRanges();
8207
  };
8208
  var clone$2 = function (win, selection) {
8209
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8210
+ return $_fwf7cnpwjjgwee53.cloneFragment(rng);
8211
  };
8212
  var replace$1 = function (win, selection, elements) {
8213
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8214
+ var fragment = $_aous4opvjjgwee4z.fromElements(elements, win.document);
8215
+ $_fwf7cnpwjjgwee53.replaceWith(rng, fragment);
8216
  };
8217
  var deleteAt = function (win, selection) {
8218
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8219
+ $_fwf7cnpwjjgwee53.deleteContents(rng);
8220
  };
8221
  var isCollapsed = function (start, soffset, finish, foffset) {
8222
+ return $_e1yh5slljjgwedae.eq(start, finish) && soffset === foffset;
8223
  };
8224
+ var $_biw8ebptjjgwee4r = {
8225
  setExact: setExact,
8226
  getExact: getExact,
8227
  get: get$9,
8241
  isCollapsed: isCollapsed
8242
  };
8243
 
8244
+ var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK');
8245
 
8246
  var forward = function (editor, isRoot, cell, lazyWire) {
8247
+ return go(editor, isRoot, $_37sftsppjjgwee45.next(cell), lazyWire);
8248
  };
8249
  var backward = function (editor, isRoot, cell, lazyWire) {
8250
+ return go(editor, isRoot, $_37sftsppjjgwee45.prev(cell), lazyWire);
8251
  };
8252
  var getCellFirstCursorPosition = function (editor, cell) {
8253
+ var selection = $_afru5jprjjgwee4e.exact(cell, 0, cell, 0);
8254
+ return $_biw8ebptjjgwee4r.toNative(selection);
8255
  };
8256
  var getNewRowCursorPosition = function (editor, table) {
8257
+ var rows = $_5ko5j3m4jjgwedc0.descendants(table, 'tr');
8258
+ return last(rows).bind(function (last$$1) {
8259
+ return $_2e7p77m7jjgwedcg.descendant(last$$1, 'td,th').map(function (first) {
8260
  return getCellFirstCursorPosition(editor, first);
8261
  });
8262
  });
8263
  };
8264
  var go = function (editor, isRoot, cell, actions, lazyWire) {
8265
  return cell.fold(Option.none, Option.none, function (current, next) {
8266
+ return $_cww1bpmijjgwedex.first(next).map(function (cell) {
8267
  return getCellFirstCursorPosition(editor, cell);
8268
  });
8269
  }, function (current) {
8270
+ return $_bmlvw1ldjjgwed84.table(current, isRoot).bind(function (table) {
8271
+ var targets = $_a5s279mnjjgwedff.noMenu(current);
8272
  editor.undoManager.transact(function () {
8273
  actions.insertRowsAfter(table, targets);
8274
  });
8282
  'dl'
8283
  ];
8284
  var handle$1 = function (event, editor, actions, lazyWire) {
8285
+ if (event.keyCode === global$3.TAB) {
8286
+ var body_1 = getBody$1(editor);
8287
  var isRoot_1 = function (element) {
8288
+ var name = $_g6duvbm3jjgwedby.name(element);
8289
+ return $_e1yh5slljjgwedae.eq(element, body_1) || contains(rootElements, name);
8290
  };
8291
  var rng = editor.selection.getRng();
8292
  if (rng.collapsed) {
8293
+ var start = Element$$1.fromDom(rng.startContainer);
8294
+ $_bmlvw1ldjjgwed84.cell(start, isRoot_1).each(function (cell) {
8295
  event.preventDefault();
8296
  var navigation = event.shiftKey ? backward : forward;
8297
  var rng = navigation(editor, isRoot_1, cell, actions, lazyWire);
8298
+ rng.each(function (range$$1) {
8299
+ editor.selection.setRng(range$$1);
8300
  });
8301
  });
8302
  }
8303
  }
8304
  };
8305
+ var $_9cogwlpojjgwee3l = { handle: handle$1 };
8306
 
8307
+ var response = Immutable('selection', 'kill');
8308
+ var $_3na9igq8jjgwee7o = { response: response };
8309
 
8310
  var isKey = function (key) {
8311
  return function (keycode) {
8317
  var isNavigation = function (keycode) {
8318
  return keycode >= 37 && keycode <= 40;
8319
  };
8320
+ var $_gu1pzq9jjgwee7r = {
8321
  ltr: {
8322
  isBackward: isKey(37),
8323
  isForward: isKey(39)
8332
  };
8333
 
8334
  var convertToRange = function (win, selection) {
8335
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, selection);
8336
  return {
8337
+ start: constant(Element$$1.fromDom(rng.startContainer)),
8338
+ soffset: constant(rng.startOffset),
8339
+ finish: constant(Element$$1.fromDom(rng.endContainer)),
8340
+ foffset: constant(rng.endOffset)
8341
  };
8342
  };
8343
  var makeSitus = function (start, soffset, finish, foffset) {
8344
  return {
8345
+ start: constant($_6assppsjjgwee4k.on(start, soffset)),
8346
+ finish: constant($_6assppsjjgwee4k.on(finish, foffset))
8347
  };
8348
  };
8349
+ var $_9ndew9qbjjgwee88 = {
8350
  convertToRange: convertToRange,
8351
  makeSitus: makeSitus
8352
  };
8353
 
8354
+ var isSafari = $_avfe9dlqjjgwedat.detect().browser.isSafari();
8355
  var get$10 = function (_doc) {
8356
  var doc = _doc !== undefined ? _doc.dom() : document;
8357
  var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;
8358
  var y = doc.body.scrollTop || doc.documentElement.scrollTop;
8359
+ return Position(x, y);
8360
  };
8361
  var to = function (x, y, _doc) {
8362
  var doc = _doc !== undefined ? _doc.dom() : document;
8369
  win.scrollBy(x, y);
8370
  };
8371
  var setToElement$1 = function (win, element) {
8372
+ var pos = $_emicwtnfjjgwedml.absolute(element);
8373
+ var doc = Element$$1.fromDom(win.document);
8374
  to(pos.left(), pos.top(), doc);
8375
  };
8376
  var preserve$1 = function (doc, f) {
8398
  };
8399
  };
8400
  var intoView = function (element, alignToTop) {
8401
+ if (isSafari && isFunction(element.dom().scrollIntoViewIfNeeded)) {
8402
  element.dom().scrollIntoViewIfNeeded(false);
8403
  } else {
8404
  element.dom().scrollIntoView(alignToTop);
8414
  }
8415
  };
8416
  var scrollBarWidth = function () {
8417
+ var scrollDiv = Element$$1.fromHtml('<div style="width: 100px; height: 100px; overflow: scroll; position: absolute; top: -9999px;"></div>');
8418
+ $_1yoqsmmdjjgweddo.after($_95kxntm6jjgwedc6.body(), scrollDiv);
8419
  var w = scrollDiv.dom().offsetWidth - scrollDiv.dom().clientWidth;
8420
+ $_1y8qodmejjgweddq.remove(scrollDiv);
8421
  return w;
8422
  };
8423
+ var $_93bakiqcjjgwee8h = {
8424
  get: get$10,
8425
  to: to,
8426
  by: by,
8434
 
8435
  function WindowBridge (win) {
8436
  var elementFromPoint = function (x, y) {
8437
+ return Element$$1.fromPoint(Element$$1.fromDom(win.document), x, y);
8438
  };
8439
  var getRect = function (element) {
8440
  return element.dom().getBoundingClientRect();
8441
  };
8442
  var getRangedRect = function (start, soffset, finish, foffset) {
8443
+ var sel = $_afru5jprjjgwee4e.exact(start, soffset, finish, foffset);
8444
+ return $_biw8ebptjjgwee4r.getFirstRect(win, sel).map(function (structRect) {
8445
+ return map$1(structRect, apply);
8446
  });
8447
  };
8448
  var getSelection = function () {
8449
+ return $_biw8ebptjjgwee4r.get(win).map(function (exactAdt) {
8450
+ return $_9ndew9qbjjgwee88.convertToRange(win, exactAdt);
8451
  });
8452
  };
8453
  var fromSitus = function (situs) {
8454
+ var relative = $_afru5jprjjgwee4e.relative(situs.start(), situs.finish());
8455
+ return $_9ndew9qbjjgwee88.convertToRange(win, relative);
8456
  };
8457
  var situsFromPoint = function (x, y) {
8458
+ return $_biw8ebptjjgwee4r.getAtPoint(win, x, y).map(function (exact) {
8459
  return {
8460
+ start: constant($_6assppsjjgwee4k.on(exact.start(), exact.soffset())),
8461
+ finish: constant($_6assppsjjgwee4k.on(exact.finish(), exact.foffset()))
8462
  };
8463
  });
8464
  };
8465
  var clearSelection = function () {
8466
+ $_biw8ebptjjgwee4r.clear(win);
8467
  };
8468
  var selectContents = function (element) {
8469
+ $_biw8ebptjjgwee4r.setToElement(win, element);
8470
  };
8471
  var setSelection = function (sel) {
8472
+ $_biw8ebptjjgwee4r.setExact(win, sel.start(), sel.soffset(), sel.finish(), sel.foffset());
8473
  };
8474
  var setRelativeSelection = function (start, finish) {
8475
+ $_biw8ebptjjgwee4r.setRelative(win, start, finish);
8476
  };
8477
  var getInnerHeight = function () {
8478
  return win.innerHeight;
8479
  };
8480
  var getScrollY = function () {
8481
+ var pos = $_93bakiqcjjgwee8h.get(Element$$1.fromDom(win.document));
8482
  return pos.top();
8483
  };
8484
  var scrollBy = function (x, y) {
8485
+ $_93bakiqcjjgwee8h.by(x, y, Element$$1.fromDom(win.document));
8486
  };
8487
  return {
8488
  elementFromPoint: elementFromPoint,
8502
  }
8503
 
8504
  var sync = function (container, isRoot, start, soffset, finish, foffset, selectRange) {
8505
+ if (!($_e1yh5slljjgwedae.eq(start, finish) && soffset === foffset)) {
8506
+ return $_2e7p77m7jjgwedcg.closest(start, 'td,th', isRoot).bind(function (s) {
8507
+ return $_2e7p77m7jjgwedcg.closest(finish, 'td,th', isRoot).bind(function (f) {
8508
  return detect$5(container, isRoot, s, f, selectRange);
8509
  });
8510
  });
8513
  }
8514
  };
8515
  var detect$5 = function (container, isRoot, start, finish, selectRange) {
8516
+ if (!$_e1yh5slljjgwedae.eq(start, finish)) {
8517
+ return $_cl87acmqjjgwedgo.identify(start, finish, isRoot).bind(function (cellSel) {
8518
  var boxes = cellSel.boxes().getOr([]);
8519
  if (boxes.length > 0) {
8520
  selectRange(container, boxes, cellSel.start(), cellSel.finish());
8521
+ return Option.some($_3na9igq8jjgwee7o.response(Option.some($_9ndew9qbjjgwee88.makeSitus(start, 0, start, $_3uimohmjjjgwedf1.getEnd(start))), true));
8522
  } else {
8523
  return Option.none();
8524
  }
8533
  annotations.selectRange(container, newSels.boxes(), newSels.start(), newSels.finish());
8534
  return newSels.boxes();
8535
  };
8536
+ return $_cl87acmqjjgwedgo.shiftSelection(selected, rows, columns, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(updateSelection);
8537
  };
8538
+ var $_4jzcyzqdjjgwee8r = {
8539
  sync: sync,
8540
  detect: detect$5,
8541
  update: update
8542
  };
8543
 
8544
+ var nu$3 = MixedBag([
8545
  'left',
8546
  'top',
8547
  'right',
8598
  var toString$1 = function (caret) {
8599
  return '(' + caret.left() + ', ' + caret.top() + ') -> (' + caret.right() + ', ' + caret.bottom() + ')';
8600
  };
8601
+ var $_bdolgrqgjjgweea8 = {
8602
  nu: nu$3,
8603
  moveUp: moveUp,
8604
  moveDown: moveDown,
8611
  };
8612
 
8613
  var getPartialBox = function (bridge, element, offset) {
8614
+ if (offset >= 0 && offset < $_3uimohmjjjgwedf1.getEnd(element))
8615
  return bridge.getRangedRect(element, offset, element, offset + 1);
8616
  else if (offset > 0)
8617
  return bridge.getRangedRect(element, offset - 1, element, offset);
8618
  return Option.none();
8619
  };
8620
  var toCaret = function (rect) {
8621
+ return $_bdolgrqgjjgweea8.nu({
8622
  left: rect.left,
8623
  top: rect.top,
8624
  right: rect.right,
8629
  return Option.some(bridge.getRect(element));
8630
  };
8631
  var getBoxAt = function (bridge, element, offset) {
8632
+ if ($_g6duvbm3jjgwedby.isElement(element))
8633
  return getElemBox(bridge, element).map(toCaret);
8634
+ else if ($_g6duvbm3jjgwedby.isText(element))
8635
  return getPartialBox(bridge, element, offset).map(toCaret);
8636
  else
8637
  return Option.none();
8638
  };
8639
  var getEntireBox = function (bridge, element) {
8640
+ if ($_g6duvbm3jjgwedby.isElement(element))
8641
  return getElemBox(bridge, element).map(toCaret);
8642
+ else if ($_g6duvbm3jjgwedby.isText(element))
8643
+ return bridge.getRangedRect(element, 0, element, $_3uimohmjjjgwedf1.getEnd(element)).map(toCaret);
8644
  else
8645
  return Option.none();
8646
  };
8647
+ var $_av2mpcqhjjgweeac = {
8648
  getBoxAt: getBoxAt,
8649
  getEntireBox: getEntireBox
8650
  };
8651
 
8652
+ var traverse = Immutable('item', 'mode');
8653
  var backtrack = function (universe, item, direction, _transition) {
8654
  var transition = _transition !== undefined ? _transition : sidestep;
8655
  return universe.property().parent(item).map(function (p) {
8689
  ];
8690
  var go$1 = function (universe, item, mode, direction, rules) {
8691
  var rules = rules !== undefined ? rules : successors;
8692
+ var ruleOpt = find(rules, function (succ) {
8693
  return succ.current === mode;
8694
  });
8695
  return ruleOpt.bind(function (rule) {
8700
  });
8701
  });
8702
  };
8703
+ var $_e965oqmjjgweebk = {
8704
  backtrack: backtrack,
8705
  sidestep: sidestep,
8706
  advance: advance,
8731
  first: first
8732
  };
8733
  };
8734
+ var $_34xghxqnjjgweebt = {
8735
  left: left$1,
8736
  right: right$1
8737
  };
8738
 
8739
  var hone = function (universe, item, predicate, mode, direction, isRoot) {
8740
+ var next = $_e965oqmjjgweebk.go(universe, item, mode, direction);
8741
  return next.bind(function (n) {
8742
  if (isRoot(n.item()))
8743
  return Option.none();
8746
  });
8747
  };
8748
  var left$2 = function (universe, item, predicate, isRoot) {
8749
+ return hone(universe, item, predicate, $_e965oqmjjgweebk.sidestep, $_34xghxqnjjgweebt.left(), isRoot);
8750
  };
8751
  var right$2 = function (universe, item, predicate, isRoot) {
8752
+ return hone(universe, item, predicate, $_e965oqmjjgweebk.sidestep, $_34xghxqnjjgweebt.right(), isRoot);
8753
  };
8754
+ var $_28flk6qljjgweebh = {
8755
  left: left$2,
8756
  right: right$2
8757
  };
8760
  return universe.property().children(element).length === 0;
8761
  };
8762
  var before$2 = function (universe, item, isRoot) {
8763
+ return seekLeft(universe, item, curry(isLeaf, universe), isRoot);
8764
  };
8765
  var after$3 = function (universe, item, isRoot) {
8766
+ return seekRight(universe, item, curry(isLeaf, universe), isRoot);
8767
  };
8768
  var seekLeft = function (universe, item, predicate, isRoot) {
8769
+ return $_28flk6qljjgweebh.left(universe, item, predicate, isRoot);
8770
  };
8771
  var seekRight = function (universe, item, predicate, isRoot) {
8772
+ return $_28flk6qljjgweebh.right(universe, item, predicate, isRoot);
8773
  };
8774
  var walkers = function () {
8775
  return {
8776
+ left: $_34xghxqnjjgweebt.left,
8777
+ right: $_34xghxqnjjgweebt.right
8778
  };
8779
  };
8780
  var walk = function (universe, item, mode, direction, _rules) {
8781
+ return $_e965oqmjjgweebk.go(universe, item, mode, direction, _rules);
8782
  };
8783
+ var $_3wluwaqkjjgweebd = {
8784
  before: before$2,
8785
  after: after$3,
8786
  seekLeft: seekLeft,
8787
  seekRight: seekRight,
8788
  walkers: walkers,
8789
  walk: walk,
8790
+ backtrack: $_e965oqmjjgweebk.backtrack,
8791
+ sidestep: $_e965oqmjjgweebk.sidestep,
8792
+ advance: $_e965oqmjjgweebk.advance
8793
  };
8794
 
8795
  var universe$2 = DomUniverse();
8796
  var gather = function (element, prune, transform) {
8797
+ return $_3wluwaqkjjgweebd.gather(universe$2, element, prune, transform);
8798
  };
8799
  var before$3 = function (element, isRoot) {
8800
+ return $_3wluwaqkjjgweebd.before(universe$2, element, isRoot);
8801
  };
8802
  var after$4 = function (element, isRoot) {
8803
+ return $_3wluwaqkjjgweebd.after(universe$2, element, isRoot);
8804
  };
8805
  var seekLeft$1 = function (element, predicate, isRoot) {
8806
+ return $_3wluwaqkjjgweebd.seekLeft(universe$2, element, predicate, isRoot);
8807
  };
8808
  var seekRight$1 = function (element, predicate, isRoot) {
8809
+ return $_3wluwaqkjjgweebd.seekRight(universe$2, element, predicate, isRoot);
8810
  };
8811
  var walkers$1 = function () {
8812
+ return $_3wluwaqkjjgweebd.walkers();
8813
  };
8814
  var walk$1 = function (item, mode, direction, _rules) {
8815
+ return $_3wluwaqkjjgweebd.walk(universe$2, item, mode, direction, _rules);
8816
  };
8817
+ var $_5u2dgeqjjjgweeb9 = {
8818
  gather: gather,
8819
  before: before$3,
8820
  after: after$4,
8826
 
8827
  var JUMP_SIZE = 5;
8828
  var NUM_RETRIES = 100;
8829
+ var adt$2 = Adt.generate([
8830
  { 'none': [] },
8831
  { 'retry': ['caret'] }
8832
  ]);
8834
  return caret.left() < box.left() || Math.abs(box.right() - caret.left()) < 1 || caret.left() > box.right();
8835
  };
8836
  var inOutsideBlock = function (bridge, element, caret) {
8837
+ return $_6l4e4m8jjgwedci.closest(element, $_2d7i0tnojjgwedou.isBlock).fold(constant(false), function (cell) {
8838
+ return $_av2mpcqhjjgweeac.getEntireBox(bridge, cell).exists(function (box) {
8839
  return isOutside(caret, box);
8840
  });
8841
  });
8842
  };
8843
  var adjustDown = function (bridge, element, guessBox, original, caret) {
8844
+ var lowerCaret = $_bdolgrqgjjgweea8.moveDown(caret, JUMP_SIZE);
8845
  if (Math.abs(guessBox.bottom() - original.bottom()) < 1)
8846
  return adt$2.retry(lowerCaret);
8847
  else if (guessBox.top() > caret.bottom())
8848
  return adt$2.retry(lowerCaret);
8849
  else if (guessBox.top() === caret.bottom())
8850
+ return adt$2.retry($_bdolgrqgjjgweea8.moveDown(caret, 1));
8851
  else
8852
+ return inOutsideBlock(bridge, element, caret) ? adt$2.retry($_bdolgrqgjjgweea8.translate(lowerCaret, JUMP_SIZE, 0)) : adt$2.none();
8853
  };
8854
  var adjustUp = function (bridge, element, guessBox, original, caret) {
8855
+ var higherCaret = $_bdolgrqgjjgweea8.moveUp(caret, JUMP_SIZE);
8856
  if (Math.abs(guessBox.top() - original.top()) < 1)
8857
  return adt$2.retry(higherCaret);
8858
  else if (guessBox.bottom() < caret.top())
8859
  return adt$2.retry(higherCaret);
8860
  else if (guessBox.bottom() === caret.top())
8861
+ return adt$2.retry($_bdolgrqgjjgweea8.moveUp(caret, 1));
8862
  else
8863
+ return inOutsideBlock(bridge, element, caret) ? adt$2.retry($_bdolgrqgjjgweea8.translate(higherCaret, JUMP_SIZE, 0)) : adt$2.none();
8864
  };
8865
  var upMovement = {
8866
+ point: $_bdolgrqgjjgweea8.getTop,
8867
  adjuster: adjustUp,
8868
+ move: $_bdolgrqgjjgweea8.moveUp,
8869
+ gather: $_5u2dgeqjjjgweeb9.before
8870
  };
8871
  var downMovement = {
8872
+ point: $_bdolgrqgjjgweea8.getBottom,
8873
  adjuster: adjustDown,
8874
+ move: $_bdolgrqgjjgweea8.moveDown,
8875
+ gather: $_5u2dgeqjjjgweeb9.after
8876
  };
8877
  var isAtTable = function (bridge, x, y) {
8878
  return bridge.elementFromPoint(x, y).filter(function (elm) {
8879
+ return $_g6duvbm3jjgwedby.name(elm) === 'table';
8880
  }).isSome();
8881
  };
8882
  var adjustForTable = function (bridge, movement, original, caret, numRetries) {
8889
  return adjustForTable(bridge, movement, original, caret, numRetries - 1);
8890
  return bridge.situsFromPoint(caret.left(), movement.point(caret)).bind(function (guess) {
8891
  return guess.start().fold(Option.none, function (element, offset) {
8892
+ return $_av2mpcqhjjgweeac.getEntireBox(bridge, element, offset).bind(function (guessBox) {
8893
  return movement.adjuster(bridge, element, guessBox, original, caret).fold(Option.none, function (newCaret) {
8894
  return adjustTil(bridge, movement, original, newCaret, numRetries - 1);
8895
  });
8923
  return bridge.situsFromPoint(adjusted.left(), movement.point(adjusted) - delta);
8924
  });
8925
  };
8926
+ var $_1fi03fqijjgweeak = {
8927
+ tryUp: curry(retry, upMovement),
8928
+ tryDown: curry(retry, downMovement),
8929
  ieTryUp: ieTryUp,
8930
  ieTryDown: ieTryDown,
8931
+ getJumpSize: constant(JUMP_SIZE)
8932
  };
8933
 
8934
+ var adt$3 = Adt.generate([
8935
  { 'none': ['message'] },
8936
  { 'success': [] },
8937
  { 'failedUp': ['cell'] },
8943
  return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;
8944
  };
8945
  var verify = function (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {
8946
+ return $_2e7p77m7jjgwedcg.closest(after, 'td,th', isRoot).bind(function (afterCell) {
8947
+ return $_2e7p77m7jjgwedcg.closest(before, 'td,th', isRoot).map(function (beforeCell) {
8948
+ if (!$_e1yh5slljjgwedae.eq(afterCell, beforeCell)) {
8949
+ return $_92t9ismrjjgwedhe.sharedOne(isRow, [
8950
  afterCell,
8951
  beforeCell
8952
  ]).fold(function () {
8955
  return failure(beforeCell);
8956
  });
8957
  } else {
8958
+ return $_e1yh5slljjgwedae.eq(after, afterCell) && $_3uimohmjjjgwedf1.getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$3.none('in same cell');
8959
  }
8960
  });
8961
  }).getOr(adt$3.none('default'));
8962
  };
8963
  var isRow = function (elem) {
8964
+ return $_2e7p77m7jjgwedcg.closest(elem, 'tr');
8965
  };
8966
  var cata$2 = function (subject, onNone, onSuccess, onFailedUp, onFailedDown) {
8967
  return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);
8968
  };
8969
+ var $_a6kfh3qojjgweebx = {
8970
  verify: verify,
8971
  cata: cata$2,
8972
  adt: adt$3
8973
  };
8974
 
8975
+ var point = Immutable('element', 'offset');
8976
+ var delta = Immutable('element', 'deltaOffset');
8977
+ var range$3 = Immutable('element', 'start', 'finish');
8978
+ var points = Immutable('begin', 'end');
8979
+ var text = Immutable('element', 'text');
8980
+ var $_1x8ha4qqjjgweecy = {
8981
  point: point,
8982
  delta: delta,
8983
  range: range$3,
8985
  text: text
8986
  };
8987
 
8988
+ var inAncestor = Immutable('ancestor', 'descendants', 'element', 'index');
8989
+ var inParent = Immutable('parent', 'children', 'element', 'index');
8990
  var childOf = function (element, ancestor) {
8991
+ return $_6l4e4m8jjgwedci.closest(element, function (elem) {
8992
+ return $_97vsilljjjgwed9v.parent(elem).exists(function (parent) {
8993
+ return $_e1yh5slljjgwedae.eq(parent, ancestor);
8994
  });
8995
  });
8996
  };
8997
  var indexInParent = function (element) {
8998
+ return $_97vsilljjjgwed9v.parent(element).bind(function (parent) {
8999
+ var children = $_97vsilljjjgwed9v.children(parent);
9000
  return indexOf$1(children, element).map(function (index) {
9001
  return inParent(parent, children, element, index);
9002
  });
9003
  });
9004
  };
9005
  var indexOf$1 = function (elements, element) {
9006
+ return findIndex(elements, curry($_e1yh5slljjgwedae.eq, element));
9007
  };
9008
  var selectorsInParent = function (element, selector) {
9009
+ return $_97vsilljjjgwed9v.parent(element).bind(function (parent) {
9010
+ var children = $_5ko5j3m4jjgwedc0.children(parent, selector);
9011
  return indexOf$1(children, element).map(function (index) {
9012
  return inParent(parent, children, element, index);
9013
  });
9014
  });
9015
  };
9016
  var descendantsInAncestor = function (element, ancestorSelector, descendantSelector) {
9017
+ return $_2e7p77m7jjgwedcg.closest(element, ancestorSelector).bind(function (ancestor) {
9018
+ var descendants = $_5ko5j3m4jjgwedc0.descendants(ancestor, descendantSelector);
9019
  return indexOf$1(descendants, element).map(function (index) {
9020
  return inAncestor(ancestor, descendants, element, index);
9021
  });
9022
  });
9023
  };
9024
+ var $_e4dnznqrjjgweed1 = {
9025
  childOf: childOf,
9026
  indexOf: indexOf$1,
9027
  indexInParent: indexInParent,
9030
  };
9031
 
9032
  var isBr = function (elem) {
9033
+ return $_g6duvbm3jjgwedby.name(elem) === 'br';
9034
  };
9035
  var gatherer = function (cand, gather, isRoot) {
9036
  return gather(cand, isRoot).bind(function (target) {
9037
+ return $_g6duvbm3jjgwedby.isText(target) && $_btltedmkjjgwedf4.get(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Option.some(target);
9038
  });
9039
  };
9040
  var handleBr = function (isRoot, element, direction) {
9043
  }).map(direction.relative);
9044
  };
9045
  var findBr = function (element, offset) {
9046
+ return $_97vsilljjjgwed9v.child(element, offset).filter(isBr).orThunk(function () {
9047
+ return $_97vsilljjjgwed9v.child(element, offset - 1).filter(isBr);
9048
  });
9049
  };
9050
  var handleParent = function (isRoot, element, offset, direction) {
9052
  return direction.traverse(br).fold(function () {
9053
  return gatherer(br, direction.gather, isRoot).map(direction.relative);
9054
  }, function (adjacent) {
9055
+ return $_e4dnznqrjjgweed1.indexInParent(adjacent).map(function (info) {
9056
+ return $_6assppsjjgwee4k.on(info.parent(), info.index());
9057
  });
9058
  });
9059
  });
9062
  var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);
9063
  return target.map(function (tgt) {
9064
  return {
9065
+ start: constant(tgt),
9066
+ finish: constant(tgt)
9067
  };
9068
  });
9069
  };
9070
  var process = function (analysis) {
9071
+ return $_a6kfh3qojjgweebx.cata(analysis, function (message) {
9072
  return Option.none();
9073
  }, function () {
9074
  return Option.none();
9075
  }, function (cell) {
9076
+ return Option.some($_1x8ha4qqjjgweecy.point(cell, 0));
9077
  }, function (cell) {
9078
+ return Option.some($_1x8ha4qqjjgweecy.point(cell, $_3uimohmjjjgwedf1.getEnd(cell)));
9079
  });
9080
  };
9081
+ var $_dudr5cqpjjgweec9 = {
9082
  tryBr: tryBr,
9083
  process: process
9084
  };
9085
 
9086
  var MAX_RETRIES = 20;
9087
+ var platform$1 = $_avfe9dlqjjgwedat.detect();
9088
  var findSpot = function (bridge, isRoot, direction) {
9089
  return bridge.getSelection().bind(function (sel) {
9090
+ return $_dudr5cqpjjgweec9.tryBr(isRoot, sel.finish(), sel.foffset(), direction).fold(function () {
9091
+ return Option.some($_1x8ha4qqjjgweecy.point(sel.finish(), sel.foffset()));
9092
  }, function (brNeighbour) {
9093
  var range = bridge.fromSitus(brNeighbour);
9094
+ var analysis = $_a6kfh3qojjgweebx.verify(bridge, sel.finish(), sel.foffset(), range.finish(), range.foffset(), direction.failure, isRoot);
9095
+ return $_dudr5cqpjjgweec9.process(analysis);
9096
  });
9097
  });
9098
  };
9101
  return Option.none();
9102
  return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {
9103
  var range = bridge.fromSitus(situs);
9104
+ var analysis = $_a6kfh3qojjgweebx.verify(bridge, element, offset, range.finish(), range.foffset(), direction.failure, isRoot);
9105
+ return $_a6kfh3qojjgweebx.cata(analysis, function () {
9106
  return Option.none();
9107
  }, function () {
9108
  return Option.some(situs);
9109
  }, function (cell) {
9110
+ if ($_e1yh5slljjgwedae.eq(element, cell) && offset === 0)
9111
+ return tryAgain(bridge, element, offset, $_bdolgrqgjjgweea8.moveUp, direction);
9112
  else
9113
  return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);
9114
  }, function (cell) {
9115
+ if ($_e1yh5slljjgwedae.eq(element, cell) && offset === $_3uimohmjjjgwedf1.getEnd(cell))
9116
+ return tryAgain(bridge, element, offset, $_bdolgrqgjjgweea8.moveDown, direction);
9117
  else
9118
+ return scan(bridge, isRoot, cell, $_3uimohmjjjgwedf1.getEnd(cell), direction, numRetries - 1);
9119
  });
9120
  });
9121
  };
9122
  var tryAgain = function (bridge, element, offset, move, direction) {
9123
+ return $_av2mpcqhjjgweeac.getBoxAt(bridge, element, offset).bind(function (box) {
9124
+ return tryAt(bridge, direction, move(box, $_1fi03fqijjgweeak.getJumpSize()));
9125
  });
9126
  };
9127
  var tryAt = function (bridge, direction, box) {
9133
  return Option.none();
9134
  };
9135
  var tryCursor = function (bridge, isRoot, element, offset, direction) {
9136
+ return $_av2mpcqhjjgweeac.getBoxAt(bridge, element, offset).bind(function (box) {
9137
  return tryAt(bridge, direction, box);
9138
  });
9139
  };
9142
  return scan(bridge, isRoot, spot.element(), spot.offset(), direction, MAX_RETRIES).map(bridge.fromSitus);
9143
  });
9144
  };
9145
+ var $_9xio5dqfjjgwee9v = { handle: handle$2 };
9146
 
9147
  var any$1 = function (predicate) {
9148
+ return $_6l4e4m8jjgwedci.first(predicate).isSome();
9149
  };
9150
  var ancestor$3 = function (scope, predicate, isRoot) {
9151
+ return $_6l4e4m8jjgwedci.ancestor(scope, predicate, isRoot).isSome();
9152
  };
9153
  var closest$3 = function (scope, predicate, isRoot) {
9154
+ return $_6l4e4m8jjgwedci.closest(scope, predicate, isRoot).isSome();
9155
  };
9156
  var sibling$3 = function (scope, predicate) {
9157
+ return $_6l4e4m8jjgwedci.sibling(scope, predicate).isSome();
9158
  };
9159
  var child$4 = function (scope, predicate) {
9160
+ return $_6l4e4m8jjgwedci.child(scope, predicate).isSome();
9161
  };
9162
  var descendant$3 = function (scope, predicate) {
9163
+ return $_6l4e4m8jjgwedci.descendant(scope, predicate).isSome();
9164
  };
9165
+ var $_bi1r7cqsjjgweedb = {
9166
  any: any$1,
9167
  ancestor: ancestor$3,
9168
  closest: closest$3,
9171
  descendant: descendant$3
9172
  };
9173
 
9174
+ var detection = $_avfe9dlqjjgwedat.detect();
9175
  var inSameTable = function (elem, table) {
9176
+ return $_bi1r7cqsjjgweedb.ancestor(elem, function (e) {
9177
+ return $_97vsilljjjgwed9v.parent(e).exists(function (p) {
9178
+ return $_e1yh5slljjgwedae.eq(p, table);
9179
  });
9180
  });
9181
  };
9182
+
9183
  var simulate = function (bridge, isRoot, direction, initial, anchor) {
9184
+ return $_2e7p77m7jjgwedcg.closest(initial, 'td,th', isRoot).bind(function (start) {
9185
+ return $_2e7p77m7jjgwedcg.closest(start, 'table', isRoot).bind(function (table) {
9186
  if (!inSameTable(anchor, table))
9187
  return Option.none();
9188
+ return $_9xio5dqfjjgwee9v.handle(bridge, isRoot, direction).bind(function (range) {
9189
+ return $_2e7p77m7jjgwedcg.closest(range.finish(), 'td,th', isRoot).map(function (finish) {
9190
  return {
9191
+ start: constant(start),
9192
+ finish: constant(finish),
9193
+ range: constant(range)
9194
  };
9195
  });
9196
  });
9204
  return precheck(initial, isRoot).orThunk(function () {
9205
  return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {
9206
  var range = info.range();
9207
+ return $_3na9igq8jjgwee7o.response(Option.some($_9ndew9qbjjgwee88.makeSitus(range.start(), range.soffset(), range.finish(), range.foffset())), true);
9208
  });
9209
  });
9210
  }
9211
  };
9212
  var firstUpCheck = function (initial, isRoot) {
9213
+ return $_2e7p77m7jjgwedcg.closest(initial, 'tr', isRoot).bind(function (startRow) {
9214
+ return $_2e7p77m7jjgwedcg.closest(startRow, 'table', isRoot).bind(function (table) {
9215
+ var rows = $_5ko5j3m4jjgwedc0.descendants(table, 'tr');
9216
+ if ($_e1yh5slljjgwedae.eq(startRow, rows[0])) {
9217
+ return $_5u2dgeqjjjgweeb9.seekLeft(table, function (element) {
9218
+ return $_cww1bpmijjgwedex.last(element).isSome();
9219
  }, isRoot).map(function (last) {
9220
+ var lastOffset = $_3uimohmjjjgwedf1.getEnd(last);
9221
+ return $_3na9igq8jjgwee7o.response(Option.some($_9ndew9qbjjgwee88.makeSitus(last, lastOffset, last, lastOffset)), true);
9222
  });
9223
  } else {
9224
  return Option.none();
9227
  });
9228
  };
9229
  var lastDownCheck = function (initial, isRoot) {
9230
+ return $_2e7p77m7jjgwedcg.closest(initial, 'tr', isRoot).bind(function (startRow) {
9231
+ return $_2e7p77m7jjgwedcg.closest(startRow, 'table', isRoot).bind(function (table) {
9232
+ var rows = $_5ko5j3m4jjgwedc0.descendants(table, 'tr');
9233
+ if ($_e1yh5slljjgwedae.eq(startRow, rows[rows.length - 1])) {
9234
+ return $_5u2dgeqjjjgweeb9.seekRight(table, function (element) {
9235
+ return $_cww1bpmijjgwedex.first(element).isSome();
9236
  }, isRoot).map(function (first) {
9237
+ return $_3na9igq8jjgwee7o.response(Option.some($_9ndew9qbjjgwee88.makeSitus(first, 0, first, 0)), true);
9238
  });
9239
  } else {
9240
  return Option.none();
9244
  };
9245
  var select = function (bridge, container, isRoot, direction, initial, anchor, selectRange) {
9246
  return simulate(bridge, isRoot, direction, initial, anchor).bind(function (info) {
9247
+ return $_4jzcyzqdjjgwee8r.detect(container, isRoot, info.start(), info.finish(), selectRange);
9248
  });
9249
  };
9250
+ var $_eh32iiqejjgwee96 = {
9251
  navigate: navigate,
9252
  select: select,
9253
  firstUpCheck: firstUpCheck,
9255
  };
9256
 
9257
  var findCell = function (target, isRoot) {
9258
+ return $_2e7p77m7jjgwedcg.closest(target, 'td,th', isRoot);
9259
  };
9260
  function MouseSelection (bridge, container, isRoot, annotations) {
9261
  var cursor = Option.none();
9270
  cursor.each(function (start) {
9271
  annotations.clear(container);
9272
  findCell(event.target(), isRoot).each(function (finish) {
9273
+ $_cl87acmqjjgwedgo.identify(start, finish, isRoot).each(function (cellSel) {
9274
  var boxes = cellSel.boxes().getOr([]);
9275
+ if (boxes.length > 1 || boxes.length === 1 && !$_e1yh5slljjgwedae.eq(start, finish)) {
9276
  annotations.selectRange(container, boxes, cellSel.start(), cellSel.finish());
9277
  bridge.selectContents(finish);
9278
  }
9290
  };
9291
  }
9292
 
9293
+ var $_4cnew2qujjgweedl = {
9294
  down: {
9295
+ traverse: $_97vsilljjjgwed9v.nextSibling,
9296
+ gather: $_5u2dgeqjjjgweeb9.after,
9297
+ relative: $_6assppsjjgwee4k.before,
9298
+ otherRetry: $_1fi03fqijjgweeak.tryDown,
9299
+ ieRetry: $_1fi03fqijjgweeak.ieTryDown,
9300
+ failure: $_a6kfh3qojjgweebx.adt.failedDown
9301
  },
9302
  up: {
9303
+ traverse: $_97vsilljjjgwed9v.prevSibling,
9304
+ gather: $_5u2dgeqjjjgweeb9.before,
9305
+ relative: $_6assppsjjgwee4k.before,
9306
+ otherRetry: $_1fi03fqijjgweeak.tryUp,
9307
+ ieRetry: $_1fi03fqijjgweeak.ieTryUp,
9308
+ failure: $_a6kfh3qojjgweebx.adt.failedUp
9309
  }
9310
  };
9311
 
9312
+ var rc = Immutable('rows', 'cols');
9313
  var mouse = function (win, container, isRoot, annotations) {
9314
  var bridge = WindowBridge(win);
9315
  var handlers = MouseSelection(bridge, container, isRoot, annotations);
9328
  var keydown = function (event, start, soffset, finish, foffset, direction) {
9329
  var keycode = event.raw().which;
9330
  var shiftKey = event.raw().shiftKey === true;
9331
+ var handler = $_cl87acmqjjgwedgo.retrieve(container, annotations.selectedSelector()).fold(function () {
9332
+ if ($_gu1pzq9jjgwee7r.isDown(keycode) && shiftKey) {
9333
+ return curry($_eh32iiqejjgwee96.select, bridge, container, isRoot, $_4cnew2qujjgweedl.down, finish, start, annotations.selectRange);
9334
+ } else if ($_gu1pzq9jjgwee7r.isUp(keycode) && shiftKey) {
9335
+ return curry($_eh32iiqejjgwee96.select, bridge, container, isRoot, $_4cnew2qujjgweedl.up, finish, start, annotations.selectRange);
9336
+ } else if ($_gu1pzq9jjgwee7r.isDown(keycode)) {
9337
+ return curry($_eh32iiqejjgwee96.navigate, bridge, isRoot, $_4cnew2qujjgweedl.down, finish, start, $_eh32iiqejjgwee96.lastDownCheck);
9338
+ } else if ($_gu1pzq9jjgwee7r.isUp(keycode)) {
9339
+ return curry($_eh32iiqejjgwee96.navigate, bridge, isRoot, $_4cnew2qujjgweedl.up, finish, start, $_eh32iiqejjgwee96.firstUpCheck);
9340
  } else {
9341
  return Option.none;
9342
  }
9343
  }, function (selected) {
9344
  var update = function (attempts) {
9345
  return function () {
9346
+ var navigation = findMap(attempts, function (delta) {
9347
+ return $_4jzcyzqdjjgwee8r.update(delta.rows(), delta.cols(), container, selected, annotations);
9348
  });
9349
  return navigation.fold(function () {
9350
+ return $_cl87acmqjjgwedgo.getEdges(container, annotations.firstSelectedSelector(), annotations.lastSelectedSelector()).map(function (edges) {
9351
+ var relative = $_gu1pzq9jjgwee7r.isDown(keycode) || direction.isForward(keycode) ? $_6assppsjjgwee4k.after : $_6assppsjjgwee4k.before;
9352
+ bridge.setRelativeSelection($_6assppsjjgwee4k.on(edges.first(), 0), relative(edges.table()));
9353
  annotations.clear(container);
9354
+ return $_3na9igq8jjgwee7o.response(Option.none(), true);
9355
  });
9356
  }, function (_) {
9357
+ return Option.some($_3na9igq8jjgwee7o.response(Option.none(), true));
9358
  });
9359
  };
9360
  };
9361
+ if ($_gu1pzq9jjgwee7r.isDown(keycode) && shiftKey)
9362
  return update([rc(+1, 0)]);
9363
+ else if ($_gu1pzq9jjgwee7r.isUp(keycode) && shiftKey)
9364
  return update([rc(-1, 0)]);
9365
  else if (direction.isBackward(keycode) && shiftKey)
9366
  return update([
9372
  rc(0, +1),
9373
  rc(+1, 0)
9374
  ]);
9375
+ else if ($_gu1pzq9jjgwee7r.isNavigation(keycode) && shiftKey === false)
9376
  return clearToNavigate;
9377
  else
9378
  return Option.none;
9380
  return handler();
9381
  };
9382
  var keyup = function (event, start, soffset, finish, foffset) {
9383
+ return $_cl87acmqjjgwedgo.retrieve(container, annotations.selectedSelector()).fold(function () {
9384
  var keycode = event.raw().which;
9385
  var shiftKey = event.raw().shiftKey === true;
9386
  if (shiftKey === false)
9387
  return Option.none();
9388
+ if ($_gu1pzq9jjgwee7r.isNavigation(keycode))
9389
+ return $_4jzcyzqdjjgwee8r.sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);
9390
  else
9391
  return Option.none();
9392
  }, Option.none);
9396
  keyup: keyup
9397
  };
9398
  };
9399
+ var $_7p3759q7jjgwee7b = {
9400
  mouse: mouse,
9401
  keyboard: keyboard
9402
  };
9403
 
9404
  var add$3 = function (element, classes) {
9405
+ each(classes, function (x) {
9406
+ $_btizb5o3jjgwedsg.add(element, x);
9407
  });
9408
  };
9409
  var remove$7 = function (element, classes) {
9410
+ each(classes, function (x) {
9411
+ $_btizb5o3jjgwedsg.remove(element, x);
9412
  });
9413
  };
9414
  var toggle$2 = function (element, classes) {
9415
+ each(classes, function (x) {
9416
+ $_btizb5o3jjgwedsg.toggle(element, x);
9417
  });
9418
  };
9419
  var hasAll = function (element, classes) {
9420
+ return forall(classes, function (clazz) {
9421
+ return $_btizb5o3jjgwedsg.has(element, clazz);
9422
  });
9423
  };
9424
  var hasAny = function (element, classes) {
9425
+ return exists(classes, function (clazz) {
9426
+ return $_btizb5o3jjgwedsg.has(element, clazz);
9427
  });
9428
  };
9429
  var getNative = function (element) {
9435
  return r;
9436
  };
9437
  var get$11 = function (element) {
9438
+ return $_f1c8m0o5jjgwedsj.supports(element) ? getNative(element) : $_f1c8m0o5jjgwedsj.get(element);
9439
  };
9440
+ var $_ao71zoqxjjgweee6 = {
9441
  add: add$3,
9442
  remove: remove$7,
9443
  toggle: toggle$2,
9448
 
9449
  var addClass = function (clazz) {
9450
  return function (element) {
9451
+ $_btizb5o3jjgwedsg.add(element, clazz);
9452
  };
9453
  };
9454
  var removeClass = function (clazz) {
9455
  return function (element) {
9456
+ $_btizb5o3jjgwedsg.remove(element, clazz);
9457
  };
9458
  };
9459
  var removeClasses = function (classes) {
9460
  return function (element) {
9461
+ $_ao71zoqxjjgweee6.remove(element, classes);
9462
  };
9463
  };
9464
  var hasClass = function (clazz) {
9465
  return function (element) {
9466
+ return $_btizb5o3jjgwedsg.has(element, clazz);
9467
  };
9468
  };
9469
+ var $_ef67inqwjjgweee5 = {
9470
  addClass: addClass,
9471
  removeClass: removeClass,
9472
  removeClasses: removeClasses,
9474
  };
9475
 
9476
  var byClass = function (ephemera) {
9477
+ var addSelectionClass = $_ef67inqwjjgweee5.addClass(ephemera.selected());
9478
+ var removeSelectionClasses = $_ef67inqwjjgweee5.removeClasses([
9479
  ephemera.selected(),
9480
  ephemera.lastSelected(),
9481
  ephemera.firstSelected()
9482
  ]);
9483
  var clear = function (container) {
9484
+ var sels = $_5ko5j3m4jjgwedc0.descendants(container, ephemera.selectedSelector());
9485
+ each(sels, removeSelectionClasses);
9486
  };
9487
  var selectRange = function (container, cells, start, finish) {
9488
  clear(container);
9489
+ each(cells, addSelectionClass);
9490
+ $_btizb5o3jjgwedsg.add(start, ephemera.firstSelected());
9491
+ $_btizb5o3jjgwedsg.add(finish, ephemera.lastSelected());
9492
  };
9493
  return {
9494
  clear: clear,
9500
  };
9501
  var byAttr = function (ephemera) {
9502
  var removeSelectionAttributes = function (element) {
9503
+ $_72hn9pm2jjgwedbq.remove(element, ephemera.selected());
9504
+ $_72hn9pm2jjgwedbq.remove(element, ephemera.firstSelected());
9505
+ $_72hn9pm2jjgwedbq.remove(element, ephemera.lastSelected());
9506
  };
9507
  var addSelectionAttribute = function (element) {
9508
+ $_72hn9pm2jjgwedbq.set(element, ephemera.selected(), '1');
9509
  };
9510
  var clear = function (container) {
9511
+ var sels = $_5ko5j3m4jjgwedc0.descendants(container, ephemera.selectedSelector());
9512
+ each(sels, removeSelectionAttributes);
9513
  };
9514
  var selectRange = function (container, cells, start, finish) {
9515
  clear(container);
9516
+ each(cells, addSelectionAttribute);
9517
+ $_72hn9pm2jjgwedbq.set(start, ephemera.firstSelected(), '1');
9518
+ $_72hn9pm2jjgwedbq.set(finish, ephemera.lastSelected(), '1');
9519
  };
9520
  return {
9521
  clear: clear,
9525
  lastSelectedSelector: ephemera.lastSelectedSelector
9526
  };
9527
  };
9528
+ var $_4jpay1qvjjgweedt = {
9529
  byClass: byClass,
9530
  byAttr: byAttr
9531
  };
9532
 
9533
+ var hasInternalTarget = function (e) {
9534
+ return $_btizb5o3jjgwedsg.has(Element$$1.fromDom(e.target), 'ephox-snooker-resizer-bar') === false;
9535
+ };
9536
  function CellSelection$1 (editor, lazyResize) {
9537
+ var handlerStruct = MixedBag([
9538
  'mousedown',
9539
  'mouseover',
9540
  'mouseup',
9542
  'keydown'
9543
  ], []);
9544
  var handlers = Option.none();
9545
+ var annotations = $_4jpay1qvjjgweedt.byAttr($_b2a4bzn2jjgwedjz);
9546
  editor.on('init', function (e) {
9547
  var win = editor.getWin();
9548
+ var body = getBody$1(editor);
9549
+ var isRoot = getIsRoot(editor);
9550
  var syncSelection = function () {
9551
  var sel = editor.selection;
9552
+ var start = Element$$1.fromDom(sel.getStart());
9553
+ var end = Element$$1.fromDom(sel.getEnd());
9554
+ var shared = $_92t9ismrjjgwedhe.sharedOne($_bmlvw1ldjjgwed84.table, [
9555
+ start,
9556
+ end
9557
+ ]);
9558
+ shared.fold(function () {
 
 
 
9559
  annotations.clear(body);
9560
+ }, noop);
9561
  };
9562
+ var mouseHandlers = $_7p3759q7jjgwee7b.mouse(win, body, isRoot, annotations);
9563
+ var keyHandlers = $_7p3759q7jjgwee7b.keyboard(win, body, isRoot, annotations);
9564
  var hasShiftKey = function (event) {
9565
  return event.raw().shiftKey === true;
9566
  };
9572
  event.kill();
9573
  }
9574
  response.selection().each(function (ns) {
9575
+ var relative = $_afru5jprjjgwee4e.relative(ns.start(), ns.finish());
9576
+ var rng = $_5s2zljpxjjgwee5b.asLtrRange(win, relative);
9577
  editor.selection.setRng(rng);
9578
  });
9579
  };
9580
  var keyup = function (event) {
9581
  var wrappedEvent = wrapEvent(event);
9582
+ if (wrappedEvent.raw().shiftKey && $_gu1pzq9jjgwee7r.isNavigation(wrappedEvent.raw().which)) {
9583
  var rng = editor.selection.getRng();
9584
+ var start = Element$$1.fromDom(rng.startContainer);
9585
+ var end = Element$$1.fromDom(rng.endContainer);
9586
  keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(function (response) {
9587
  handleResponse(wrappedEvent, response);
9588
  });
9594
  resize.hideBars();
9595
  });
9596
  var rng = editor.selection.getRng();
9597
+ var startContainer = Element$$1.fromDom(editor.selection.getStart());
9598
+ var start = Element$$1.fromDom(rng.startContainer);
9599
+ var end = Element$$1.fromDom(rng.endContainer);
9600
+ var direction = $_dowdxdoljjgwedvp.directionAt(startContainer).isRtl() ? $_gu1pzq9jjgwee7r.rtl : $_gu1pzq9jjgwee7r.ltr;
9601
  keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(function (response) {
9602
  handleResponse(wrappedEvent, response);
9603
  });
9609
  return event.hasOwnProperty('x') && event.hasOwnProperty('y');
9610
  };
9611
  var wrapEvent = function (event) {
9612
+ var target = Element$$1.fromDom(event.target);
9613
  var stop = function () {
9614
  event.stopPropagation();
9615
  };
9616
  var prevent = function () {
9617
  event.preventDefault();
9618
  };
9619
+ var kill = compose(prevent, stop);
9620
  return {
9621
+ target: constant(target),
9622
+ x: constant(isMouseEvent(event) ? event.x : null),
9623
+ y: constant(isMouseEvent(event) ? event.y : null),
9624
  stop: stop,
9625
  prevent: prevent,
9626
  kill: kill,
9627
+ raw: constant(event)
9628
  };
9629
  };
9630
  var isLeftMouse = function (raw) {
9637
  return (raw.buttons & 1) !== 0;
9638
  };
9639
  var mouseDown = function (e) {
9640
+ if (isLeftMouse(e) && hasInternalTarget(e)) {
9641
  mouseHandlers.mousedown(wrapEvent(e));
9642
  }
9643
  };
9644
  var mouseOver = function (e) {
9645
+ if (isLeftButtonPressed(e) && hasInternalTarget(e)) {
9646
  mouseHandlers.mouseover(wrapEvent(e));
9647
  }
9648
  };
9649
  var mouseUp = function (e) {
9650
+ if (isLeftMouse(e) && hasInternalTarget(e)) {
9651
  mouseHandlers.mouseup(wrapEvent(e));
9652
  }
9653
  };
9677
 
9678
  var Selections = function (editor) {
9679
  var get = function () {
9680
+ var body = getBody$1(editor);
9681
+ return $_9sh63kmpjjgwedg7.retrieve(body, $_b2a4bzn2jjgwedjz.selectedSelector()).fold(function () {
9682
  if (editor.selection.getStart() === undefined) {
9683
+ return $_a362bzn3jjgwedk2.none();
9684
  } else {
9685
+ return $_a362bzn3jjgwedk2.single(editor.selection);
9686
  }
9687
  }, function (cells) {
9688
+ return $_a362bzn3jjgwedk2.multiple(cells);
9689
  });
9690
  };
9691
  return { get: get };
9692
  };
9693
 
9694
+ var each$4 = global$1.each;
9695
  var addButtons = function (editor) {
9696
  var menuItems = [];
9697
  each$4('inserttable tableprops deletetable | cell row column'.split(' '), function (name) {
9713
  }
9714
  editor.addButton('tableprops', {
9715
  title: 'Table properties',
9716
+ onclick: cmd('mceTableProps'),
9717
  icon: 'table'
9718
  });
9719
  editor.addButton('tabledelete', {
9787
  editor.addContextToolbar(isTable, toolbar.join(' '));
9788
  }
9789
  };
9790
+ var $_daea7jqzjjgweeee = {
9791
  addButtons: addButtons,
9792
  addToolbars: addToolbars
9793
  };
9842
  };
9843
  var setDisabledCtrls = function () {
9844
  targets.fold(function () {
9845
+ each(tableCtrls, noTargetDisable);
9846
+ each(cellCtrls, noTargetDisable);
9847
+ each(mergeCtrls, noTargetDisable);
9848
+ each(unmergeCtrls, noTargetDisable);
9849
  }, function (targets) {
9850
+ each(tableCtrls, ctrlEnable);
9851
+ each(cellCtrls, ctrlEnable);
9852
+ each(mergeCtrls, function (mergeCtrl) {
9853
  mergeCtrl.disabled(targets.mergable().isNone());
9854
  });
9855
+ each(unmergeCtrls, function (unmergeCtrl) {
9856
  unmergeCtrl.disabled(targets.unmergable().isNone());
9857
  });
9858
  });
9861
  editor.on('nodechange', function (e) {
9862
  var cellOpt = Option.from(editor.dom.getParent(editor.selection.getStart(), 'th,td'));
9863
  targets = cellOpt.bind(function (cellDom) {
9864
+ var cell = Element$$1.fromDom(cellDom);
9865
+ var table = $_bmlvw1ldjjgwed84.table(cell);
9866
  return table.map(function (table) {
9867
+ return $_a5s279mnjjgwedff.forMenu(selections, table, cell);
9868
  });
9869
  });
9870
  setDisabledCtrls();
9908
  text: 'Table',
9909
  icon: 'table',
9910
  context: 'table',
9911
+ onclick: cmd('mceInsertTable')
9912
  } : {
9913
  text: 'Table',
9914
  icon: 'table',
9918
  if (e.aria) {
9919
  this.parent().hideAll();
9920
  e.stopImmediatePropagation();
9921
+ editor.execCommand('mceInsertTable');
9922
  }
9923
  },
9924
  onshow: function () {
9958
  e.stopPropagation();
9959
  self.parent().cancel();
9960
  editor.undoManager.transact(function () {
9961
+ $_2ync79oyjjgwedxx.insert(editor, self.lastX + 1, self.lastY + 1);
9962
  });
9963
  editor.addVisual();
9964
  }
9974
  text: 'Table properties',
9975
  context: 'table',
9976
  onPostRender: pushTable,
9977
+ onclick: cmd('mceTableProps')
9978
  };
9979
  var deleteTable = {
9980
  text: 'Delete table',
10079
  editor.addMenuItem('column', column);
10080
  editor.addMenuItem('cell', cell);
10081
  };
10082
+ var $_dgc9gzr0jjgweeei = { addMenuItems: addMenuItems };
10083
 
10084
  var getClipboardRows = function (clipboardRows) {
10085
  return clipboardRows.get().fold(function () {
10086
  return;
10087
  }, function (rows) {
10088
+ return map(rows, function (row) {
10089
  return row.dom();
10090
  });
10091
  });
10092
  };
10093
  var setClipboardRows = function (rows, clipboardRows) {
10094
+ var sugarRows = map(rows, Element$$1.fromDom);
10095
  clipboardRows.set(Option.from(sugarRows));
10096
  };
10097
  var getApi = function (editor, clipboardRows) {
10098
  return {
10099
  insertTable: function (columns, rows) {
10100
+ return $_2ync79oyjjgwedxx.insert(editor, columns, rows);
10101
  },
10102
  setClipboardRows: function (rows) {
10103
  return setClipboardRows(rows, clipboardRows);
10114
  var actions = TableActions(editor, resizeHandler.lazyWire);
10115
  var selections = Selections(editor);
10116
  var clipboardRows = Cell(Option.none());
10117
+ $_cnyxavopjjgwedw9.registerCommands(editor, actions, cellSelection, selections, clipboardRows);
10118
+ $_fqjxp5l0jjgwed5s.registerEvents(editor, selections, actions, cellSelection);
10119
+ $_dgc9gzr0jjgweeei.addMenuItems(editor, selections);
10120
+ $_daea7jqzjjgweeee.addButtons(editor);
10121
+ $_daea7jqzjjgweeee.addToolbars(editor);
10122
  editor.on('PreInit', function () {
10123
+ editor.serializer.addTempAttr($_b2a4bzn2jjgwedjz.firstSelected());
10124
+ editor.serializer.addTempAttr($_b2a4bzn2jjgwedjz.lastSelected());
10125
  });
10126
  if (hasTabNavigation(editor)) {
10127
  editor.on('keydown', function (e) {
10128
+ $_9cogwlpojjgwee3l.handle(e, editor, actions, resizeHandler.lazyWire);
10129
  });
10130
  }
10131
  editor.on('remove', function () {
mce/table/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){"use strict";var e,t,n,r,o,i,u=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(e){return function(){return e}},y={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},constant:a,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var u=new Array(arguments.length-1),n=1;n<arguments.length;n++)u[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=u.concat(n);return i.apply(null,o)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:a(!1),always:a(!0)},c=y.never,l=y.always,s=function(){return f},f=(r={fold:function(e,t){return e()},is:c,isSome:c,isNone:l,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:s,ap:s,each:function(){},bind:s,flatten:s,exists:c,forall:l,filter:s,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:y.constant("none()")},Object.freeze&&Object.freeze(r),r),d=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:l,isNone:c,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return d(e(n))},ap:function(e){return e.fold(s,function(e){return d(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:f},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(c,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},x={some:d,none:s,from:function(e){return null===e||e===undefined?f:d(e)}},m=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},g={isString:m("string"),isObject:m("object"),isArray:m("array"),isNull:m("null"),isBoolean:m("boolean"),isUndefined:m("undefined"),isFunction:m("function"),isNumber:m("number")},p=(o=Array.prototype.indexOf)===undefined?function(e,t){return R(e,t)}:function(e,t){return o.call(e,t)},h=function(e,t){return-1<p(e,t)},v=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},b=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},w=function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)},S=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},C=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return x.some(n);return x.none()},R=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},T=Array.prototype.push,A=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);T.apply(t,e[n])}return t},D=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},k=Array.prototype.slice,N=g.isFunction(Array.from)?Array.from:function(e){return k.call(e)},E={map:v,each:b,eachr:w,partition:function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var u=e[o];(t(u,o,e)?n:r).push(u)}return{pass:n,fail:r}},filter:S,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),r=[],o=[],i=0,u=e.length;i<u;i++){var a=e[i],c=t(a);c!==n&&(r.push(o),o=[]),n=c,o.push(a)}return 0!==o.length&&r.push(o),r},indexOf:function(e,t){var n=p(e,t);return-1===n?x.none():x.some(n)},foldr:function(e,t,n){return w(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return b(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return x.some(o)}return x.none()},findIndex:C,flatten:A,bind:function(e,t){var n=v(e,t);return A(n)},forall:D,exists:function(e,t){return C(e,t).isSome()},contains:h,equal:function(e,n){return e.length===n.length&&D(e,function(e,t){return e===n[t]})},reverse:function(e){var t=k.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],r=0;r<e.length;r+=t){var o=e.slice(r,r+t);n.push(o)}return n},difference:function(e,t){return S(e,function(e){return!h(t,e)})},mapToObject:function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n},pure:function(e){return[e]},sort:function(e,t){var n=k.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},head:function(e){return 0===e.length?x.none():x.some(e[0])},last:function(e){return 0===e.length?x.none():x.some(e[e.length-1])},from:N},O=(i=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:i,B=function(e,t){for(var n=O(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},P=function(r,o){var i={};return B(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},I=function(e,n){var r=[];return B(e,function(e,t){r.push(n(e,t))}),r},W=function(e){return I(e,function(e){return e})},M={bifilter:function(e,n){var r={},o={};return B(e,function(e,t){(n(e,t)?r:o)[t]=e}),{t:r,f:o}},each:B,map:function(e,r){return P(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},mapToArray:I,tupleMap:P,find:function(e,t){for(var n=O(e),r=0,o=n.length;r<o;r++){var i=n[r],u=e[i];if(t(u,i,e))return x.some(u)}return x.none()},keys:O,values:W,size:function(e){return W(e).length}},L=function(e){return e.slice(0).sort()},q={sort:L,reqMessage:function(e,t){throw new Error("All required keys ("+L(e).join(", ")+") were not specified. Specified keys were: "+L(t).join(", ")+".")},unsuppMessage:function(e){throw new Error("Unsupported keys for object: "+L(e).join(", "))},validateStrArr:function(t,e){if(!g.isArray(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");E.each(e,function(e){if(!g.isString(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},invalidTypeMessage:function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+L(e).join(", ")+") were not.")},checkDupes:function(e){var n=L(e);E.find(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},F={immutable:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return E.each(t,function(e,t){r[e]=y.constant(n[t])}),r}},immutableBag:function(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return q.validateStrArr("required",o),q.validateStrArr("optional",i),q.checkDupes(u),function(t){var n=M.keys(t);E.forall(o,function(e){return E.contains(n,e)})||q.reqMessage(o,n);var e=E.filter(n,function(e){return!E.contains(u,e)});0<e.length&&q.unsuppMessage(e);var r={};return E.each(o,function(e){r[e]=y.constant(t[e])}),E.each(i,function(e){r[e]=y.constant(Object.prototype.hasOwnProperty.call(t,e)?x.some(t[e]):x.none())}),r}}},j=F.immutable("width","height"),z=F.immutable("rows","columns"),_=F.immutable("row","column"),H=F.immutable("x","y"),V=F.immutable("element","rowspan","colspan"),U=F.immutable("element","rowspan","colspan","isNew"),G={dimensions:j,grid:z,address:_,coords:H,extended:F.immutable("element","rowspan","colspan","row","column"),detail:V,detailnew:U,rowdata:F.immutable("element","cells","section"),elementnew:F.immutable("element","isNew"),rowdatanew:F.immutable("element","cells","section","isNew"),rowcells:F.immutable("cells","section"),rowdetails:F.immutable("details","section"),bounds:F.immutable("startRow","startCol","finishRow","finishCol")},X=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:y.constant(e)}},Y={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return X(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return X(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return X(n)},fromDom:X,fromPoint:function(e,t,n){return x.from(e.dom().elementFromPoint(t,n)).map(X)}},K=8,$=9,J=1,Q=3,Z=J,ee=$,te=function(e){return e.nodeType!==Z&&e.nodeType!==ee||0===e.childElementCount},ne={all:function(e,t){var n=t===undefined?document:t.dom();return te(n)?[]:E.map(n.querySelectorAll(e),Y.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==Z)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return te(n)?x.none():x.from(n.querySelector(e)).map(Y.fromDom)}},re=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},oe="undefined"!=typeof window?window:Function("return this;")(),ie=function(e,t){for(var n=t!==undefined&&null!==t?t:oe,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},ue=function(e,t){var n=e.split(".");return ie(n,t)},ae=function(e,t){var n=ue(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n},ce=function(){return ae("Node")},le=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},se=function(e,t){return le(e,t,ce().DOCUMENT_POSITION_CONTAINED_BY)},fe=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},de=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return ge(r(1),r(2))},me=function(){return ge(0,0)},ge=function(e,t){return{major:e,minor:t}},pe={nu:ge,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?me():de(e,n)},unknown:me},he="Firefox",ve=function(e,t){return function(){return t===e}},be=function(e){var t=e.current;return{current:t,version:e.version,isEdge:ve("Edge",t),isChrome:ve("Chrome",t),isIE:ve("IE",t),isOpera:ve("Opera",t),isFirefox:ve(he,t),isSafari:ve("Safari",t)}},we={unknown:function(){return be({current:undefined,version:pe.unknown()})},nu:be,edge:y.constant("Edge"),chrome:y.constant("Chrome"),ie:y.constant("IE"),opera:y.constant("Opera"),firefox:y.constant(he),safari:y.constant("Safari")},ye="Windows",xe="Android",Se="Solaris",Ce="FreeBSD",Re=function(e,t){return function(){return t===e}},Te=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Re(ye,t),isiOS:Re("iOS",t),isAndroid:Re(xe,t),isOSX:Re("OSX",t),isLinux:Re("Linux",t),isSolaris:Re(Se,t),isFreeBSD:Re(Ce,t)}},Ae={unknown:function(){return Te({current:undefined,version:pe.unknown()})},nu:Te,windows:y.constant(ye),ios:y.constant("iOS"),android:y.constant(xe),linux:y.constant("Linux"),osx:y.constant("OSX"),solaris:y.constant(Se),freebsd:y.constant(Ce)},De=function(e,t){var n=String(t).toLowerCase();return E.find(e,function(e){return e.search(n)})},ke=function(e,n){return De(e,n).map(function(e){var t=pe.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Ne=function(e,n){return De(e,n).map(function(e){var t=pe.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Ee=function(e,t){return t+e},Oe=function(e,t){return e+t},Be=function(e,t){return e.substring(t)},Pe=function(e,t){return e.substring(0,e.length-t)},Ie=function(e){return""===e?x.none():x.some(e.substr(0,1))},We=function(e){return""===e?x.none():x.some(e.substring(1))},Me=function(e,t,n){return""===t||!(e.length<t.length)&&e.substr(n,n+t.length)===t},Le=function(e,t){return Me(e,t,0)},qe=function(e,t){return Me(e,t,e.length-t.length)},Fe={supplant:function(e,o){return e.replace(/\${([^{}]*)}/g,function(e,t){var n,r=o[t];return"string"==(n=typeof r)||"number"===n?r:e})},startsWith:Le,removeLeading:function(e,t){return Le(e,t)?Be(e,t.length):e},removeTrailing:function(e,t){return qe(e,t)?Pe(e,t.length):e},ensureLeading:function(e,t){return Le(e,t)?e:Ee(e,t)},ensureTrailing:function(e,t){return qe(e,t)?e:Oe(e,t)},endsWith:qe,contains:function(e,t){return-1!==e.indexOf(t)},trim:function(e){return e.replace(/^\s+|\s+$/g,"")},lTrim:function(e){return e.replace(/^\s+/g,"")},rTrim:function(e){return e.replace(/\s+$/g,"")},capitalize:function(e){return Ie(e).bind(function(t){return We(e).map(function(e){return t.toUpperCase()+e})}).getOr(e)}},je=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ze=function(t){return function(e){return Fe.contains(e,t)}},_e=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return Fe.contains(e,"edge/")&&Fe.contains(e,"chrome")&&Fe.contains(e,"safari")&&Fe.contains(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,je],search:function(e){return Fe.contains(e,"chrome")&&!Fe.contains(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return Fe.contains(e,"msie")||Fe.contains(e,"trident")}},{name:"Opera",versionRegexes:[je,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:ze("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:ze("firefox")},{name:"Safari",versionRegexes:[je,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(Fe.contains(e,"safari")||Fe.contains(e,"mobile/"))&&Fe.contains(e,"applewebkit")}}],He=[{name:"Windows",search:ze("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return Fe.contains(e,"iphone")||Fe.contains(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:ze("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:ze("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:ze("linux"),versionRegexes:[]},{name:"Solaris",search:ze("sunos"),versionRegexes:[]},{name:"FreeBSD",search:ze("freebsd"),versionRegexes:[]}],Ve={browsers:y.constant(_e),oses:y.constant(He)},Ue=function(e){var t,n,r,o,i,u,a,c,l,s,f,d=Ve.browsers(),m=Ve.oses(),g=ke(d,e).fold(we.unknown,we.nu),p=Ne(m,e).fold(Ae.unknown,Ae.nu);return{browser:g,os:p,deviceType:(n=g,r=e,o=(t=p).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,u=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,c=o||u||a&&!0===/mobile/i.test(r),l=t.isiOS()||t.isAndroid(),s=l&&!c,f=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:y.constant(o),isiPhone:y.constant(i),isTablet:y.constant(c),isPhone:y.constant(s),isTouch:y.constant(l),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:y.constant(f)})}},Ge={detect:fe(function(){var e=navigator.userAgent;return Ue(e)})},Xe=function(e,t){return e.dom()===t.dom()},Ye=Ge.detect().browser.isIE()?function(e,t){return se(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Ke={eq:Xe,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return E.exists(t,y.curry(Xe,e))},contains:Ye,is:ne.is},$e=function(e){return Y.fromDom(e.dom().ownerDocument)},Je=function(e){var t=e.dom();return x.from(t.parentNode).map(Y.fromDom)},Qe=function(e){var t=e.dom();return x.from(t.previousSibling).map(Y.fromDom)},Ze=function(e){var t=e.dom();return x.from(t.nextSibling).map(Y.fromDom)},et=function(e){var t=e.dom();return E.map(t.childNodes,Y.fromDom)},tt=function(e,t){var n=e.dom().childNodes;return x.from(n[t]).map(Y.fromDom)},nt=F.immutable("element","offset"),rt={owner:$e,defaultView:function(e){var t=e.dom().ownerDocument.defaultView;return Y.fromDom(t)},documentElement:function(e){var t=$e(e);return Y.fromDom(t.dom().documentElement)},parent:Je,findIndex:function(n){return Je(n).bind(function(e){var t=et(e);return E.findIndex(t,function(e){return Ke.eq(n,e)})})},parents:function(e,t){for(var n=g.isFunction(t)?t:y.constant(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=Y.fromDom(i);if(o.push(u),!0===n(u))break;r=i}return o},siblings:function(t){return Je(t).map(et).map(function(e){return E.filter(e,function(e){return!Ke.eq(t,e)})}).getOr([])},prevSibling:Qe,offsetParent:function(e){var t=e.dom();return x.from(t.offsetParent).map(Y.fromDom)},prevSiblings:function(e){return E.reverse(re(e,Qe))},nextSibling:Ze,nextSiblings:function(e){return re(e,Ze)},children:et,child:tt,firstChild:function(e){return tt(e,0)},lastChild:function(e){return tt(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=et(e);return 0<n.length&&t<n.length?nt(n[t],0):nt(e,t)}},ot=function(e,t,n){return E.bind(rt.children(e),function(e){return ne.is(e,t)?n(e)?[e]:[]:ot(e,t,n)})},it={firstLayer:function(e,t){return ot(e,t,y.constant(!0))},filterFirstLayer:ot},ut=function(e){return e.dom().nodeName.toLowerCase()},at=function(e){return e.dom().nodeType},ct=function(t){return function(e){return at(e)===t}},lt=ct(J),st=ct(Q),ft=ct($),dt={name:ut,type:at,value:function(e){return e.dom().nodeValue},isElement:lt,isText:st,isDocument:ft,isComment:function(e){return at(e)===K||"#comment"===ut(e)}},mt=function(e,t,n){if(!(g.isString(n)||g.isBoolean(n)||g.isNumber(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},gt=function(e,t,n){mt(e.dom(),t,n)},pt=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},ht=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},vt={clone:function(e){return E.foldl(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},set:gt,setAll:function(e,t){var n=e.dom();M.each(t,function(e,t){mt(n,t,e)})},get:pt,has:ht,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(o,i,e){dt.isElement(o)&&dt.isElement(i)&&E.each(e,function(e){var t,n,r;n=i,ht(t=o,r=e)&&!ht(n,r)&&gt(n,r,pt(t,r))})}},bt=fe(function(){return wt(Y.fromDom(document))}),wt=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return Y.fromDom(t)},yt={body:bt,getBody:wt,inBody:function(e){var t=dt.isText(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},xt=function(e,t){var n=[];return E.each(rt.children(e),function(e){t(e)&&(n=n.concat([e])),n=n.concat(xt(e,t))}),n},St={all:function(e){return xt(yt.body(),e)},ancestors:function(e,t,n){return E.filter(rt.parents(e,n),t)},siblings:function(e,t){return E.filter(rt.siblings(e),t)},children:function(e,t){return E.filter(rt.children(e),t)},descendants:xt},Ct={all:function(e){return ne.all(e)},ancestors:function(e,t,n){return St.ancestors(e,function(e){return ne.is(e,t)},n)},siblings:function(e,t){return St.siblings(e,function(e){return ne.is(e,t)})},children:function(e,t){return St.children(e,function(e){return ne.is(e,t)})},descendants:function(e,t){return ne.all(t,e)}};function Rt(e,t,n,r,o){return e(n,r)?x.some(n):g.isFunction(o)&&o(n)?x.none():t(n,r,o)}var Tt,At,Dt,kt,Nt,Et=function(e,t,n){for(var r=e.dom(),o=g.isFunction(n)?n:y.constant(!1);r.parentNode;){r=r.parentNode;var i=Y.fromDom(r);if(t(i))return x.some(i);if(o(i))break}return x.none()},Ot=function(e,t){return E.find(e.dom().childNodes,y.compose(t,Y.fromDom)).map(Y.fromDom)},Bt=function(e,r){var o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(Y.fromDom(e.childNodes[t])))return x.some(Y.fromDom(e.childNodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return x.none()};return o(e.dom())},Pt={first:function(e){return Bt(yt.body(),e)},ancestor:Et,closest:function(e,t,n){return Rt(function(e){return t(e)},Et,e,t,n)},sibling:function(t,n){var e=t.dom();return e.parentNode?Ot(Y.fromDom(e.parentNode),function(e){return!Ke.eq(t,e)&&n(e)}):x.none()},child:Ot,descendant:Bt},It=function(e,t,n){return Pt.ancestor(e,function(e){return ne.is(e,t)},n)},Wt={first:function(e){return ne.one(e)},ancestor:It,sibling:function(e,t){return Pt.sibling(e,function(e){return ne.is(e,t)})},child:function(e,t){return Pt.child(e,function(e){return ne.is(e,t)})},descendant:function(e,t){return ne.one(t,e)},closest:function(e,t,n){return Rt(ne.is,It,e,t,n)}},Mt=function(e,t,n){var r=n!==undefined?n:y.constant(!1);return r(t)?x.none():E.contains(e,dt.name(t))?x.some(t):Wt.ancestor(t,e.join(","),function(e){return ne.is(e,"table")||r(e)})},Lt=function(t,e){return rt.parent(e).map(function(e){return Ct.children(e,t)})},qt=y.curry(Lt,"th,td"),Ft=y.curry(Lt,"tr"),jt=function(e,t){return parseInt(vt.get(e,t),10)},zt={cell:function(e,t){return Mt(["td","th"],e,t)},firstCell:function(e){return Wt.descendant(e,"th,td")},cells:function(e){return it.firstLayer(e,"th,td")},neighbourCells:qt,table:function(e,t){return Wt.closest(e,"table",t)},row:function(e,t){return Mt(["tr"],e,t)},rows:function(e){return it.firstLayer(e,"tr")},notCell:function(e,t){return Mt(["caption","tr","tbody","tfoot","thead"],e,t)},neighbourRows:Ft,attr:jt,grid:function(e,t,n){var r=jt(e,t),o=jt(e,n);return G.grid(r,o)}},_t=function(e){var t=zt.rows(e);return E.map(t,function(e){var t=e,n=rt.parent(t).bind(function(e){var t=dt.name(e);return"tfoot"===t||"thead"===t||"tbody"===t?t:"tbody"}),r=E.map(zt.cells(e),function(e){var t=vt.has(e,"rowspan")?parseInt(vt.get(e,"rowspan"),10):1,n=vt.has(e,"colspan")?parseInt(vt.get(e,"colspan"),10):1;return G.detail(e,t,n)});return G.rowdata(t,r,n)})},Ht=function(e,n){return E.map(e,function(e){var t=E.map(zt.cells(e),function(e){var t=vt.has(e,"rowspan")?parseInt(vt.get(e,"rowspan"),10):1,n=vt.has(e,"colspan")?parseInt(vt.get(e,"colspan"),10):1;return G.detail(e,t,n)});return G.rowdata(e,t,n.section())})},Vt=function(e,t){return e+","+t},Ut=function(e,t){var n=E.bind(e.all(),function(e){return e.cells()});return E.filter(n,t)},Gt={generate:function(e){var s={},t=[],n=e.length,f=0;E.each(e,function(e,c){var l=[];E.each(e.cells(),function(e,t){for(var n=0;s[Vt(c,n)]!==undefined;)n++;for(var r=G.extended(e.element(),e.rowspan(),e.colspan(),c,n),o=0;o<e.colspan();o++)for(var i=0;i<e.rowspan();i++){var u=n+o,a=Vt(c+i,u);s[a]=r,f=Math.max(f,u+1)}l.push(r)}),t.push(G.rowdata(e.element(),l,e.section()))});var r=G.grid(n,f);return{grid:y.constant(r),access:y.constant(s),all:y.constant(t)}},getAt:function(e,t,n){var r=e.access()[Vt(t,n)];return r!==undefined?x.some(r):x.none()},findItem:function(e,t,n){var r=Ut(e,function(e){return n(t,e.element())});return 0<r.length?x.some(r[0]):x.none()},filterItems:Ut,justCells:function(e){var t=E.map(e.all(),function(e){return e.cells()});return E.flatten(t)}},Xt={isSupported:function(e){return e.style!==undefined}},Yt=function(e,t,n){if(!g.isString(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);Xt.isSupported(e)&&e.style.setProperty(t,n)},Kt=function(e,t){Xt.isSupported(e)&&e.style.removeProperty(t)},$t=function(e,t,n){var r=e.dom();Yt(r,t,n)},Jt=function(e,t){return Xt.isSupported(e)?e.style.getPropertyValue(t):""},Qt=function(e,t){var n=e.dom(),r=Jt(n,t);return x.from(r).filter(function(e){return 0<e.length})},Zt={copy:function(e,t){var n=e.dom(),r=t.dom();Xt.isSupported(n)&&Xt.isSupported(r)&&(r.style.cssText=n.style.cssText)},set:$t,preserve:function(e,t){var n=vt.get(e,"style"),r=t(e);return(n===undefined?vt.remove:vt.set)(e,"style",n),r},setAll:function(e,t){var n=e.dom();M.each(t,function(e,t){Yt(n,t,e)})},setOptions:function(e,t){var n=e.dom();M.each(t,function(e,t){e.fold(function(){Kt(n,t)},function(e){Yt(n,t,e)})})},remove:function(e,t){var n=e.dom();Kt(n,t),vt.has(e,"style")&&""===Fe.trim(vt.get(e,"style"))&&vt.remove(e,"style")},get:function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||yt.inBody(e)?r:Jt(n,t);return null===o?undefined:o},getRaw:Qt,getAllRaw:function(e){var t={},n=e.dom();if(Xt.isSupported(n))for(var r=0;r<n.style.length;r++){var o=n.style.item(r);t[o]=n.style[o]}return t},isValidValue:function(e,t,n){var r=Y.fromTag(e);return $t(r,t,n),Qt(r,t).isSome()},reflow:function(e){return e.dom().offsetWidth},transfer:function(r,o,e){dt.isElement(r)&&dt.isElement(o)&&E.each(e,function(e){var t,n;t=o,Qt(r,n=e).each(function(e){Qt(t,n).isNone()&&$t(t,n,e)})})}},en=function(t,n){rt.parent(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})},tn=function(e,t){e.dom().appendChild(t.dom())},nn={before:en,after:function(e,t){rt.nextSibling(e).fold(function(){rt.parent(e).each(function(e){tn(e,t)})},function(e){en(e,t)})},prepend:function(t,n){rt.firstChild(t).fold(function(){tn(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},append:tn,appendAt:function(e,t,n){rt.child(e,n).fold(function(){tn(e,t)},function(e){en(e,t)})},wrap:function(e,t){en(e,t),tn(t,e)}},rn={before:function(t,e){E.each(e,function(e){nn.before(t,e)})},after:function(r,o){E.each(o,function(e,t){var n=0===t?r:o[t-1];nn.after(n,e)})},prepend:function(t,e){E.each(e.slice().reverse(),function(e){nn.prepend(t,e)})},append:function(t,e){E.each(e,function(e){nn.append(t,e)})}},on=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},un={empty:function(e){e.dom().textContent="",E.each(rt.children(e),function(e){on(e)})},remove:on,unwrap:function(e){var t=rt.children(e);0<t.length&&rn.before(e,t),on(e)}},an=F.immutable("minRow","minCol","maxRow","maxCol"),cn=function(e,t){var n,i,r,u,a,c,l,o,s,f,d=function(e){return ne.is(e.element(),t)},m=_t(e),g=Gt.generate(m),p=(i=d,r=(n=g).grid().columns(),u=n.grid().rows(),a=r,l=c=0,M.each(n.access(),function(e){if(i(e)){var t=e.row(),n=t+e.rowspan()-1,r=e.column(),o=r+e.colspan()-1;t<u?u=t:c<n&&(c=n),r<a?a=r:l<o&&(l=o)}}),an(u,a,c,l)),h="th:not("+t+"),td:not("+t+")",v=it.filterFirstLayer(e,"th,td",function(e){return ne.is(e,h)});return E.each(v,un.remove),function(e,t,n,r){for(var o,i,u,a=t.grid().columns(),c=t.grid().rows(),l=0;l<c;l++)for(var s=!1,f=0;f<a;f++)l<n.minRow()||l>n.maxRow()||f<n.minCol()||f>n.maxCol()||(Gt.getAt(t,l,f).filter(r).isNone()?(o=s,i=e[l].element(),u=Y.fromTag("td"),nn.append(u,Y.fromTag("br")),(o?nn.append:nn.prepend)(i,u)):s=!0)}(m,g,p,d),o=e,s=p,f=E.filter(it.firstLayer(o,"tr"),function(e){return 0===e.dom().childElementCount}),E.each(f,un.remove),s.minCol()!==s.maxCol()&&s.minRow()!==s.maxRow()||E.each(it.firstLayer(o,"th,td"),function(e){vt.remove(e,"rowspan"),vt.remove(e,"colspan")}),vt.remove(o,"width"),vt.remove(o,"height"),Zt.remove(o,"width"),Zt.remove(o,"height"),e},ln=function(e,t){return Y.fromDom(e.dom().cloneNode(t))},sn=function(e){return ln(e,!0)},fn=function(e,t){var n=Y.fromTag(t),r=vt.clone(e);return vt.setAll(n,r),n},dn=function(e){return ln(e,!1)},mn=sn,gn=function(e,t){var n=fn(e,t),r=rt.children(sn(e));return rn.append(n,r),n},pn=(Tt=dt.isText,At="text",Dt=function(e){return Tt(e)?x.from(e.dom().nodeValue):x.none()},kt=Ge.detect().browser,{get:function(e){if(!Tt(e))throw new Error("Can only get "+At+" value of a "+At+" node");return Nt(e).getOr("")},getOption:Nt=kt.isIE()&&10===kt.version.major?function(e){try{return Dt(e)}catch(t){return x.none()}}:Dt,set:function(e,t){if(!Tt(e))throw new Error("Can only set raw "+At+" value of a "+At+" node");e.dom().nodeValue=t}}),hn={get:function(e){return pn.get(e)},getOption:function(e){return pn.getOption(e)},set:function(e,t){pn.set(e,t)}},vn=function(e){return"img"===dt.name(e)?1:hn.getOption(e).fold(function(){return rt.children(e).length},function(e){return e.length})},bn=["img","br"],wn=vn,yn=function(e){var t;return t=e,hn.getOption(t).filter(function(e){return 0!==e.trim().length||-1<e.indexOf("\xa0")}).isSome()||E.contains(bn,dt.name(e))},xn=function(e,i){var u=function(e){for(var t=rt.children(e),n=t.length-1;0<=n;n--){var r=t[n];if(i(r))return x.some(r);var o=u(r);if(o.isSome())return o}return x.none()};return u(e)},Sn={first:function(e){return Pt.descendant(e,yn)},last:function(e){return xn(e,yn)}},Cn=function(){var e=Y.fromTag("td");return nn.append(e,Y.fromTag("br")),e},Rn=function(e,t,n){var r=gn(e,t);return M.each(n,function(e,t){null===e?vt.remove(r,t):vt.set(r,t,e)}),r},Tn=function(e){return e},An=function(e){return function(){return Y.fromTag("tr",e.dom())}},Dn=function(c,e,l){return{row:An(e),cell:function(e){var r,o,i,t=rt.owner(e.element()),n=Y.fromTag(dt.name(e.element()),t.dom()),u=l.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),a=0<u.length?(r=e.element(),o=n,i=u,Sn.first(r).map(function(e){var t=i.join(","),n=Ct.ancestors(e,t,function(e){return Ke.eq(e,r)});return E.foldr(n,function(e,t){var n=dn(t);return nn.append(e,n),n},o)}).getOr(o)):n;return nn.append(a,Y.fromTag("br")),Zt.copy(e.element(),n),Zt.remove(n,"height"),1!==e.colspan()&&Zt.remove(e.element(),"width"),c(e.element(),n),n},replace:Rn,gap:Cn}},kn=function(e){return{row:An(e),cell:Cn,replace:Tn,gap:Cn}},Nn=function(e,t){var n=(t||document).createElement("div");return n.innerHTML=e,rt.children(Y.fromDom(n))},En=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"];function On(){return{up:y.constant({selector:Wt.ancestor,closest:Wt.closest,predicate:Pt.ancestor,all:rt.parents}),down:y.constant({selector:Ct.descendants,predicate:St.descendants}),styles:y.constant({get:Zt.get,getRaw:Zt.getRaw,set:Zt.set,remove:Zt.remove}),attrs:y.constant({get:vt.get,set:vt.set,remove:vt.remove,copyTo:function(e,t){var n=vt.clone(e);vt.setAll(t,n)}}),insert:y.constant({before:nn.before,after:nn.after,afterAll:rn.after,append:nn.append,appendAll:rn.append,prepend:nn.prepend,wrap:nn.wrap}),remove:y.constant({unwrap:un.unwrap,remove:un.remove}),create:y.constant({nu:Y.fromTag,clone:function(e){return Y.fromDom(e.dom().cloneNode(!1))},text:Y.fromText}),query:y.constant({comparePosition:function(e,t){return e.dom().compareDocumentPosition(t.dom())},prevSibling:rt.prevSibling,nextSibling:rt.nextSibling}),property:y.constant({children:rt.children,name:dt.name,parent:rt.parent,isText:dt.isText,isComment:dt.isComment,isElement:dt.isElement,getText:hn.get,setText:hn.set,isBoundary:function(e){return!!dt.isElement(e)&&("body"===dt.name(e)||E.contains(En,dt.name(e)))},isEmptyTag:function(e){return!!dt.isElement(e)&&E.contains(["br","img","hr","input"],dt.name(e))}}),eq:Ke.eq,is:Ke.is}}F.immutable("left","right");var Bn=function(r,o,e,t){var n=o(r,e);return E.foldr(t,function(e,t){var n=o(r,t);return Pn(r,e,n)},n)},Pn=function(t,e,n){return e.bind(function(e){return n.filter(y.curry(t.eq,e))})},In=function(e,t,n){return 0<n.length?Bn(e,t,(r=n)[0],r.slice(1)):x.none();var r},Wn=function(e,t){return y.curry(e.eq,t)},Mn=function(t,e,n,r){var o=r!==undefined?r:y.constant(!1),i=[e].concat(t.up().all(e)),u=[n].concat(t.up().all(n)),a=function(t){return E.findIndex(t,o).fold(function(){return t},function(e){return t.slice(0,e+1)})},c=a(i),l=a(u),s=E.find(c,function(e){return E.exists(l,Wn(t,e))});return{firstpath:y.constant(c),secondpath:y.constant(l),shared:y.constant(s)}},Ln=Mn,qn=function(e,t,n){return In(e,t,n)},Fn=function(e,t,n,r){return Ln(e,t,n,r)},jn=On(),zn=function(n,e){return qn(jn,function(e,t){return n(t)},e)},_n=function(e,t,n){return Fn(jn,e,t,n)},Hn=function(e,t){return t.column()>=e.startCol()&&t.column()+t.colspan()-1<=e.finishCol()&&t.row()>=e.startRow()&&t.row()+t.rowspan()-1<=e.finishRow()},Vn=function(e,t){var n=t.column(),r=t.column()+t.colspan()-1,o=t.row(),i=t.row()+t.rowspan()-1;return n<=e.finishCol()&&r>=e.startCol()&&o<=e.finishRow()&&i>=e.startRow()},Un=function(e,t){for(var n=!0,r=y.curry(Hn,t),o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)n=n&&Gt.getAt(e,o,i).exists(r);return n?x.some(t):x.none()},Gn=function(e,t,n){var r=Gt.findItem(e,t,Ke.eq),o=Gt.findItem(e,n,Ke.eq);return r.bind(function(r){return o.map(function(e){return t=r,n=e,G.bounds(Math.min(t.row(),n.row()),Math.min(t.column(),n.column()),Math.max(t.row()+t.rowspan()-1,n.row()+n.rowspan()-1),Math.max(t.column()+t.colspan()-1,n.column()+n.colspan()-1));var t,n})})},Xn=Gn,Yn=function(t,e,n){return Gn(t,e,n).bind(function(e){return Un(t,e)})},Kn=function(r,e,o,i){return Gt.findItem(r,e,Ke.eq).bind(function(e){var t=0<o?e.row()+e.rowspan()-1:e.row(),n=0<i?e.column()+e.colspan()-1:e.column();return Gt.getAt(r,t+o,n+i).map(function(e){return e.element()})})},$n=function(n,e,t){return Xn(n,e,t).map(function(e){var t=Gt.filterItems(n,y.curry(Vn,e));return E.map(t,function(e){return e.element()})})},Jn=function(e,t){return Gt.findItem(e,t,function(e,t){return Ke.contains(t,e)}).bind(function(e){return e.element()})},Qn=function(e){var t=_t(e);return Gt.generate(t)},Zn=function(n,r,o){return zt.table(n).bind(function(e){var t=Qn(e);return Kn(t,n,r,o)})},er=function(e,t,n){var r=Qn(e);return $n(r,t,n)},tr=function(e,t,n,r,o){var i=Qn(e),u=Ke.eq(e,n)?t:Jn(i,t),a=Ke.eq(e,o)?r:Jn(i,r);return $n(i,u,a)},nr=function(e,t,n){var r=Qn(e);return Yn(r,t,n)},rr=function(e,t){return Wt.ancestor(e,"table")},or=F.immutableBag(["boxes","start","finish"],[]),ir=function(a,c,r){var l=function(t){return function(e){return r(e)||Ke.eq(e,t)}};return Ke.eq(a,c)?x.some(or({boxes:x.some([a]),start:a,finish:c})):rr(a).bind(function(u){return rr(c).bind(function(i){if(Ke.eq(u,i))return x.some(or({boxes:er(u,a,c),start:a,finish:c}));if(Ke.contains(u,i)){var e=0<(t=Ct.ancestors(c,"td,th",l(u))).length?t[t.length-1]:c;return x.some(or({boxes:tr(u,a,u,c,i),start:a,finish:e}))}if(Ke.contains(i,u)){var t,n=0<(t=Ct.ancestors(a,"td,th",l(i))).length?t[t.length-1]:a;return x.some(or({boxes:tr(i,a,u,c,i),start:a,finish:n}))}return _n(a,c).shared().bind(function(e){return Wt.closest(e,"table",r).bind(function(e){var t=Ct.ancestors(c,"td,th",l(e)),n=0<t.length?t[t.length-1]:c,r=Ct.ancestors(a,"td,th",l(e)),o=0<r.length?r[r.length-1]:a;return x.some(or({boxes:tr(e,a,u,c,i),start:o,finish:n}))})})})})},ur={identify:ir,retrieve:function(e,t){var n=Ct.descendants(e,t);return 0<n.length?x.some(n):x.none()},shiftSelection:function(e,t,n,r,o){return(i=e,u=o,E.find(i,function(e){return ne.is(e,u)})).bind(function(e){return Zn(e,t,n).bind(function(e){return t=e,n=r,Wt.ancestor(t,"table").bind(function(e){return Wt.descendant(e,n).bind(function(e){return ir(e,t).bind(function(t){return t.boxes().map(function(e){return{boxes:y.constant(e),start:y.constant(t.start()),finish:y.constant(t.finish())}})})})});var t,n})});var i,u},getEdges:function(e,t,r){return Wt.descendant(e,t).bind(function(n){return Wt.descendant(e,r).bind(function(t){return zn(rr,[n,t]).map(function(e){return{first:y.constant(n),last:y.constant(t),table:y.constant(e)}})})})}},ar=function(e,t){return ur.retrieve(e,t)},cr=function(o,e,t){return ur.getEdges(o,e,t).bind(function(n){var e=function(e){return Ke.eq(o,e)},t=Wt.ancestor(n.first(),"thead,tfoot,tbody,table",e),r=Wt.ancestor(n.last(),"thead,tfoot,tbody,table",e);return t.bind(function(t){return r.bind(function(e){return Ke.eq(t,e)?nr(n.table(),n.first(),n.last()):x.none()})})})},lr="data-mce-selected",sr="data-mce-first-selected",fr="data-mce-last-selected",dr={selected:y.constant(lr),selectedSelector:y.constant("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:y.constant("[data-mce-selected]"),firstSelected:y.constant(sr),firstSelectedSelector:y.constant("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:y.constant(fr),lastSelectedSelector:y.constant("td[data-mce-last-selected],th[data-mce-last-selected]")},mr=function(u){if(!g.isArray(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var a=[],n={};return E.each(u,function(e,r){var t=M.keys(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!g.isArray(i))throw new Error("case arguments must be an array");a.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=M.keys(e);if(a.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+a.join(",")+"\nActual: "+t.join(","));if(!E.forall(a,function(e){return E.contains(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+a.join(", "));return e[o].apply(null,n)},log:function(e){console.log(e,{constructors:a,constructor:o,params:n})}}}}),n},gr=mr([{none:[]},{multiple:["elements"]},{single:["selection"]}]),pr={cata:function(e,t,n,r){return e.fold(t,n,r)},none:gr.none,multiple:gr.multiple,single:gr.single},hr=function(e,t){return pr.cata(t.get(),y.constant([]),y.identity,y.constant([e]))},vr=function(n,e){return pr.cata(e.get(),x.none,function(t,e){return 0===t.length?x.none():cr(n,dr.firstSelectedSelector(),dr.lastSelectedSelector()).bind(function(e){return 1<t.length?x.some({bounds:y.constant(e),cells:y.constant(t)}):x.none()})},x.none)},br=function(e,t){var n=hr(e,t);return 0<n.length&&E.forall(n,function(e){return vt.has(e,"rowspan")&&1<parseInt(vt.get(e,"rowspan"),10)||vt.has(e,"colspan")&&1<parseInt(vt.get(e,"colspan"),10)})?x.some(n):x.none()},wr=hr,yr=function(e){return{element:y.constant(e),mergable:x.none,unmergable:x.none,selection:y.constant([e])}},xr=F.immutable("element","clipboard","generators"),Sr={noMenu:yr,forMenu:function(e,t,n){return{element:y.constant(n),mergable:y.constant(vr(t,e)),unmergable:y.constant(br(n,e)),selection:y.constant(wr(n,e))}},notCell:function(e){return yr(e)},paste:xr,pasteRows:function(e,t,n,r,o){return{element:y.constant(n),mergable:x.none,unmergable:x.none,selection:y.constant(wr(n,e)),clipboard:y.constant(r),generators:y.constant(o)}}},Cr={registerEvents:function(a,e,c,l){a.on("BeforeGetContent",function(n){!0===n.selection&&pr.cata(e.get(),y.noop,function(e){var t;n.preventDefault(),(t=e,zt.table(t[0]).map(mn).map(function(e){return[cn(e,dr.attributeSelector())]})).each(function(e){n.content=E.map(e,function(e){return t=e,a.selection.serializer.serialize(t.dom(),{});var t}).join("")})},y.noop)}),a.on("BeforeSetContent",function(u){!0===u.selection&&!0===u.paste&&x.from(a.dom.getParent(a.selection.getStart(),"th,td")).each(function(e){var i=Y.fromDom(e);zt.table(i).bind(function(t){var e=E.filter(Nn(u.content),function(e){return"meta"!==dt.name(e)});if(1===e.length&&"table"===dt.name(e[0])){u.preventDefault();var n=Y.fromDom(a.getDoc()),r=kn(n),o=Sr.paste(i,e[0],r);c.pasteCells(t,o).each(function(e){a.selection.setRng(e),a.focus(),l.clear(t)})}})})})}};function Rr(r,o){var e=function(e){var t=o(e);if(t<=0||null===t){var n=Zt.get(e,r);return parseFloat(n)||0}return t},i=function(o,e){return E.foldl(e,function(e,t){var n=Zt.get(o,t),r=n===undefined?0:parseInt(n,10);return isNaN(r)?e:e+r},0)};return{set:function(e,t){if(!g.isNumber(t)&&!t.match(/^[0-9]+$/))throw r+".set accepts only positive integer values. Value was "+t;var n=e.dom();Xt.isSupported(n)&&(n.style[r]=t+"px")},get:e,getOuter:e,aggregate:i,max:function(e,t,n){var r=i(e,n);return r<t?t-r:0}}}var Tr=Rr("height",function(e){return yt.inBody(e)?e.dom().getBoundingClientRect().height:e.dom().offsetHeight}),Ar=function(e){return Tr.get(e)},Dr=function(e){return Tr.getOuter(e)},kr=Rr("width",function(e){return e.dom().offsetWidth}),Nr=function(e){return kr.get(e)},Er=function(e){return kr.getOuter(e)},Or=Ge.detect(),Br=function(e,t,n){return r=Zt.get(e,t),o=n,i=parseFloat(r),isNaN(i)?o:i;var r,o,i},Pr=function(e){return Or.browser.isIE()||Or.browser.isEdge()?(n=Br(t=e,"padding-top",0),r=Br(t,"padding-bottom",0),o=Br(t,"border-top-width",0),i=Br(t,"border-bottom-width",0),u=t.dom().getBoundingClientRect().height,"border-box"===Zt.get(t,"box-sizing")?u:u-n-r-(o+i)):Br(e,"height",Ar(e));var t,n,r,o,i,u},Ir=/(\d+(\.\d+)?)(\w|%)*/,Wr=/(\d+(\.\d+)?)%/,Mr=/(\d+(\.\d+)?)px|em/,Lr=function(e,t){Zt.set(e,"height",t+"px")},qr=function(e,t,n,r){var o,i,u,a,c,l=parseInt(e,10);return Fe.endsWith(e,"%")&&"table"!==dt.name(t)?(o=t,i=l,u=n,a=r,c=zt.table(o).map(function(e){var t=u(e);return Math.floor(i/100*t)}).getOr(i),a(o,c),c):l},Fr=function(e){var t,n=(t=e,Zt.getRaw(t,"height").getOrThunk(function(){return Pr(t)+"px"}));return n?qr(n,e,Ar,Lr):Ar(e)},jr=function(e,t){return vt.has(e,t)?parseInt(vt.get(e,t),10):1},zr=function(e){return Zt.getRaw(e,"width").fold(function(){return x.from(vt.get(e,"width"))},function(e){return x.some(e)})},_r=function(e,t){return e/t.pixelWidth()*100},Hr={percentageBasedSizeRegex:y.constant(Wr),pixelBasedSizeRegex:y.constant(Mr),setPixelWidth:function(e,t){Zt.set(e,"width",t+"px")},setPercentageWidth:function(e,t){Zt.set(e,"width",t+"%")},setHeight:Lr,getPixelWidth:function(t,n){return zr(t).fold(function(){var e=Nr(t);return parseInt(e,10)},function(e){return function(e,t,n){if(Mr.test(t)){var r=Mr.exec(t);return parseInt(r[1],10)}if(Wr.test(t)){var o=Wr.exec(t),i=parseFloat(o[1]);return i/100*n.pixelWidth()}var u=Nr(e);return parseInt(u,10)}(t,e,n)})},getPercentageWidth:function(n,r){return zr(n).fold(function(){var e=Nr(n),t=parseInt(e,10);return _r(t,r)},function(e){return function(e,t,n){if(Wr.test(t)){var r=Wr.exec(t);return parseFloat(r[1])}var o=Nr(e),i=parseInt(o,10);return _r(i,n)}(n,e,r)})},getGenericWidth:function(e){return zr(e).bind(function(e){if(Ir.test(e)){var t=Ir.exec(e);return x.some({width:y.constant(t[1]),unit:y.constant(t[3])})}return x.none()})},setGenericWidth:function(e,t,n){Zt.set(e,"width",t+n)},getHeight:function(e){return n="rowspan",Fr(t=e)/jr(t,n);var t,n},getRawWidth:zr},Vr=function(n,r){Hr.getGenericWidth(n).each(function(e){var t=e.width()/2;Hr.setGenericWidth(n,t,e.unit()),Hr.setGenericWidth(r,t,e.unit())})},Ur=function(e,t){var n=t||Y.fromDom(document.documentElement);return Pt.ancestor(e,y.curry(Ke.eq,n)).isSome()},Gr=function(e){var t=e.dom();return t===t.window?e:dt.isDocument(e)?t.defaultView||t.parentWindow:null},Xr=function(n,r){return{left:y.constant(n),top:y.constant(r),translate:function(e,t){return Xr(n+e,r+t)}}},Yr=function(e,t){return e!==undefined?e:t!==undefined?t:0},Kr=function(e){var t,n=e.dom(),r=n.ownerDocument,o=r.body,i=Y.fromDom(r.documentElement);return o===n?Xr(o.offsetLeft,o.offsetTop):Ur(e,i)?(t=n.getBoundingClientRect(),Xr(t.left,t.top)):Xr(0,0)},$r=function(e){var t=e.dom().ownerDocument,n=t.body,r=Gr(Y.fromDom(t)),o=t.documentElement,i=Yr(r.pageYOffset,o.scrollTop),u=Yr(r.pageXOffset,o.scrollLeft),a=Yr(o.clientTop,n.clientTop),c=Yr(o.clientLeft,n.clientLeft);return Kr(e).translate(u-c,i-a)},Jr=F.immutable("row","y"),Qr=F.immutable("col","x"),Zr=function(e){return $r(e).left()+Er(e)},eo=function(e){return $r(e).left()},to=function(e,t){return Qr(e,eo(t))},no=function(e,t){return Qr(e,Zr(t))},ro=function(e){return $r(e).top()},oo=function(n,t,r){if(0===r.length)return[];var e=E.map(r.slice(1),function(e,t){return e.map(function(e){return n(t,e)})}),o=r[r.length-1].map(function(e){return t(r.length-1,e)});return e.concat([o])},io={delta:y.identity,positions:y.curry(oo,function(e,t){return Jr(e,ro(t))},function(e,t){return Jr(e,ro(t)+Dr(t))}),edge:ro},uo={delta:y.identity,edge:eo,positions:y.curry(oo,to,no)},ao={height:io,rtl:{delta:function(e,t){return-e},edge:Zr,positions:y.curry(oo,no,to)},ltr:uo},co={ltr:ao.ltr,rtl:ao.rtl};function lo(t){var n=function(e){return t(e).isRtl()?co.rtl:co.ltr};return{delta:function(e,t){return n(t).delta(e,t)},edge:function(e){return n(e).edge(e)},positions:function(e,t){return n(t).positions(e,t)}}}var so=function(e){var t=_t(e);return Gt.generate(t).grid()},fo=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return fo(n())}}},mo=function(e,t){return go(e,t,{validate:g.isFunction,label:"function"})},go=function(r,o,i){if(0===o.length)throw new Error("You must specify at least one required field.");return q.validateStrArr("required",o),q.checkDupes(o),function(t){var n=M.keys(t);E.forall(o,function(e){return E.contains(n,e)})||q.reqMessage(o,n),r(o,n);var e=E.filter(o,function(e){return!i.validate(t[e],e)});return 0<e.length&&q.invalidTypeMessage(e,i.label),t}},po=y.noop,ho={exactly:y.curry(mo,function(t,e){var n=E.filter(e,function(e){return!E.contains(t,e)});0<n.length&&q.unsuppMessage(n)}),ensure:y.curry(mo,po),ensureWith:y.curry(go,po)},vo=function(e){var t=vt.has(e,"colspan")?parseInt(vt.get(e,"colspan"),10):1,n=vt.has(e,"rowspan")?parseInt(vt.get(e,"rowspan"),10):1;return{element:y.constant(e),colspan:y.constant(t),rowspan:y.constant(n)}},bo=ho.exactly(["cell","row","replace","gap"]),wo=function(r,e){bo(r);var n=fo(x.none()),o=e!==undefined?e:vo,i=function(e){var t,n=o(e);return t=n,r.cell(t)},u=function(e){var t=i(e);return n.get().isNone()&&n.set(x.some(t)),a=x.some({item:e,replacement:t}),t},a=x.none();return{getOrInit:function(t,n){return a.fold(function(){return u(t)},function(e){return n(t,e.item)?e.replacement:u(t)})},cursor:n.get}},yo=function(o,a){return function(n){var r=fo(x.none());bo(n);var i=[],u=function(e){var t=n.replace(e,a,{scope:o});return i.push({item:e,sub:t}),r.get().isNone()&&r.set(x.some(t)),t};return{replaceOrInit:function(t,n){return(r=t,o=n,E.find(i,function(e){return o(e.item,r)})).fold(function(){return u(t)},function(e){return n(t,e.item)?e.sub:u(t)});var r,o},cursor:r.get}}},xo=function(n){bo(n);var e=fo(x.none());return{combine:function(t){return e.get().isNone()&&e.set(x.some(t)),function(){var e=n.cell({element:y.constant(t),colspan:y.constant(1),rowspan:y.constant(1)});return Zt.remove(e,"width"),Zt.remove(t,"width"),e}},cursor:e.get}},So=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],Co=function(e,t){var n=e.property().name(t);return E.contains(So,n)},Ro=function(e,t){return E.contains(["br","img","hr","input"],e.property().name(t))},To=Co,Ao=function(e,t){var n=e.property().name(t);return E.contains(["ol","ul"],n)},Do=Ro,ko=On(),No=function(e){return To(ko,e)},Eo=function(e){return Ao(ko,e)},Oo=function(e){return Do(ko,e)},Bo=function(e){var t,i=function(e){return"br"===dt.name(e)},r=function(o){return Sn.last(o).bind(function(n){var e,r=(e=n,rt.nextSibling(e).map(function(e){return!!No(e)||(Oo(e)?"img"!==dt.name(e):void 0)}).getOr(!1));return rt.parent(n).map(function(e){return!0===r||(t=e,"li"===dt.name(t)||Pt.ancestor(t,Eo).isSome())||i(n)||No(e)&&!Ke.eq(o,e)?[]:[Y.fromTag("br")];var t})}).getOr([])},n=0===(t=E.bind(e,function(e){var t,n=rt.children(e);return t=n,E.forall(t,function(e){return i(e)||dt.isText(e)&&0===hn.get(e).trim().length})?[]:n.concat(r(e))})).length?[Y.fromTag("br")]:t;un.empty(e[0]),rn.append(e[0],n)},Po=function(u){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)o.hasOwnProperty(i)&&(n[i]=u(n[i],o[i]))}return n}},Io=Po(function(e,t){return g.isObject(e)&&g.isObject(t)?Io(e,t):t}),Wo=Po(function(e,t){return t}),Mo={deepMerge:Io,merge:Wo},Lo=function(e){for(var t=[],n=function(e){t.push(e)},r=0;r<e.length;r++)e[r].each(n);return t},qo=function(e,t){for(var n=0;n<e.length;n++){var r=t(e[n],n);if(r.isSome())return r}return x.none()},Fo=function(e,t){return G.rowcells(t,e.section())},jo=function(e,t){return e.cells()[t]},zo={addCell:function(e,t,n){var r=e.cells(),o=r.slice(0,t),i=r.slice(t),u=o.concat([n]).concat(i);return Fo(e,u)},setCells:Fo,mutateCell:function(e,t,n){e.cells()[t]=n},getCell:jo,getCellElement:function(e,t){return jo(e,t).element()},mapCells:function(e,t){var n=e.cells(),r=E.map(n,t);return G.rowcells(r,e.section())},cellLength:function(e){return e.cells().length}},_o=function(e,t){if(0===e.length)return 0;var n=e[0];return E.findIndex(e,function(e){return!t(n.element(),e.element())}).fold(function(){return e.length},function(e){return e})},Ho=function(e,t,n,r){var o,i,u,a,c=(o=e,i=t,o[i]).cells().slice(n),l=_o(c,r),s=(u=e,a=n,E.map(u,function(e){return zo.getCell(e,a)})).slice(t),f=_o(s,r);return{colspan:y.constant(l),rowspan:y.constant(f)}},Vo=function(o,i){var u=E.map(o,function(e,t){return E.map(e.cells(),function(e,t){return!1})});return E.map(o,function(e,r){var t=E.bind(e.cells(),function(e,t){if(!1===u[r][t]){var n=Ho(o,r,t,i);return function(e,t,n,r){for(var o=e;o<e+n;o++)for(var i=t;i<t+r;i++)u[o][i]=!0}(r,t,n.rowspan(),n.colspan()),[G.detailnew(e.element(),n.rowspan(),n.colspan(),e.isNew())]}return[]});return G.rowdetails(t,e.section())})},Uo=function(e,t,n){for(var r=[],o=0;o<e.grid().rows();o++){for(var i=[],u=0;u<e.grid().columns();u++){var a=Gt.getAt(e,o,u).map(function(e){return G.elementnew(e.element(),n)}).getOrThunk(function(){return G.elementnew(t.gap(),!0)});i.push(a)}var c=G.rowcells(i,e.all()[o].section());r.push(c)}return r},Go=function(e,t,n,r){n===r?vt.remove(e,t):vt.set(e,t,n)},Xo=function(o,e){var i=[],u=[],t=function(e,t){var n;0<e.length?function(e,t){var n=Wt.child(o,t).getOrThunk(function(){var e=Y.fromTag(t,rt.owner(o).dom());return nn.append(o,e),e});un.empty(n);var r=E.map(e,function(e){e.isNew()&&i.push(e.element());var t=e.element();return un.empty(t),E.each(e.cells(),function(e){e.isNew()&&u.push(e.element()),Go(e.element(),"colspan",e.colspan(),1),Go(e.element(),"rowspan",e.rowspan(),1),nn.append(t,e.element())}),t});rn.append(n,r)}(e,t):(n=t,Wt.child(o,n).bind(un.remove))},n=[],r=[],a=[];return E.each(e,function(e){switch(e.section()){case"thead":n.push(e);break;case"tbody":r.push(e);break;case"tfoot":a.push(e)}}),t(n,"thead"),t(r,"tbody"),t(a,"tfoot"),{newRows:y.constant(i),newCells:y.constant(u)}},Yo=function(e){return E.map(e,function(e){var n=dn(e.element());return E.each(e.cells(),function(e){var t=mn(e.element());Go(t,"colspan",e.colspan(),1),Go(t,"rowspan",e.rowspan(),1),nn.append(n,t)}),n})},Ko=function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},$o=function(e,t){for(var n=[],r=e;r<t;r++)n.push(r);return n},Jo=function(t,n){if(n<0||n>=t.length-1)return x.none();var e=t[n].fold(function(){var e=E.reverse(t.slice(0,n));return qo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return x.some({value:e,delta:0})}),r=t[n+1].fold(function(){var e=t.slice(n+1);return qo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return x.some({value:e,delta:1})});return e.bind(function(n){return r.map(function(e){var t=e.delta+n.delta;return Math.abs(e.value-n.value)/t})})},Qo=function(e,t,n){var r=e();return E.find(r,t).orThunk(function(){return x.from(r[0]).orThunk(n)}).map(function(e){return e.element()})},Zo=function(n){var e=n.grid(),t=$o(0,e.columns()),r=$o(0,e.rows());return E.map(t,function(t){return Qo(function(){return E.bind(r,function(e){return Gt.getAt(n,e,t).filter(function(e){return e.column()===t}).fold(y.constant([]),function(e){return[e]})})},function(e){return 1===e.colspan()},function(){return Gt.getAt(n,0,t)})})},ei=function(n){var e=n.grid(),t=$o(0,e.rows()),r=$o(0,e.columns());return E.map(t,function(t){return Qo(function(){return E.bind(r,function(e){return Gt.getAt(n,t,e).filter(function(e){return e.row()===t}).fold(y.constant([]),function(e){return[e]})})},function(e){return 1===e.rowspan()},function(){return Gt.getAt(n,t,0)})})},ti=function(e,t,n,r,o){var i=Y.fromTag("div");return Zt.setAll(i,{position:"absolute",left:t-r/2+"px",top:n+"px",height:o+"px",width:r+"px"}),vt.setAll(i,{"data-column":e,role:"presentation"}),i},ni=function(e,t,n,r,o){var i=Y.fromTag("div");return Zt.setAll(i,{position:"absolute",left:t+"px",top:n-o/2+"px",height:o+"px",width:r+"px"}),vt.setAll(i,{"data-row":e,role:"presentation"}),i},ri=function(e){var t=e.replace(/\./g,"-");return{resolve:function(e){return t+"-"+e}}},oi={resolve:ri("ephox-snooker").resolve},ii=function(e,t){var n=vt.get(e,t);return n===undefined||""===n?[]:n.split(" ")},ui=ii,ai=function(e,t,n){var r=ii(e,t).concat([n]);vt.set(e,t,r.join(" "))},ci=function(e,t,n){var r=E.filter(ii(e,t),function(e){return e!==n});0<r.length?vt.set(e,t,r.join(" ")):vt.remove(e,t)},li=function(e){return ui(e,"class")},si=function(e,t){return ai(e,"class",t)},fi=function(e,t){return ci(e,"class",t)},di=li,mi=si,gi=fi,pi=function(e,t){E.contains(li(e),t)?fi(e,t):si(e,t)},hi=function(e){return e.dom().classList!==undefined},vi=function(e,t){return hi(e)&&e.dom().classList.contains(t)},bi={add:function(e,t){hi(e)?e.dom().classList.add(t):mi(e,t)},remove:function(e,t){var n;hi(e)?e.dom().classList.remove(t):gi(e,t),0===(hi(n=e)?n.dom().classList:di(n)).length&&vt.remove(n,"class")},toggle:function(e,t){return hi(e)?e.dom().classList.toggle(t):pi(e,t)},toggler:function(e,t){var n,r,o,i,u,a,c=hi(e),l=e.dom().classList;return n=function(){c?l.remove(t):gi(e,t)},r=function(){c?l.add(t):mi(e,t)},o=vi(e,t),i=o||!1,{on:u=function(){r(),i=!0},off:a=function(){n(),i=!1},toggle:function(){(i?a:u)()},isOn:function(){return i}}},has:vi},wi=oi.resolve("resizer-bar"),yi=oi.resolve("resizer-rows"),xi=oi.resolve("resizer-cols"),Si=function(e){var t=Ct.descendants(e.parent(),"."+wi);E.each(t,un.remove)},Ci=function(n,e,r){var o=n.origin();E.each(e,function(e,t){e.each(function(e){var t=r(o,e);bi.add(t,wi),nn.append(n.parent(),t)})})},Ri=function(e,t,n,r,o,i){var u,a,c,l,s=$r(t),f=0<n.length?o.positions(n,t):[];u=e,a=f,c=s,l=Er(t),Ci(u,a,function(e,t){var n=ni(t.row(),c.left()-e.left(),t.y()-e.top(),l,7);return bi.add(n,yi),n});var d,m,g,p,h=0<r.length?i.positions(r,t):[];d=e,m=h,g=s,p=Dr(t),Ci(d,m,function(e,t){var n=ti(t.col(),t.x()-e.left(),g.top()-e.top(),7,p);return bi.add(n,xi),n})},Ti=function(e,t){var n=Ct.descendants(e.parent(),"."+wi);E.each(n,t)},Ai={refresh:function(e,t,n,r){Si(e);var o=_t(t),i=Gt.generate(o),u=ei(i),a=Zo(i);Ri(e,t,u,a,n,r)},hide:function(e){Ti(e,function(e){Zt.set(e,"display","none")})},show:function(e){Ti(e,function(e){Zt.set(e,"display","block")})},destroy:Si,isRowBar:function(e){return bi.has(e,yi)},isColBar:function(e){return bi.has(e,xi)}},Di=function(e,r){return E.map(e,function(e){var t,n=(t=e.details(),qo(t,function(e){return rt.parent(e.element()).map(function(e){var t=rt.parent(e).isNone();return G.elementnew(e,t)})}).getOrThunk(function(){return G.elementnew(r.row(),!0)}));return G.rowdatanew(n.element(),e.details(),e.section(),n.isNew())})},ki=function(e,t){var n=Vo(e,Ke.eq);return Di(n,t)},Ni=function(e,t){var n=E.flatten(E.map(e.all(),function(e){return e.cells()}));return E.find(n,function(e){return Ke.eq(t,e.element())})},Ei=function(a,c,l,s,f){return function(n,r,e,o,i){var t=_t(r),u=Gt.generate(t);return c(u,e).map(function(e){var t=Uo(u,o,!1),n=a(t,e,Ke.eq,f(o)),r=ki(n.grid(),o);return{grid:y.constant(r),cursor:n.cursor}}).fold(function(){return x.none()},function(e){var t=Xo(r,e.grid());return l(r,e.grid(),i),s(r),Ai.refresh(n,r,ao.height,i),x.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})})}},Oi=ki,Bi=function(t,e){return zt.cell(e.element()).bind(function(e){return Ni(t,e)})},Pi=function(t,e){var n=E.map(e.selection(),function(e){return zt.cell(e).bind(function(e){return Ni(t,e)})}),r=Lo(n);return 0<r.length?x.some(r):x.none()},Ii=function(t,n){return zt.cell(n.element()).bind(function(e){return Ni(t,e).map(function(e){return Mo.merge(e,{generators:n.generators,clipboard:n.clipboard})})})},Wi=function(t,e){var n=E.map(e.selection(),function(e){return zt.cell(e).bind(function(e){return Ni(t,e)})}),r=Lo(n);return 0<r.length?x.some(Mo.merge({cells:r},{generators:e.generators,clipboard:e.clipboard})):x.none()},Mi=function(e,t){return t.mergable()},Li=function(e,t){return t.unmergable()},qi=function(n){return{is:function(e){return n===e},isValue:y.always,isError:y.never,getOr:y.constant(n),getOrThunk:y.constant(n),getOrDie:y.constant(n),or:function(e){return qi(n)},orThunk:function(e){return qi(n)},fold:function(e,t){return t(n)},map:function(e){return qi(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return x.some(n)}}},Fi=function(n){return{is:y.never,isValue:y.never,isError:y.always,getOr:y.identity,getOrThunk:function(e){return e()},getOrDie:function(){return y.die(String(n))()},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return Fi(n)},each:y.noop,bind:function(e){return Fi(n)},exists:y.never,forall:y.always,toOption:x.none}},ji={value:qi,error:Fi},zi=function(e,t){return E.map(e,function(){return G.elementnew(t.cell(),!0)})},_i=function(t,e,n){return t.concat(Ko(e,function(e){return zo.setCells(t[t.length-1],zi(t[t.length-1].cells(),n))}))},Hi=function(e,t,n){return E.map(e,function(e){return zo.setCells(e,e.cells().concat(zi($o(0,t),n)))})},Vi=function(e,t,n){if(e.row()>=t.length||e.column()>zo.cellLength(t[0]))return ji.error("invalid start address out of table bounds, row: "+e.row()+", column: "+e.column());var r=t.slice(e.row()),o=r[0].cells().slice(e.column()),i=zo.cellLength(n[0]),u=n.length;return ji.value({rowDelta:y.constant(r.length-u),colDelta:y.constant(o.length-i)})},Ui=function(e,t){var n=zo.cellLength(e[0]),r=zo.cellLength(t[0]);return{rowDelta:y.constant(0),colDelta:y.constant(n-r)}},Gi=function(e,t,n){var r=t.colDelta()<0?Hi:y.identity;return(t.rowDelta()<0?_i:y.identity)(r(e,Math.abs(t.colDelta()),n),Math.abs(t.rowDelta()),n)},Xi=function(e,t,n,r){if(0===e.length)return e;for(var o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)zo.mutateCell(e[o],i,G.elementnew(r(),!1));return e},Yi=function(e,t,n,r){for(var o=!0,i=0;i<e.length;i++)for(var u=0;u<zo.cellLength(e[0]);u++){var a=n(zo.getCellElement(e[i],u),t);!0===a&&!1===o?zo.mutateCell(e[i],u,G.elementnew(r(),!0)):!0===a&&(o=!1)}return e},Ki=function(i,u,a,c){if(0<u&&u<i.length){var e=i[u-1].cells(),t=(n=e,r=a,E.foldl(n,function(e,t){return E.exists(e,function(e){return r(e.element(),t.element())})?e:e.concat([t])},[]));E.each(t,function(e){for(var t=x.none(),n=u;n<i.length;n++)for(var r=0;r<zo.cellLength(i[0]);r++){var o=i[n].cells()[r];a(o.element(),e.element())&&(t.isNone()&&(t=x.some(c())),t.each(function(e){zo.mutateCell(i[n],r,G.elementnew(e,!0))}))}})}var n,r;return i},$i=function(n,r,o,i,u){return Vi(n,r,o).map(function(e){var t=Gi(r,e,i);return function(e,t,n,r,o){for(var i,u,a,c,l,s,f,d=e.row(),m=e.column(),g=d+n.length,p=m+zo.cellLength(n[0]),h=d;h<g;h++)for(var v=m;v<p;v++){i=t,u=h,a=v,c=o,s=l=void 0,l=zo.getCell(i[u],a),s=y.curry(c,l.element()),f=i[u],1<i.length&&1<zo.cellLength(f)&&(0<a&&s(zo.getCellElement(f,a-1))||a<f.length-1&&s(zo.getCellElement(f,a+1))||0<u&&s(zo.getCellElement(i[u-1],a))||u<i.length-1&&s(zo.getCellElement(i[u+1],a)))&&Yi(t,zo.getCellElement(t[h],v),o,r.cell);var b=zo.getCellElement(n[h-d],v-m),w=r.replace(b);zo.mutateCell(t[h],v,G.elementnew(w,!0))}return t}(n,t,o,i,u)})},Ji=function(e,t,n,r,o){Ki(t,e,o,r.cell);var i=Ui(n,t),u=Gi(n,i,r),a=Ui(t,u),c=Gi(t,a,r);return c.slice(0,e).concat(u).concat(c.slice(e,c.length))},Qi=function(n,r,e,o,i){var t=n.slice(0,r),u=n.slice(r),a=zo.mapCells(n[e],function(e,t){return 0<r&&r<n.length&&o(zo.getCellElement(n[r-1],t),zo.getCellElement(n[r],t))?zo.getCell(n[r],t):G.elementnew(i(e.element(),o),!0)});return t.concat([a]).concat(u)},Zi=function(e,n,r,o,i){return E.map(e,function(e){var t=0<n&&n<zo.cellLength(e)&&o(zo.getCellElement(e,n-1),zo.getCellElement(e,n))?zo.getCell(e,n):G.elementnew(i(zo.getCellElement(e,r),o),!0);return zo.addCell(e,n,t)})},eu=function(e,r,o,i,u){var a=o+1;return E.map(e,function(e,t){var n=t===r?G.elementnew(u(zo.getCellElement(e,o),i),!0):zo.getCell(e,o);return zo.addCell(e,a,n)})},tu=function(e,t,n,r,o){var i=t+1,u=e.slice(0,i),a=e.slice(i),c=zo.mapCells(e[t],function(e,t){return t===n?G.elementnew(o(e.element(),r),!0):e});return u.concat([c]).concat(a)},nu=function(e,t,n){return e.slice(0,t).concat(e.slice(n+1))},ru=function(e,n,r){var t=E.map(e,function(e){var t=e.cells().slice(0,n).concat(e.cells().slice(r+1));return G.rowcells(t,e.section())});return E.filter(t,function(e){return 0<e.cells().length})},ou=function(e,n,r,o){return E.map(e,function(e){return zo.mapCells(e,function(e){return t=e,E.exists(n,function(e){return r(t.element(),e.element())})?G.elementnew(o(e.element(),r),!0):e;var t})})},iu=function(e,t,n,r){return zo.getCellElement(e[t],n)!==undefined&&0<t&&r(zo.getCellElement(e[t-1],n),zo.getCellElement(e[t],n))},uu=function(e,t,n){return 0<t&&n(zo.getCellElement(e,t-1),zo.getCellElement(e,t))},au=function(n,r,o,e){var t=E.bind(n,function(e,t){return iu(n,t,r,o)||uu(e,r,o)?[]:[zo.getCell(e,r)]});return ou(n,t,o,e)},cu=function(n,r,o,e){var i=n[r],t=E.bind(i.cells(),function(e,t){return iu(n,r,t,o)||uu(i,t,o)?[]:[e]});return ou(n,t,o,e)},lu=function(e){return{fold:e}},su=function(){return lu(function(e,t,n,r,o){return e()})},fu=function(i){return lu(function(e,t,n,r,o){return t(i)})},du=function(i,u){return lu(function(e,t,n,r,o){return n(i,u)})},mu=function(i,u,a){return lu(function(e,t,n,r,o){return r(i,u,a)})},gu=function(i,u){return lu(function(e,t,n,r,o){return o(i,u)})},pu=function(e,t,i,u){var n,r,a=e.slice(0),o=(r=t,0===(n=e).length?su():1===n.length?fu(0):0===r?du(0,1):r===n.length-1?gu(r-1,r):0<r&&r<n.length-1?mu(r-1,r,r+1):su()),c=function(e){return E.map(e,y.constant(0))},l=y.constant(c(a)),s=function(e,t){if(0<=i){var n=Math.max(u.minCellWidth(),a[t]-i);return c(a.slice(0,e)).concat([i,n-a[t]]).concat(c(a.slice(t+1)))}var r=Math.max(u.minCellWidth(),a[e]+i),o=a[e]-r;return c(a.slice(0,e)).concat([r-a[e],o]).concat(c(a.slice(t+1)))},f=s;return o.fold(l,function(e){return u.singleColumnWidth(a[e],i)},f,function(e,t,n){return s(t,n)},function(e,t){if(0<=i)return c(a.slice(0,t)).concat([i]);var n=Math.max(u.minCellWidth(),a[t]+i);return c(a.slice(0,t)).concat([n-a[t]])})},hu=function(e,t){return vt.has(e,t)&&1<parseInt(vt.get(e,t),10)},vu={hasColspan:function(e){return hu(e,"colspan")},hasRowspan:function(e){return hu(e,"rowspan")},minWidth:y.constant(10),minHeight:y.constant(10),getInt:function(e,t){return parseInt(Zt.get(e,t),10)}},bu=function(e,t,n){return Zt.getRaw(e,t).fold(function(){return n(e)+"px"},function(e){return e})},wu=function(e){return bu(e,"width",Hr.getPixelWidth)},yu=function(e){return bu(e,"height",Hr.getHeight)},xu=function(e,t,n,r,o){var i=Zo(e),u=E.map(i,function(e){return e.map(t.edge)});return E.map(i,function(e,t){return e.filter(y.not(vu.hasColspan)).fold(function(){var e=Jo(u,t);return r(e)},function(e){return n(e,o)})})},Su=function(e){return e.map(function(e){return e+"px"}).getOr("")},Cu=function(e,t,n,r){var o=ei(e),i=E.map(o,function(e){return e.map(t.edge)});return E.map(o,function(e,t){return e.filter(y.not(vu.hasRowspan)).fold(function(){var e=Jo(i,t);return r(e)},function(e){return n(e)})})},Ru={getRawWidths:function(e,t){return xu(e,t,wu,Su)},getPixelWidths:function(e,t,n){return xu(e,t,Hr.getPixelWidth,function(e){return e.getOrThunk(n.minCellWidth)},n)},getPercentageWidths:function(e,t,n){return xu(e,t,Hr.getPercentageWidth,function(e){return e.fold(function(){return n.minCellWidth()},function(e){return e/n.pixelWidth()*100})},n)},getPixelHeights:function(e,t){return Cu(e,t,Hr.getHeight,function(e){return e.getOrThunk(vu.minHeight)})},getRawHeights:function(e,t){return Cu(e,t,yu,Su)}},Tu=function(e,t,n){for(var r=0,o=e;o<t;o++)r+=n[o]!==undefined?n[o]:0;return r},Au=function(e,n){var t=Gt.justCells(e);return E.map(t,function(e){var t=Tu(e.column(),e.column()+e.colspan(),n);return{element:e.element,width:y.constant(t),colspan:e.colspan}})},Du=function(e,n){var t=Gt.justCells(e);return E.map(t,function(e){var t=Tu(e.row(),e.row()+e.rowspan(),n);return{element:e.element,height:y.constant(t),rowspan:e.rowspan}})},ku=function(e,n){return E.map(e.all(),function(e,t){return{element:e.element,height:y.constant(n[t])}})},Nu=function(e){var t=parseInt(e,10),n=y.identity;return{width:y.constant(t),pixelWidth:y.constant(t),getWidths:Ru.getPixelWidths,getCellDelta:n,singleColumnWidth:function(e,t){return[Math.max(vu.minWidth(),e+t)-e]},minCellWidth:vu.minWidth,setElementWidth:Hr.setPixelWidth,setTableWidth:function(e,t,n){var r=E.foldr(t,function(e,t){return e+t},0);Hr.setPixelWidth(e,r)}}},Eu=function(e,t){if(Hr.percentageBasedSizeRegex().test(t)){var n=Hr.percentageBasedSizeRegex().exec(t);return o=n[1],i=e,u=parseFloat(o),a=Nr(i),{width:y.constant(u),pixelWidth:y.constant(a),getWidths:Ru.getPercentageWidths,getCellDelta:function(e){return e/a*100},singleColumnWidth:function(e,t){return[100-e]},minCellWidth:function(){return vu.minWidth()/a*100},setElementWidth:Hr.setPercentageWidth,setTableWidth:function(e,t,n){var r=u+n;Hr.setPercentageWidth(e,r)}}}if(Hr.pixelBasedSizeRegex().test(t)){var r=Hr.pixelBasedSizeRegex().exec(t);return Nu(r[1])}var o,i,u,a,c=Nr(e);return Nu(c)},Ou=function(t){return Hr.getRawWidth(t).fold(function(){var e=Nr(t);return Nu(e)},function(e){return Eu(t,e)})},Bu=function(e){return Gt.generate(e)},Pu=function(e){var t=_t(e);return Bu(t)},Iu={adjustWidth:function(e,t,n,r){var o=Ou(e),i=o.getCellDelta(t),u=Pu(e),a=o.getWidths(u,r,o),c=pu(a,n,i,o),l=E.map(c,function(e,t){return e+a[t]}),s=Au(u,l);E.each(s,function(e){o.setElementWidth(e.element(),e.width())}),n===u.grid().columns()-1&&o.setTableWidth(e,l,i)},adjustHeight:function(e,n,r,t){var o=Pu(e),i=Ru.getPixelHeights(o,t),u=E.map(i,function(e,t){return r===t?Math.max(n+e,vu.minHeight()):e}),a=Du(o,u),c=ku(o,u);E.each(c,function(e){Hr.setHeight(e.element(),e.height())}),E.each(a,function(e){Hr.setHeight(e.element(),e.height())});var l,s=(l=u,E.foldr(l,function(e,t){return e+t},0));Hr.setHeight(e,s)},adjustWidthTo:function(e,t,n){var r=Ou(e),o=Bu(t),i=r.getWidths(o,n,r),u=Au(o,i);E.each(u,function(e){r.setElementWidth(e.element(),e.width())});var a=E.foldr(i,function(e,t){return t+e},0);0<u.length&&r.setElementWidth(e,a)}},Wu=function(e){0===zt.cells(e).length&&un.remove(e)},Mu=F.immutable("grid","cursor"),Lu=function(e,t,n){return qu(e,t,n).orThunk(function(){return qu(e,0,0)})},qu=function(e,t,n){return x.from(e[t]).bind(function(e){return x.from(e.cells()[n]).bind(function(e){return x.from(e.element())})})},Fu=function(e,t,n){return Mu(e,qu(e,t,n))},ju=function(e){return E.foldl(e,function(e,t){return E.exists(e,function(e){return e.row()===t.row()})?e:e.concat([t])},[]).sort(function(e,t){return e.row()-t.row()})},zu=function(e){return E.foldl(e,function(e,t){return E.exists(e,function(e){return e.column()===t.column()})?e:e.concat([t])},[]).sort(function(e,t){return e.column()-t.column()})},_u=function(e,t,n){var r=Ht(e,n),o=Gt.generate(r);return Uo(o,t,!0)},Hu=Iu.adjustWidthTo,Vu={insertRowBefore:Ei(function(e,t,n,r){var o=t.row(),i=t.row(),u=Qi(e,i,o,n,r.getOrInit);return Fu(u,i,t.column())},Bi,y.noop,y.noop,wo),insertRowsBefore:Ei(function(e,t,n,r){var o=t[0].row(),i=t[0].row(),u=ju(t),a=E.foldl(u,function(e,t){return Qi(e,i,o,n,r.getOrInit)},e);return Fu(a,i,t[0].column())},Pi,y.noop,y.noop,wo),insertRowAfter:Ei(function(e,t,n,r){var o=t.row(),i=t.row()+t.rowspan(),u=Qi(e,i,o,n,r.getOrInit);return Fu(u,i,t.column())},Bi,y.noop,y.noop,wo),insertRowsAfter:Ei(function(e,t,n,r){var o=ju(t),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),a=E.foldl(o,function(e,t){return Qi(e,u,i,n,r.getOrInit)},e);return Fu(a,u,t[0].column())},Pi,y.noop,y.noop,wo),insertColumnBefore:Ei(function(e,t,n,r){var o=t.column(),i=t.column(),u=Zi(e,i,o,n,r.getOrInit);return Fu(u,t.row(),i)},Bi,Hu,y.noop,wo),insertColumnsBefore:Ei(function(e,t,n,r){var o=zu(t),i=o[0].column(),u=o[0].column(),a=E.foldl(o,function(e,t){return Zi(e,u,i,n,r.getOrInit)},e);return Fu(a,t[0].row(),u)},Pi,Hu,y.noop,wo),insertColumnAfter:Ei(function(e,t,n,r){var o=t.column(),i=t.column()+t.colspan(),u=Zi(e,i,o,n,r.getOrInit);return Fu(u,t.row(),i)},Bi,Hu,y.noop,wo),insertColumnsAfter:Ei(function(e,t,n,r){var o=t[t.length-1].column(),i=t[t.length-1].column()+t[t.length-1].colspan(),u=zu(t),a=E.foldl(u,function(e,t){return Zi(e,i,o,n,r.getOrInit)},e);return Fu(a,t[0].row(),i)},Pi,Hu,y.noop,wo),splitCellIntoColumns:Ei(function(e,t,n,r){var o=eu(e,t.row(),t.column(),n,r.getOrInit);return Fu(o,t.row(),t.column())},Bi,Hu,y.noop,wo),splitCellIntoRows:Ei(function(e,t,n,r){var o=tu(e,t.row(),t.column(),n,r.getOrInit);return Fu(o,t.row(),t.column())},Bi,y.noop,y.noop,wo),eraseColumns:Ei(function(e,t,n,r){var o=zu(t),i=ru(e,o[0].column(),o[o.length-1].column()),u=Lu(i,t[0].row(),t[0].column());return Mu(i,u)},Pi,Hu,Wu,wo),eraseRows:Ei(function(e,t,n,r){var o=ju(t),i=nu(e,o[0].row(),o[o.length-1].row()),u=Lu(i,t[0].row(),t[0].column());return Mu(i,u)},Pi,y.noop,Wu,wo),makeColumnHeader:Ei(function(e,t,n,r){var o=au(e,t.column(),n,r.replaceOrInit);return Fu(o,t.row(),t.column())},Bi,y.noop,y.noop,yo("row","th")),unmakeColumnHeader:Ei(function(e,t,n,r){var o=au(e,t.column(),n,r.replaceOrInit);return Fu(o,t.row(),t.column())},Bi,y.noop,y.noop,yo(null,"td")),makeRowHeader:Ei(function(e,t,n,r){var o=cu(e,t.row(),n,r.replaceOrInit);return Fu(o,t.row(),t.column())},Bi,y.noop,y.noop,yo("col","th")),unmakeRowHeader:Ei(function(e,t,n,r){var o=cu(e,t.row(),n,r.replaceOrInit);return Fu(o,t.row(),t.column())},Bi,y.noop,y.noop,yo(null,"td")),mergeCells:Ei(function(e,t,n,r){var o=t.cells();Bo(o);var i=Xi(e,t.bounds(),n,y.constant(o[0]));return Mu(i,x.from(o[0]))},Mi,y.noop,y.noop,xo),unmergeCells:Ei(function(e,t,n,r){var o=E.foldr(t,function(e,t){return Yi(e,t,n,r.combine(t))},e);return Mu(o,x.from(t[0]))},Li,Hu,y.noop,xo),pasteCells:Ei(function(e,n,t,r){var o,i,u,a,c=(o=n.clipboard(),i=n.generators(),u=_t(o),a=Gt.generate(u),Uo(a,i,!0)),l=G.address(n.row(),n.column());return $i(l,e,c,n.generators(),t).fold(function(){return Mu(e,x.some(n.element()))},function(e){var t=Lu(e,n.row(),n.column());return Mu(e,t)})},Ii,Hu,y.noop,wo),pasteRowsBefore:Ei(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[0].row(),u=_u(t.clipboard(),t.generators(),o),a=Ji(i,e,u,t.generators(),n),c=Lu(a,t.cells[0].row(),t.cells[0].column());return Mu(a,c)},Wi,y.noop,y.noop,wo),pasteRowsAfter:Ei(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[t.cells.length-1].row()+t.cells[t.cells.length-1].rowspan(),u=_u(t.clipboard(),t.generators(),o),a=Ji(i,e,u,t.generators(),n),c=Lu(a,t.cells[0].row(),t.cells[0].column());return Mu(a,c)},Wi,y.noop,y.noop,wo)},Uu=function(e){return Y.fromDom(e.getBody())},Gu={getBody:Uu,getIsRoot:function(t){return function(e){return Ke.eq(e,Uu(t))}},addSizeSuffix:function(e){return/^[0-9]+$/.test(e)&&(e+="px"),e},removePxSuffix:function(e){return e?e.replace(/px$/,""):""}},Xu=function(e){return"rtl"===Zt.get(e,"direction")?"rtl":"ltr"},Yu={onDirection:function(t,n){return function(e){return"rtl"===Xu(e)?n:t}},getDirection:Xu},Ku={isRtl:y.constant(!1)},$u={isRtl:y.constant(!0)},Ju={directionAt:function(e){return"rtl"===Yu.getDirection(e)?$u:Ku}},Qu=["tableprops","tabledelete","|","tableinsertrowbefore","tableinsertrowafter","tabledeleterow","|","tableinsertcolbefore","tableinsertcolafter","tabledeletecol"],Zu={"border-collapse":"collapse",width:"100%"},ea={border:"1"},ta=function(e){return e.getParam("table_tab_navigation",!0,"boolean")},na=function(e){return e.getParam("table_cell_advtab",!0,"boolean")},ra=function(e){return e.getParam("table_row_advtab",!0,"boolean")},oa=function(e){return e.getParam("table_advtab",!0,"boolean")},ia=function(e){return e.getParam("table_style_by_css",!1,"boolean")},ua=function(e){return e.getParam("table_cell_class_list",[],"array")},aa=function(e){return e.getParam("table_row_class_list",[],"array")},ca=function(e){return e.getParam("table_class_list",[],"array")},la=function(e){return!1===e.getParam("table_responsive_width")},sa=function(e,t){return e.fire("newrow",{node:t})},fa=function(e,t){return e.fire("newcell",{node:t})},da=function(f,e){var t,n=function(e){return"table"===dt.name(Gu.getBody(e))},d=(t=f.getParam("table_clone_elements"),g.isString(t)?x.some(t.split(/[ ,]/)):Array.isArray(t)?x.some(t):x.none()),r=function(a,c,l,s){return function(e,t){var n=Ct.descendants(e,"td[data-mce-style],th[data-mce-style]");E.each(n,function(e){vt.remove(e,"data-mce-style")});var r=s(),o=Y.fromDom(f.getDoc()),i=lo(Ju.directionAt),u=Dn(l,o,d);return c(e)?a(r,e,t,u,i).bind(function(e){return E.each(e.newRows(),function(e){sa(f,e.dom())}),E.each(e.newCells(),function(e){fa(f,e.dom())}),e.cursor().map(function(e){var t=f.dom.createRng();return t.setStart(e.dom(),0),t.setEnd(e.dom(),0),t})}):x.none()}};return{deleteRow:r(Vu.eraseRows,function(e){var t=so(e);return!1===n(f)||1<t.rows()},y.noop,e),deleteColumn:r(Vu.eraseColumns,function(e){var t=so(e);return!1===n(f)||1<t.columns()},y.noop,e),insertRowsBefore:r(Vu.insertRowsBefore,y.always,y.noop,e),insertRowsAfter:r(Vu.insertRowsAfter,y.always,y.noop,e),insertColumnsBefore:r(Vu.insertColumnsBefore,y.always,Vr,e),insertColumnsAfter:r(Vu.insertColumnsAfter,y.always,Vr,e),mergeCells:r(Vu.mergeCells,y.always,y.noop,e),unmergeCells:r(Vu.unmergeCells,y.always,y.noop,e),pasteRowsBefore:r(Vu.pasteRowsBefore,y.always,y.noop,e),pasteRowsAfter:r(Vu.pasteRowsAfter,y.always,y.noop,e),pasteCells:r(Vu.pasteCells,y.always,y.noop,e)}},ma=function(e,t,r){var n=_t(e),o=Gt.generate(n);return Pi(o,t).map(function(e){var t=Uo(o,r,!1).slice(e[0].row(),e[e.length-1].row()+e[e.length-1].rowspan()),n=Oi(t,r);return Yo(n)})},ga=tinymce.util.Tools.resolve("tinymce.util.Tools"),pa={applyAlign:function(e,t,n){n&&e.formatter.apply("align"+n,{},t)},applyVAlign:function(e,t,n){n&&e.formatter.apply("valign"+n,{},t)},unApplyAlign:function(t,n){ga.each("left center right".split(" "),function(e){t.formatter.remove("align"+e,{},n)})},unApplyVAlign:function(t,n){ga.each("top middle bottom".split(" "),function(e){t.formatter.remove("valign"+e,{},n)})},getTDTHOverallStyle:function(o,e,i){var t;return t=function(e,t){for(var n=0;n<t.length;n++){var r=o.getStyle(t[n],i);if(void 0===e&&(e=r),e!==r)return""}return e}(t,o.select("td,th",e))}},ha=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);"style"===t.control.name()?(r.find("#borderStyle").value(i["border-style"]||"")[0].fire("select"),r.find("#borderColor").value(i["border-color"]||"")[0].fire("change"),r.find("#backgroundColor").value(i["background-color"]||"")[0].fire("change"),r.find("#width").value(i.width||"").fire("change"),r.find("#height").value(i.height||"").fire("change")):(i["border-style"]=o.borderStyle,i["border-color"]=o.borderColor,i["background-color"]=o.backgroundColor,i.width=o.width?Gu.addSizeSuffix(o.width):"",i.height=o.height?Gu.addSizeSuffix(o.height):""),r.find("#style").value(n.serializeStyle(n.parseStyle(n.serializeStyle(i))))},va={createStyleForm:function(n){var e=function(){var e=n.getParam("color_picker_callback");if(e)return function(t){return e.call(n,function(e){t.control.value(e).fire("change")},t.control.value())}};return{title:"Advanced",type:"form",defaults:{onchange:y.curry(ha,n)},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border style",type:"listbox",name:"borderStyle",width:90,onselect:y.curry(ha,n),values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}},buildListItems:function(e,r,t){var o=function(e,n){return n=n||[],ga.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=o(e.menu):(t.value=e.value,r&&r(t)),n.push(t)}),n};return o(e,t||[])},updateStyleField:ha,extractAdvancedStyles:function(e,t){var n=e.parseStyle(e.getAttrib(t,"style")),r={};return n["border-style"]&&(r.borderStyle=n["border-style"]),n["border-color"]&&(r.borderColor=n["border-color"]),n["background-color"]&&(r.backgroundColor=n["background-color"]),r.style=e.serializeStyle(n),r}},ba=function(r,o,e){var i,u=r.dom;function a(e,t,n){n&&u.setAttrib(e,t,n)}function c(e,t,n){n&&u.setStyle(e,t,n)}va.updateStyleField(r,e),i=e.control.rootControl.toJSON(),r.undoManager.transact(function(){ga.each(o,function(e){var t,n;a(e,"scope",i.scope),1===o.length?a(e,"style",i.style):(t=e,n=i.style,delete t.dataset.mceStyle,t.style.cssText+=";"+n),a(e,"class",i["class"]),c(e,"width",Gu.addSizeSuffix(i.width)),c(e,"height",Gu.addSizeSuffix(i.height)),i.type&&e.nodeName.toLowerCase()!==i.type&&(e=u.rename(e,i.type)),1===o.length&&(pa.unApplyAlign(r,e),pa.unApplyVAlign(r,e)),i.align&&pa.applyAlign(r,e,i.align),i.valign&&pa.applyVAlign(r,e,i.valign)}),r.focus()})},wa=function(t){var e,n,r,o=[];if(o=t.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=t.dom.getParent(t.selection.getStart(),"td,th"),!o.length&&e&&o.push(e),e=e||o[0]){var i,u,a,c;1<o.length?n={width:"",height:"",scope:"","class":"",align:"",valign:"",style:"",type:e.nodeName.toLowerCase()}:(u=e,a=(i=t).dom,c={width:a.getStyle(u,"width")||a.getAttrib(u,"width"),height:a.getStyle(u,"height")||a.getAttrib(u,"height"),scope:a.getAttrib(u,"scope"),"class":a.getAttrib(u,"class"),type:u.nodeName.toLowerCase(),style:"",align:"",valign:""},ga.each("left center right".split(" "),function(e){i.formatter.matchNode(u,"align"+e)&&(c.align=e)}),ga.each("top middle bottom".split(" "),function(e){i.formatter.matchNode(u,"valign"+e)&&(c.valign=e)}),na(i)&&ga.extend(c,va.extractAdvancedStyles(a,u)),n=c),0<ua(t).length&&(r={name:"class",type:"listbox",label:"Class",values:va.buildListItems(ua(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"td",classes:[e.value]})})})});var l={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width",onchange:y.curry(va.updateStyleField,t)},{label:"Height",name:"height",onchange:y.curry(va.updateStyleField,t)},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},r]};na(t)?t.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:l},va.createStyleForm(t)],onsubmit:y.curry(ba,t,o)}):t.windowManager.open({title:"Cell properties",data:n,body:l,onsubmit:y.curry(ba,t,o)})}},ya=function(e,t,n){var r=e.getParent(t,"table"),o=t.parentNode,i=e.select(n,r)[0];i||(i=e.create(n),r.firstChild?"CAPTION"===r.firstChild.nodeName?e.insertAfter(i,r.firstChild):r.insertBefore(i,r.firstChild):r.appendChild(i)),i.appendChild(t),o.hasChildNodes()||e.remove(o)};function xa(o,e,i,t){var u=o.dom;function a(e,t,n){n&&u.setAttrib(e,t,n)}va.updateStyleField(o,t);var c=t.control.rootControl.toJSON();o.undoManager.transact(function(){ga.each(e,function(e){var t,n,r;a(e,"scope",c.scope),a(e,"style",c.style),a(e,"class",c["class"]),t=e,n="height",(r=Gu.addSizeSuffix(c.height))&&u.setStyle(t,n,r),c.type!==e.parentNode.nodeName.toLowerCase()&&ya(o.dom,e,c.type),c.align!==i.align&&(pa.unApplyAlign(o,e),pa.applyAlign(o,e,c.align))}),o.focus()})}var Sa=function(t){var e,n,r,o,i,u,a,c,l,s,f=t.dom,d=[];e=f.getParent(t.selection.getStart(),"table"),n=f.getParent(t.selection.getStart(),"td,th"),ga.each(e.rows,function(t){ga.each(t.cells,function(e){if(f.getAttrib(e,"data-mce-selected")||e===n)return d.push(t),!1})}),(r=d[0])&&(1<d.length?i={height:"",scope:"",style:"","class":"",align:"",type:r.parentNode.nodeName.toLowerCase()}:(c=r,l=(a=t).dom,s={height:l.getStyle(c,"height")||l.getAttrib(c,"height"),scope:l.getAttrib(c,"scope"),"class":l.getAttrib(c,"class"),align:"",style:"",type:c.parentNode.nodeName.toLowerCase()},ga.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(s.align=e)}),ra(a)&&ga.extend(s,va.extractAdvancedStyles(l,c)),i=s),0<aa(t).length&&(o={name:"class",type:"listbox",label:"Class",values:va.buildListItems(aa(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"tr",classes:[e.value]})})})}),u={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},ra(t)?t.windowManager.open({title:"Row properties",data:i,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},va.createStyleForm(t)],onsubmit:y.curry(xa,t,d,i)}):t.windowManager.open({title:"Row properties",data:i,body:u,onsubmit:y.curry(xa,t,d,i)}))},Ca=tinymce.util.Tools.resolve("tinymce.Env"),Ra={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},percentages:!0},Ta=function(e,t,n,r,o){void 0===o&&(o=Ra);var i=Y.fromTag("table");Zt.setAll(i,o.styles),vt.setAll(i,o.attributes);var u=Y.fromTag("tbody");nn.append(i,u);for(var a=[],c=0;c<e;c++){for(var l=Y.fromTag("tr"),s=0;s<t;s++){var f=c<n||s<r?Y.fromTag("th"):Y.fromTag("td");s<r&&vt.set(f,"scope","row"),c<n&&vt.set(f,"scope","col"),nn.append(f,Y.fromTag("br")),o.percentages&&Zt.set(f,"width",100/t+"%"),nn.append(l,f)}a.push(l)}return rn.append(u,a),i},Aa=function(e){return e.dom().innerHTML},Da=function(e){var t=Y.fromTag("div"),n=Y.fromDom(e.dom().cloneNode(!0));return nn.append(t,n),Aa(t)},ka=function(e,t){e.selection.select(t.dom(),!0),e.selection.collapse(!0)},Na=function(i,e,t){var n,r,o=i.getParam("table_default_styles",Zu,"object"),u={styles:o,attributes:(r=i,r.getParam("table_default_attributes",ea,"object")),percentages:(n=o.width,g.isString(n)&&-1!==n.indexOf("%")&&!la(i))},a=Ta(t,e,0,0,u);vt.set(a,"data-mce-id","__mce");var c=Da(a);return i.insertContent(c),Wt.descendant(Gu.getBody(i),'table[data-mce-id="__mce"]').map(function(e){var t,n,r,o;return la(i)&&Zt.set(e,"width",Zt.get(e,"width")),vt.remove(e,"data-mce-id"),t=i,n=e,E.each(Ct.descendants(n,"tr"),function(e){sa(t,e.dom()),E.each(Ct.descendants(e,"th,td"),function(e){fa(t,e.dom())})}),r=i,o=e,Wt.descendant(o,"td,th").each(y.curry(ka,r)),e.dom()}).getOr(null)};function Ea(e,t,n,r){if("TD"===t.tagName||"TH"===t.tagName)e.setStyle(t,n,r);else if(t.children)for(var o=0;o<t.children.length;o++)Ea(e,t.children[o],n,r)}var Oa=function(e,t,n){var r,o,i=e.dom;va.updateStyleField(e,n),!1===(o=n.control.rootControl.toJSON())["class"]&&delete o["class"],e.undoManager.transact(function(){t||(t=Na(e,o.cols||1,o.rows||1)),function(e,t,n){var r=e.dom,o={},i={};if(o["class"]=n["class"],i.height=Gu.addSizeSuffix(n.height),r.getAttrib(t,"width")&&!ia(e)?o.width=Gu.removePxSuffix(n.width):i.width=Gu.addSizeSuffix(n.width),ia(e)?(i["border-width"]=Gu.addSizeSuffix(n.border),i["border-spacing"]=Gu.addSizeSuffix(n.cellspacing),ga.extend(o,{"data-mce-border-color":n.borderColor,"data-mce-cell-padding":n.cellpadding,"data-mce-border":n.border})):ga.extend(o,{border:n.border,cellpadding:n.cellpadding,cellspacing:n.cellspacing}),ia(e)&&t.children)for(var u=0;u<t.children.length;u++)Ea(r,t.children[u],{"border-width":Gu.addSizeSuffix(n.border),"border-color":n.borderColor,padding:Gu.addSizeSuffix(n.cellpadding)});n.style?ga.extend(i,r.parseStyle(n.style)):i=ga.extend({},r.parseStyle(r.getAttrib(t,"style")),i),o.style=r.serializeStyle(i),r.setAttribs(t,o)}(e,t,o),(r=i.select("caption",t)[0])&&!o.caption&&i.remove(r),!r&&o.caption&&((r=i.create("caption")).innerHTML=Ca.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(r,t.firstChild)),pa.unApplyAlign(e,t),o.align&&pa.applyAlign(e,t,o.align),e.focus(),e.addVisual()})},Ba=function(t,e){var n,r,o,i,u,a,c,l,s,f,d=t.dom,m={};!0===e?(n=d.getParent(t.selection.getStart(),"table"))&&(c=n,l=(a=t).dom,s={width:l.getStyle(c,"width")||l.getAttrib(c,"width"),height:l.getStyle(c,"height")||l.getAttrib(c,"height"),cellspacing:l.getStyle(c,"border-spacing")||l.getAttrib(c,"cellspacing"),cellpadding:l.getAttrib(c,"data-mce-cell-padding")||l.getAttrib(c,"cellpadding")||pa.getTDTHOverallStyle(a.dom,c,"padding"),border:l.getAttrib(c,"data-mce-border")||l.getAttrib(c,"border")||pa.getTDTHOverallStyle(a.dom,c,"border"),borderColor:l.getAttrib(c,"data-mce-border-color"),caption:!!l.select("caption",c)[0],"class":l.getAttrib(c,"class")},ga.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(s.align=e)}),oa(a)&&ga.extend(s,va.extractAdvancedStyles(l,c)),m=s):(r={label:"Cols",name:"cols"},o={label:"Rows",name:"rows"}),0<ca(t).length&&(m["class"]&&(m["class"]=m["class"].replace(/\s*mce\-item\-table\s*/g,"")),i={name:"class",type:"listbox",label:"Class",values:va.buildListItems(ca(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"table",classes:[e.value]})})})}),u={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:(f=t,f.getParam("table_appearance_options",!0,"boolean")?[r,o,{label:"Width",name:"width",onchange:y.curry(va.updateStyleField,t)},{label:"Height",name:"height",onchange:y.curry(va.updateStyleField,t)},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[r,o,{label:"Width",name:"width",onchange:y.curry(va.updateStyleField,t)},{label:"Height",name:"height",onchange:y.curry(va.updateStyleField,t)}])},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},i]},oa(t)?t.windowManager.open({title:"Table properties",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},va.createStyleForm(t)],onsubmit:y.curry(Oa,t,n)}):t.windowManager.open({title:"Table properties",data:m,body:u,onsubmit:y.curry(Oa,t,n)})},Pa=ga.each,Ia={registerCommands:function(a,t,c,l,n){var r=Gu.getIsRoot(a),s=function(){return Y.fromDom(a.dom.getParent(a.selection.getStart(),"th,td"))},f=function(e){return zt.table(e,r)},o=function(n){var r=s();f(r).each(function(t){var e=Sr.forMenu(l,t,r);n(t,e).each(function(e){a.selection.setRng(e),a.focus(),c.clear(t)})})},i=function(e){var o=s();return f(o).bind(function(e){var t=Y.fromDom(a.getDoc()),n=Sr.forMenu(l,e,o),r=Dn(y.noop,t,x.none());return ma(e,n,r)})},u=function(u){n.get().each(function(e){var o=E.map(e,function(e){return mn(e)}),i=s();f(i).bind(function(t){var e=Y.fromDom(a.getDoc()),n=kn(e),r=Sr.pasteRows(l,t,i,o,n);u(t,r).each(function(e){a.selection.setRng(e),a.focus(),c.clear(t)})})})};Pa({mceTableSplitCells:function(){o(t.unmergeCells)},mceTableMergeCells:function(){o(t.mergeCells)},mceTableInsertRowBefore:function(){o(t.insertRowsBefore)},mceTableInsertRowAfter:function(){o(t.insertRowsAfter)},mceTableInsertColBefore:function(){o(t.insertColumnsBefore)},mceTableInsertColAfter:function(){o(t.insertColumnsAfter)},mceTableDeleteCol:function(){o(t.deleteColumn)},mceTableDeleteRow:function(){o(t.deleteRow)},mceTableCutRow:function(e){n.set(i()),o(t.deleteRow)},mceTableCopyRow:function(e){n.set(i())},mceTablePasteRowBefore:function(e){u(t.pasteRowsBefore)},mceTablePasteRowAfter:function(e){u(t.pasteRowsAfter)},mceTableDelete:function(){var e=Y.fromDom(a.dom.getParent(a.selection.getStart(),"th,td"));zt.table(e,r).filter(y.not(r)).each(function(e){var t=Y.fromText("");nn.after(e,t),un.remove(e);var n=a.dom.createRng();n.setStart(t.dom(),0),n.setEnd(t.dom(),0),a.selection.setRng(n)})}},function(e,t){a.addCommand(t,e)}),Pa({mceInsertTable:y.curry(Ba,a),mceTableProps:y.curry(Ba,a,!0),mceTableRowProps:y.curry(Sa,a),mceTableCellProps:y.curry(wa,a)},function(n,e){a.addCommand(e,function(e,t){n(t)})})}},Wa=function(e){var t=x.from(e.dom().documentElement).map(Y.fromDom).getOr(e);return{parent:y.constant(t),view:y.constant(e),origin:y.constant(Xr(0,0))}},Ma=function(e,t){return{parent:y.constant(t),view:y.constant(e),origin:y.constant(Xr(0,0))}};function La(e){var n=F.immutable.apply(null,e),r=[];return{bind:function(e){if(e===undefined)throw"Event bind error: undefined handler";r.push(e)},unbind:function(t){r=E.filter(r,function(e){return e!==t})},trigger:function(){var t=n.apply(null,arguments);E.each(r,function(e){e(t)})}}}var qa={create:function(e){return{registry:M.map(e,function(e){return{bind:e.bind,unbind:e.unbind}}),trigger:M.map(e,function(e){return e.trigger})}}},Fa={mode:ho.exactly(["compare","extract","mutate","sink"]),sink:ho.exactly(["element","start","stop","destroy"]),api:ho.exactly(["forceDrop","drop","move","delayDrop"])},ja={resolve:ri("ephox-dragster").resolve},za=function(m,g){return function(e){if(m(e)){var t,n,r,o,i,u,a,c=Y.fromDom(e.target),l=function(){e.stopPropagation()},s=function(){e.preventDefault()},f=y.compose(s,l),d=(t=c,n=e.clientX,r=e.clientY,o=l,i=s,u=f,a=e,{target:y.constant(t),x:y.constant(n),y:y.constant(r),stop:o,prevent:i,kill:u,raw:y.constant(a)});g(d)}}},_a=function(e,t,n,r,o){var i=za(n,r);return e.dom().addEventListener(t,i,o),{unbind:y.curry(Ha,e,t,i,o)}},Ha=function(e,t,n,r){e.dom().removeEventListener(t,n,r)},Va=function(e,t,n,r){return _a(e,t,n,r,!1)},Ua=function(e,t,n,r){return _a(e,t,n,r,!0)},Ga=y.constant(!0),Xa={bind:function(e,t,n){return Va(e,t,Ga,n)},capture:function(e,t,n){return Ua(e,t,Ga,n)}},Ya=Fa.mode({compare:function(e,t){return Xr(t.left()-e.left(),t.top()-e.top())},extract:function(e){return x.some(Xr(e.x(),e.y()))},sink:function(e,t){var n,r,o,i=(n=t,r=Mo.merge({layerClass:ja.resolve("blocker")},n),o=Y.fromTag("div"),vt.set(o,"role","presentation"),Zt.setAll(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),bi.add(o,ja.resolve("blocker")),bi.add(o,r.layerClass),{element:function(){return o},destroy:function(){un.remove(o)}}),u=Xa.bind(i.element(),"mousedown",e.forceDrop),a=Xa.bind(i.element(),"mouseup",e.drop),c=Xa.bind(i.element(),"mousemove",e.move),l=Xa.bind(i.element(),"mouseout",e.delayDrop);return Fa.sink({element:i.element,start:function(e){nn.append(e,i.element())},stop:function(){un.remove(i.element())},destroy:function(){i.destroy(),a.unbind(),c.unbind(),l.unbind(),u.unbind()}})},mutate:function(e,t){e.mutate(t.left(),t.top())}});function Ka(){var i=x.none(),u=qa.create({move:La(["info"])});return{onEvent:function(e,o){o.extract(e).each(function(e){var t,n,r;(t=o,n=e,r=i.map(function(e){return t.compare(e,n)}),i=x.some(n),r).each(function(e){u.trigger.move(e)})})},reset:function(){i=x.none()},events:u.registry}}function $a(){var e={onEvent:function(e,t){},reset:y.noop},t=Ka(),n=e;return{on:function(){n.reset(),n=t},off:function(){n.reset(),n=e},isOn:function(){return n===t},onEvent:function(e,t){n.onEvent(e,t)},events:t.events}}var Ja=function(t,n){var r=null;return{cancel:function(){null!==r&&(clearTimeout(r),r=null)},throttle:function(){var e=arguments;null!==r&&clearTimeout(r),r=setTimeout(function(){t.apply(null,e),e=r=null},n)}}},Qa=function(t,n,e){var r=!1,o=qa.create({start:La([]),stop:La([])}),i=$a(),u=function(){l.stop(),i.isOn()&&(i.off(),o.trigger.stop())},a=Ja(u,200);i.events.move.bind(function(e){n.mutate(t,e.info())});var c=function(t){return function(){var e=Array.prototype.slice.call(arguments,0);if(r)return t.apply(null,e)}},l=n.sink(Fa.api({forceDrop:u,drop:c(u),move:c(function(e,t){a.cancel(),i.onEvent(e,n)}),delayDrop:c(a.throttle)}),e);return{element:l.element,go:function(e){l.start(e),i.on(),o.trigger.start()},on:function(){r=!0},off:function(){r=!1},destroy:function(){l.destroy()},events:o.registry}},Za={transform:function(e,t){var n=t!==undefined?t:{},r=n.mode!==undefined?n.mode:Ya;return Qa(e,r,t)}};function ec(){var n,r=qa.create({drag:La(["xDelta","yDelta","target"])}),o=x.none(),e={mutate:function(e,t){n.trigger.drag(e,t)},events:(n=qa.create({drag:La(["xDelta","yDelta"])})).registry};return e.events.drag.bind(function(t){o.each(function(e){r.trigger.drag(t.xDelta(),t.yDelta(),e)})}),{assign:function(e){o=x.some(e)},get:function(){return o},mutate:e.mutate,events:r.registry}}var tc={any:function(e){return Wt.first(e).isSome()},ancestor:function(e,t,n){return Wt.ancestor(e,t,n).isSome()},sibling:function(e,t){return Wt.sibling(e,t).isSome()},child:function(e,t){return Wt.child(e,t).isSome()},descendant:function(e,t){return Wt.descendant(e,t).isSome()},closest:function(e,t,n){return Wt.closest(e,t,n).isSome()}},nc=oi.resolve("resizer-bar-dragging");function rc(e,n){var r=ao.height,t=function(o,t,i){var n=ec(),r=Za.transform(n,{}),u=x.none(),e=function(e,t){return x.from(vt.get(e,t))};n.events.drag.bind(function(n){e(n.target(),"data-row").each(function(e){var t=vu.getInt(n.target(),"top");Zt.set(n.target(),"top",t+n.yDelta()+"px")}),e(n.target(),"data-column").each(function(e){var t=vu.getInt(n.target(),"left");Zt.set(n.target(),"left",t+n.xDelta()+"px")})});var a=function(e,t){return vu.getInt(e,t)-parseInt(vt.get(e,"data-initial-"+t),10)};r.events.stop.bind(function(){n.get().each(function(r){u.each(function(n){e(r,"data-row").each(function(e){var t=a(r,"top");vt.remove(r,"data-initial-top"),d.trigger.adjustHeight(n,t,parseInt(e,10))}),e(r,"data-column").each(function(e){var t=a(r,"left");vt.remove(r,"data-initial-left"),d.trigger.adjustWidth(n,t,parseInt(e,10))}),Ai.refresh(o,n,i,t)})})});var c=function(e,t){d.trigger.startAdjust(),n.assign(e),vt.set(e,"data-initial-"+t,parseInt(Zt.get(e,t),10)),bi.add(e,nc),Zt.set(e,"opacity","0.2"),r.go(o.parent())},l=Xa.bind(o.parent(),"mousedown",function(e){Ai.isRowBar(e.target())&&c(e.target(),"top"),Ai.isColBar(e.target())&&c(e.target(),"left")}),s=function(e){return Ke.eq(e,o.view())},f=Xa.bind(o.view(),"mouseover",function(e){"table"===dt.name(e.target())||tc.closest(e.target(),"table",s)?(u="table"===dt.name(e.target())?x.some(e.target()):Wt.ancestor(e.target(),"table",s)).each(function(e){Ai.refresh(o,e,i,t)}):yt.inBody(e.target())&&Ai.destroy(o)}),d=qa.create({adjustHeight:La(["table","delta","row"]),adjustWidth:La(["table","delta","column"]),startAdjust:La([])});return{destroy:function(){l.unbind(),f.unbind(),r.destroy(),Ai.destroy(o)},refresh:function(e){Ai.refresh(o,e,i,t)},on:r.on,off:r.off,hideBars:y.curry(Ai.hide,o),showBars:y.curry(Ai.show,o),events:d.registry}}(e,n,r),o=qa.create({beforeResize:La(["table"]),afterResize:La(["table"]),startDrag:La([])});return t.events.adjustHeight.bind(function(e){o.trigger.beforeResize(e.table());var t=r.delta(e.delta(),e.table());Iu.adjustHeight(e.table(),t,e.row(),r),o.trigger.afterResize(e.table())}),t.events.startAdjust.bind(function(e){o.trigger.startDrag()}),t.events.adjustWidth.bind(function(e){o.trigger.beforeResize(e.table());var t=n.delta(e.delta(),e.table());Iu.adjustWidth(e.table(),t,e.column(),n),o.trigger.afterResize(e.table())}),{on:t.on,off:t.off,hideBars:t.hideBars,showBars:t.showBars,destroy:t.destroy,events:o.registry}}var oc=function(e,t){return e.inline?Ma(Gu.getBody(e),(n=Y.fromTag("div"),Zt.setAll(n,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),nn.append(yt.body(),n),n)):Wa(Y.fromDom(e.getDoc()));var n},ic=function(e,t){e.inline&&un.remove(t.parent())},uc=function(u){var a,c,o=x.none(),i=x.none(),l=x.none(),s=/(\d+(\.\d+)?)%/,f=function(e){return"TABLE"===e.nodeName};return u.on("init",function(){var e,t=lo(Ju.directionAt),n=oc(u);if(l=x.some(n),("table"===(e=u.getParam("object_resizing",!0))||e)&&u.getParam("table_resize_bars",!0,"boolean")){var r=rc(n,t);r.on(),r.events.startDrag.bind(function(e){o=x.some(u.selection.getRng())}),r.events.afterResize.bind(function(e){var t=e.table(),n=Ct.descendants(t,"td[data-mce-style],th[data-mce-style]");E.each(n,function(e){vt.remove(e,"data-mce-style")}),o.each(function(e){u.selection.setRng(e),u.focus()}),u.undoManager.add()}),i=x.some(r)}}),u.on("ObjectResizeStart",function(e){var t,n=e.target;f(n)&&(a=e.width,t=n,c=u.dom.getStyle(t,"width")||u.dom.getAttrib(t,"width"))}),u.on("ObjectResized",function(e){var t=e.target;if(f(t)){var n=t;if(s.test(c)){var r=parseFloat(s.exec(c)[1]),o=e.width*r/a;u.dom.setStyle(n,"width",o+"%")}else{var i=[];ga.each(n.rows,function(e){ga.each(e.cells,function(e){var t=u.dom.getStyle(e,"width",!0);i.push({cell:e,width:t})})}),ga.each(i,function(e){u.dom.setStyle(e.cell,"width",e.width),u.dom.setAttrib(e.cell,"width",null)})}}}),{lazyResize:function(){return i},lazyWire:function(){return l.getOr(Wa(Y.fromDom(u.getBody())))},destroy:function(){i.each(function(e){e.destroy()}),l.each(function(e){ic(u,e)})}}},ac=function(e){return{fold:e}},cc=function(o){return ac(function(e,t,n,r){return e(o)})},lc=function(o){return ac(function(e,t,n,r){return t(o)})},sc=function(o,i){return ac(function(e,t,n,r){return n(o,i)})},fc=function(o){return ac(function(e,t,n,r){return r(o)})},dc=function(n,e){return zt.table(n,e).bind(function(e){var t=zt.cells(e);return E.findIndex(t,function(e){return Ke.eq(n,e)}).map(function(e){return{index:y.constant(e),all:y.constant(t)}})})},mc=function(t,e){return dc(t,e).fold(function(){return cc(t)},function(e){return e.index()+1<e.all().length?sc(t,e.all()[e.index()+1]):fc(t)})},gc=function(t,e){return dc(t,e).fold(function(){return cc()},function(e){return 0<=e.index()-1?sc(t,e.all()[e.index()-1]):lc(t)})},pc=mr([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),hc={before:pc.before,on:pc.on,after:pc.after,cata:function(e,t,n,r){return e.fold(t,n,r)},getStart:function(e){return e.fold(y.identity,y.identity,y.identity)}},vc=mr([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),bc=F.immutable("start","soffset","finish","foffset"),wc={domRange:vc.domRange,relative:vc.relative,exact:vc.exact,exactFromRange:function(e){return vc.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:bc,getWin:function(e){var t=e.match({domRange:function(e){return Y.fromDom(e.startContainer)},relative:function(e,t){return hc.getStart(e)},exact:function(e,t,n,r){return e}});return rt.defaultView(t)}},yc=function(e,t,n,r){var o=rt.owner(e).dom().createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},xc=function(e,t,n,r){var o=yc(e,t,n,r),i=Ke.eq(e,n)&&t===r;return o.collapsed&&!i},Sc=function(e,t){var n=(t||document).createDocumentFragment();return E.each(e,function(e){n.appendChild(e.dom())}),Y.fromDom(n)},Cc=function(e,t){e.selectNodeContents(t.dom())},Rc=function(e){e.deleteContents()},Tc=function(e){return{left:y.constant(e.left),top:y.constant(e.top),right:y.constant(e.right),bottom:y.constant(e.bottom),width:y.constant(e.width),height:y.constant(e.height)}},Ac={create:function(e){return e.document.createRange()},replaceWith:function(e,t){Rc(e),e.insertNode(t.dom())},selectNodeContents:function(e,t){var n=e.document.createRange();return Cc(n,t),n},selectNodeContentsUsing:Cc,relativeToNative:function(e,t,n){var r,o,i=e.document.createRange();return r=i,t.fold(function(e){r.setStartBefore(e.dom())},function(e,t){r.setStart(e.dom(),t)},function(e){r.setStartAfter(e.dom())}),o=i,n.fold(function(e){o.setEndBefore(e.dom())},function(e,t){o.setEnd(e.dom(),t)},function(e){o.setEndAfter(e.dom())}),i},exactToNative:function(e,t,n,r,o){var i=e.document.createRange();return i.setStart(t.dom(),n),i.setEnd(r.dom(),o),i},deleteContents:Rc,cloneFragment:function(e){var t=e.cloneContents();return Y.fromDom(t)},getFirstRect:function(e){var t=e.getClientRects(),n=0<t.length?t[0]:e.getBoundingClientRect();return 0<n.width||0<n.height?x.some(n).map(Tc):x.none()},getBounds:function(e){var t=e.getBoundingClientRect();return 0<t.width||0<t.height?x.some(t).map(Tc):x.none()},isWithin:function(e,t){return t.compareBoundaryPoints(e.END_TO_START,e)<1&&-1<t.compareBoundaryPoints(e.START_TO_END,e)},toString:function(e){return e.toString()}},Dc=mr([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),kc=function(e,t,n){return t(Y.fromDom(n.startContainer),n.startOffset,Y.fromDom(n.endContainer),n.endOffset)},Nc=function(e,t){var o,n,r,i=(o=e,t.match({domRange:function(e){return{ltr:y.constant(e),rtl:x.none}},relative:function(e,t){return{ltr:fe(function(){return Ac.relativeToNative(o,e,t)}),rtl:fe(function(){return x.some(Ac.relativeToNative(o,t,e))})}},exact:function(e,t,n,r){return{ltr:fe(function(){return Ac.exactToNative(o,e,t,n,r)}),rtl:fe(function(){return x.some(Ac.exactToNative(o,n,r,e,t))})}}}));return(r=(n=i).ltr()).collapsed?n.rtl().filter(function(e){return!1===e.collapsed}).map(function(e){return Dc.rtl(Y.fromDom(e.endContainer),e.endOffset,Y.fromDom(e.startContainer),e.startOffset)}).getOrThunk(function(){return kc(0,Dc.ltr,r)}):kc(0,Dc.ltr,r)},Ec={ltr:Dc.ltr,rtl:Dc.rtl,diagnose:Nc,asLtrRange:function(i,e){return Nc(i,e).match({ltr:function(e,t,n,r){var o=i.document.createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},rtl:function(e,t,n,r){var o=i.document.createRange();return o.setStart(n.dom(),r),o.setEnd(e.dom(),t),o}})}},Oc=function(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom},Bc=function(e,t,n,r,o){if(0===o)return 0;if(t===r)return o-1;for(var i=r,u=1;u<o;u++){var a=e(u),c=Math.abs(t-a.left);if(n>a.bottom);else{if(n<a.top||i<c)return u-1;i=c}}return 0},Pc={locate:function(l,s,f,d){var e=l.dom().createRange();e.selectNode(s.dom());var t=e.getClientRects();return qo(t,function(e){return Oc(e,f,d)?x.some(e):x.none()}).map(function(e){return n=l,r=s,t=f,o=d,i=e,u=function(e){var t=n.dom().createRange();return t.setStart(r.dom(),e),t.collapse(!0),t},a=hn.get(r).length,c=Bc(function(e){return u(e).getBoundingClientRect()},t,o,i.right,a),u(c);var n,r,t,o,i,u,a,c})}},Ic=function(t,e,n,r){var o=t.dom().createRange(),i=rt.children(e);return qo(i,function(e){return o.selectNode(e.dom()),Oc(o.getBoundingClientRect(),n,r)?Wc(t,e,n,r):x.none()})},Wc=function(e,t,n,r){return(dt.isText(t)?Pc.locate:Ic)(e,t,n,r)},Mc=function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return Wc(e,t,u,a)},Lc=function(e,t){return t-e.left<e.right-t},qc=function(e,t,n){var r=e.dom().createRange();return r.selectNode(t.dom()),r.collapse(n),r},Fc=function(t,e,n){var r=t.dom().createRange();r.selectNode(e.dom());var o=r.getBoundingClientRect(),i=Lc(o,n);return(!0===i?Sn.first:Sn.last)(e).map(function(e){return qc(t,e,i)})},jc=function(e,t,n){var r=t.dom().getBoundingClientRect(),o=Lc(r,n);return x.some(qc(e,t,o))},zc=function(e,t,n){return(0===rt.children(t).length?jc:Fc)(e,t,n)},_c=document.caretPositionFromPoint?function(n,e,t){return x.from(n.dom().caretPositionFromPoint(e,t)).bind(function(e){if(null===e.offsetNode)return x.none();var t=n.dom().createRange();return t.setStart(e.offsetNode,e.offset),t.collapse(),x.some(t)})}:document.caretRangeFromPoint?function(e,t,n){return x.from(e.dom().caretRangeFromPoint(t,n))}:function(n,r,o){return Y.fromPoint(n,r,o).bind(function(e){var t=function(){return zc(n,e,r)};return 0===rt.children(e).length?t():function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return Mc(e,t,u,a)}(n,e,r,o).orThunk(t)})},Hc=function(e,t,n){var r=Y.fromDom(e.document);return _c(r,t,n).map(function(e){return wc.range(Y.fromDom(e.startContainer),e.startOffset,Y.fromDom(e.endContainer),e.endOffset)})},Vc=function(e,t,n){var r,o,i,u,a,c,l=Ec.asLtrRange(e,t),s=Y.fromDom(l.commonAncestorContainer);return dt.isElement(s)?(r=e,o=s,i=l,u=n,a=Ac.create(r),c=(ne.is(o,u)?[o]:[]).concat(Ct.descendants(o,u)),E.filter(c,function(e){return Ac.selectNodeContentsUsing(a,e),Ac.isWithin(i,a)})):[]},Uc=function(e,t){var n=dt.name(e);return"input"===n?hc.after(e):E.contains(["br","img"],n)?0===t?hc.before(e):hc.after(e):hc.on(e,t)},Gc=function(e,t){var n=e.fold(hc.before,Uc,hc.after),r=t.fold(hc.before,Uc,hc.after);return wc.relative(n,r)},Xc=function(e,t,n,r){var o=Uc(e,t),i=Uc(n,r);return wc.relative(o,i)},Yc=function(e){return e.match({domRange:function(e){var t=Y.fromDom(e.startContainer),n=Y.fromDom(e.endContainer);return Xc(t,e.startOffset,n,e.endOffset)},relative:Gc,exact:Xc})},Kc=Gc,$c=Xc,Jc=function(e,t){x.from(e.getSelection()).each(function(e){e.removeAllRanges(),e.addRange(t)})},Qc=function(e,t,n,r,o){var i=Ac.exactToNative(e,t,n,r,o);Jc(e,i)},Zc=function(i,e){return Ec.diagnose(i,e).match({ltr:function(e,t,n,r){Qc(i,e,t,n,r)},rtl:function(e,t,n,r){var o=i.getSelection();o.setBaseAndExtent?o.setBaseAndExtent(e.dom(),t,n.dom(),r):o.extend?(o.collapse(e.dom(),t),o.extend(n.dom(),r)):Qc(i,n,r,e,t)}})},el=function(e){var t=Y.fromDom(e.anchorNode),n=Y.fromDom(e.focusNode);return xc(t,e.anchorOffset,n,e.focusOffset)?x.some(wc.range(Y.fromDom(e.anchorNode),e.anchorOffset,Y.fromDom(e.focusNode),e.focusOffset)):function(e){if(0<e.rangeCount){var t=e.getRangeAt(0),n=e.getRangeAt(e.rangeCount-1);return x.some(wc.range(Y.fromDom(t.startContainer),t.startOffset,Y.fromDom(n.endContainer),n.endOffset))}return x.none()}(e)},tl=function(e){var t=e.getSelection();return 0<t.rangeCount?el(t):x.none()},nl={setExact:function(e,t,n,r,o){var i=$c(t,n,r,o);Zc(e,i)},getExact:tl,get:function(e){return tl(e).map(function(e){return wc.exact(e.start(),e.soffset(),e.finish(),e.foffset())})},setRelative:function(e,t,n){var r=Kc(t,n);Zc(e,r)},toNative:function(e){var o=wc.getWin(e).dom(),t=function(e,t,n,r){return Ac.exactToNative(o,e,t,n,r)},n=Yc(e);return Ec.diagnose(o,n).match({ltr:t,rtl:t})},setToElement:function(e,t){var n=Ac.selectNodeContents(e,t);Jc(e,n)},clear:function(e){e.getSelection().removeAllRanges()},clone:function(e,t){var n=Ec.asLtrRange(e,t);return Ac.cloneFragment(n)},replace:function(e,t,n){var r=Ec.asLtrRange(e,t),o=Sc(n,e.document);Ac.replaceWith(r,o)},deleteAt:function(e,t){var n=Ec.asLtrRange(e,t);Ac.deleteContents(n)},forElement:function(e,t){var n=Ac.selectNodeContents(e,t);return wc.range(Y.fromDom(n.startContainer),n.startOffset,Y.fromDom(n.endContainer),n.endOffset)},getFirstRect:function(e,t){var n=Ec.asLtrRange(e,t);return Ac.getFirstRect(n)},getBounds:function(e,t){var n=Ec.asLtrRange(e,t);return Ac.getBounds(n)},getAtPoint:function(e,t,n){return Hc(e,t,n)},findWithin:function(e,t,n){return Vc(e,t,n)},getAsString:function(e,t){var n=Ec.asLtrRange(e,t);return Ac.toString(n)},isCollapsed:function(e,t,n,r){return Ke.eq(e,n)&&t===r}},rl=tinymce.util.Tools.resolve("tinymce.util.VK"),ol=function(e,t,n,r){return al(e,t,mc(n),r)},il=function(e,t,n,r){return al(e,t,gc(n),r)},ul=function(e,t){var n=wc.exact(t,0,t,0);return nl.toNative(n)},al=function(i,e,t,u,n){return t.fold(x.none,x.none,function(e,t){return Sn.first(t).map(function(e){return ul(0,e)})},function(o){return zt.table(o,e).bind(function(e){var t,n,r=Sr.noMenu(o);return i.undoManager.transact(function(){u.insertRowsAfter(e,r)}),t=e,n=Ct.descendants(t,"tr"),E.last(n).bind(function(e){return Wt.descendant(e,"td,th").map(function(e){return ul(0,e)})})})})},cl=["table","li","dl"],ll={handle:function(t,n,r,o){if(t.keyCode===rl.TAB){var i=Gu.getBody(n),u=function(e){var t=dt.name(e);return Ke.eq(e,i)||E.contains(cl,t)},e=n.selection.getRng();if(e.collapsed){var a=Y.fromDom(e.startContainer);zt.cell(a,u).each(function(e){t.preventDefault(),(t.shiftKey?il:ol)(n,u,e,r,o).each(function(e){n.selection.setRng(e)})})}}}},sl={response:F.immutable("selection","kill")},fl=function(t){return function(e){return e===t}},dl=fl(38),ml=fl(40),gl={ltr:{isBackward:fl(37),isForward:fl(39)},rtl:{isBackward:fl(39),isForward:fl(37)},isUp:dl,isDown:ml,isNavigation:function(e){return 37<=e&&e<=40}},pl={convertToRange:function(e,t){var n=Ec.asLtrRange(e,t);return{start:y.constant(Y.fromDom(n.startContainer)),soffset:y.constant(n.startOffset),finish:y.constant(Y.fromDom(n.endContainer)),foffset:y.constant(n.endOffset)}},makeSitus:function(e,t,n,r){return{start:y.constant(hc.on(e,t)),finish:y.constant(hc.on(n,r))}}},hl=Ge.detect().browser.isSafari(),vl=function(e){var t=e!==undefined?e.dom():document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop;return Xr(n,r)},bl=function(e,t,n){(n!==undefined?n.dom():document).defaultView.scrollTo(e,t)},wl=function(e,t){hl&&g.isFunction(e.dom().scrollIntoViewIfNeeded)?e.dom().scrollIntoViewIfNeeded(!1):e.dom().scrollIntoView(t)},yl={get:vl,to:bl,by:function(e,t,n){(n!==undefined?n.dom():document).defaultView.scrollBy(e,t)},preserve:function(e,t){var n=vl(e);t();var r=vl(e);n.top()===r.top()&&n.left()===r.left()||bl(n.left(),n.top(),e)},capture:function(t){var e=x.none(),n=function(){e=x.some(vl(t))};return n(),{save:n,restore:function(){e.each(function(e){bl(e.left(),e.top(),t)})}}},intoView:wl,intoViewIfNeeded:function(e,t){var n=t.dom().getBoundingClientRect(),r=e.dom().getBoundingClientRect();r.top<n.top?wl(e,!0):r.bottom>n.bottom&&wl(e,!1)},setToElement:function(e,t){var n=$r(t),r=Y.fromDom(e.document);bl(n.left(),n.top(),r)},scrollBarWidth:function(){var e=Y.fromHtml('<div style="width: 100px; height: 100px; overflow: scroll; position: absolute; top: -9999px;"></div>');nn.after(yt.body(),e);var t=e.dom().offsetWidth-e.dom().clientWidth;return un.remove(e),t}};function xl(i){return{elementFromPoint:function(e,t){return x.from(i.document.elementFromPoint(e,t)).map(Y.fromDom)},getRect:function(e){return e.dom().getBoundingClientRect()},getRangedRect:function(e,t,n,r){var o=wc.exact(e,t,n,r);return nl.getFirstRect(i,o).map(function(e){return M.map(e,y.apply)})},getSelection:function(){return nl.get(i).map(function(e){return pl.convertToRange(i,e)})},fromSitus:function(e){var t=wc.relative(e.start(),e.finish());return pl.convertToRange(i,t)},situsFromPoint:function(e,t){return nl.getAtPoint(i,e,t).map(function(e){return{start:y.constant(hc.on(e.start(),e.soffset())),finish:y.constant(hc.on(e.finish(),e.foffset()))}})},clearSelection:function(){nl.clear(i)},setSelection:function(e){nl.setExact(i,e.start(),e.soffset(),e.finish(),e.foffset())},setRelativeSelection:function(e,t){nl.setRelative(i,e,t)},selectContents:function(e){nl.setToElement(i,e)},getInnerHeight:function(){return i.innerHeight},getScrollY:function(){return yl.get(Y.fromDom(i.document)).top()},scrollBy:function(e,t){yl.by(e,t,Y.fromDom(i.document))}}}var Sl=function(n,e,r,t,o){return Ke.eq(r,t)?x.none():ur.identify(r,t,e).bind(function(e){var t=e.boxes().getOr([]);return 0<t.length?(o(n,t,e.start(),e.finish()),x.some(sl.response(x.some(pl.makeSitus(r,0,r,wn(r))),!0))):x.none()})},Cl={sync:function(n,r,e,t,o,i,u){return Ke.eq(e,o)&&t===i?x.none():Wt.closest(e,"td,th",r).bind(function(t){return Wt.closest(o,"td,th",r).bind(function(e){return Sl(n,r,t,e,u)})})},detect:Sl,update:function(e,t,n,r,o){return ur.shiftSelection(r,e,t,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(e){return o.clear(n),o.selectRange(n,e.boxes(),e.start(),e.finish()),e.boxes()})}},Rl=F.immutableBag(["left","top","right","bottom"],[]),Tl={nu:Rl,moveUp:function(e,t){return Rl({left:e.left(),top:e.top()-t,right:e.right(),bottom:e.bottom()-t})},moveDown:function(e,t){return Rl({left:e.left(),top:e.top()+t,right:e.right(),bottom:e.bottom()+t})},moveBottomTo:function(e,t){var n=e.bottom()-e.top();return Rl({left:e.left(),top:t-n,right:e.right(),bottom:t})},moveTopTo:function(e,t){var n=e.bottom()-e.top();return Rl({left:e.left(),top:t,right:e.right(),bottom:t+n})},getTop:function(e){return e.top()},getBottom:function(e){return e.bottom()},translate:function(e,t,n){return Rl({left:e.left()+t,top:e.top()+n,right:e.right()+t,bottom:e.bottom()+n})},toString:function(e){return"("+e.left()+", "+e.top()+") -> ("+e.right()+", "+e.bottom()+")"}},Al=function(e){return Tl.nu({left:e.left,top:e.top,right:e.right,bottom:e.bottom})},Dl=function(e,t){return x.some(e.getRect(t))},kl=function(e,t,n){return dt.isElement(t)?Dl(e,t).map(Al):dt.isText(t)?(r=e,o=t,i=n,0<=i&&i<wn(o)?r.getRangedRect(o,i,o,i+1):0<i?r.getRangedRect(o,i-1,o,i):x.none()).map(Al):x.none();var r,o,i},Nl=function(e,t){return dt.isElement(t)?Dl(e,t).map(Al):dt.isText(t)?e.getRangedRect(t,0,t,wn(t)).map(Al):x.none()},El=F.immutable("item","mode"),Ol=function(e,t,n,r){var o=r!==undefined?r:Bl;return e.property().parent(t).map(function(e){return El(e,o)})},Bl=function(e,t,n,r){var o=r!==undefined?r:Pl;return n.sibling(e,t).map(function(e){return El(e,o)})},Pl=function(e,t,n,r){var o=r!==undefined?r:Pl,i=e.property().children(t);return n.first(i).map(function(e){return El(e,o)})},Il=[{current:Ol,next:Bl,fallback:x.none()},{current:Bl,next:Pl,fallback:x.some(Ol)},{current:Pl,next:Pl,fallback:x.some(Bl)}],Wl=function(t,n,r,o,e){return e=e!==undefined?e:Il,E.find(e,function(e){return e.current===r}).bind(function(e){return e.current(t,n,o,e.next).orThunk(function(){return e.fallback.bind(function(e){return Wl(t,n,e,o)})})})},Ml={backtrack:Ol,sidestep:Bl,advance:Pl,go:Wl},Ll={left:function(){return{sibling:function(e,t){return e.query().prevSibling(t)},first:function(e){return 0<e.length?x.some(e[e.length-1]):x.none()}}},right:function(){return{sibling:function(e,t){return e.query().nextSibling(t)},first:function(e){return 0<e.length?x.some(e[0]):x.none()}}}},ql=function(t,e,n,r,o,i){return Ml.go(t,e,r,o).bind(function(e){return i(e.item())?x.none():n(e.item())?x.some(e.item()):ql(t,e.item(),n,e.mode(),o,i)})},Fl=function(e,t,n,r){return ql(e,t,n,Ml.sidestep,Ll.left(),r)},jl=function(e,t,n,r){return ql(e,t,n,Ml.sidestep,Ll.right(),r)},zl=function(e,t){return 0===e.property().children(t).length},_l=function(e,t,n,r){return Fl(e,t,n,r)},Hl=function(e,t,n,r){return jl(e,t,n,r)},Vl={before:function(e,t,n){return _l(e,t,y.curry(zl,e),n)},after:function(e,t,n){return Hl(e,t,y.curry(zl,e),n)},seekLeft:_l,seekRight:Hl,walkers:function(){return{left:Ll.left,right:Ll.right}},walk:function(e,t,n,r,o){return Ml.go(e,t,n,r,o)},backtrack:Ml.backtrack,sidestep:Ml.sidestep,advance:Ml.advance},Ul=On(),Gl={gather:function(e,t,n){return Vl.gather(Ul,e,t,n)},before:function(e,t){return Vl.before(Ul,e,t)},after:function(e,t){return Vl.after(Ul,e,t)},seekLeft:function(e,t,n){return Vl.seekLeft(Ul,e,t,n)},seekRight:function(e,t,n){return Vl.seekRight(Ul,e,t,n)},walkers:function(){return Vl.walkers()},walk:function(e,t,n,r){return Vl.walk(Ul,e,t,n,r)}},Xl=mr([{none:[]},{retry:["caret"]}]),Yl=function(t,e,r){return Pt.closest(e,No).fold(y.constant(!1),function(e){return Nl(t,e).exists(function(e){return n=e,(t=r).left()<n.left()||Math.abs(n.right()-t.left())<1||t.left()>n.right();var t,n})})},Kl={point:Tl.getTop,adjuster:function(e,t,n,r,o){var i=Tl.moveUp(o,5);return Math.abs(n.top()-r.top())<1?Xl.retry(i):n.bottom()<o.top()?Xl.retry(i):n.bottom()===o.top()?Xl.retry(Tl.moveUp(o,1)):Yl(e,t,o)?Xl.retry(Tl.translate(i,5,0)):Xl.none()},move:Tl.moveUp,gather:Gl.before},$l={point:Tl.getBottom,adjuster:function(e,t,n,r,o){var i=Tl.moveDown(o,5);return Math.abs(n.bottom()-r.bottom())<1?Xl.retry(i):n.top()>o.bottom()?Xl.retry(i):n.top()===o.bottom()?Xl.retry(Tl.moveDown(o,1)):Yl(e,t,o)?Xl.retry(Tl.translate(i,5,0)):Xl.none()},move:Tl.moveDown,gather:Gl.after},Jl=function(n,r,o,i,u){return 0===u?x.some(i):(c=n,l=i.left(),s=r.point(i),c.elementFromPoint(l,s).filter(function(e){return"table"===dt.name(e)}).isSome()?(t=i,a=u-1,Jl(n,e=r,o,e.move(t,5),a)):n.situsFromPoint(i.left(),r.point(i)).bind(function(e){return e.start().fold(x.none,function(t,e){return Nl(n,t,e).bind(function(e){return r.adjuster(n,t,e,o,i).fold(x.none,function(e){return Jl(n,r,o,e,u-1)})}).orThunk(function(){return x.some(i)})},x.none)}));var e,t,a,c,l,s},Ql=function(t,n,e){var r,o,i,u=t.move(e,5),a=Jl(n,t,e,u,100).getOr(u);return(r=t,o=a,i=n,r.point(o)>i.getInnerHeight()?x.some(r.point(o)-i.getInnerHeight()):r.point(o)<0?x.some(-r.point(o)):x.none()).fold(function(){return n.situsFromPoint(a.left(),t.point(a))},function(e){return n.scrollBy(0,e),n.situsFromPoint(a.left(),t.point(a)-e)})},Zl={tryUp:y.curry(Ql,Kl),tryDown:y.curry(Ql,$l),ieTryUp:function(e,t){return e.situsFromPoint(t.left(),t.top()-5)},ieTryDown:function(e,t){return e.situsFromPoint(t.left(),t.bottom()+5)},getJumpSize:y.constant(5)},es=mr([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}]),ts=function(e){return Wt.closest(e,"tr")},ns={verify:function(a,e,t,n,r,c,o){return Wt.closest(n,"td,th",o).bind(function(u){return Wt.closest(e,"td,th",o).map(function(i){return Ke.eq(u,i)?Ke.eq(n,u)&&wn(u)===r?c(i):es.none("in same cell"):zn(ts,[u,i]).fold(function(){return t=i,n=u,r=(e=a).getRect(t),(o=e.getRect(n)).right>r.left&&o.left<r.right?es.success():c(i);var e,t,n,r,o},function(e){return c(i)})})}).getOr(es.none("default"))},cata:function(e,t,n,r,o){return e.fold(t,n,r,o)},adt:es},rs={point:F.immutable("element","offset"),delta:F.immutable("element","deltaOffset"),range:F.immutable("element","start","finish"),points:F.immutable("begin","end"),text:F.immutable("element","text")},os=(F.immutable("ancestor","descendants","element","index"),F.immutable("parent","children","element","index")),is=function(e,t){return E.findIndex(e,y.curry(Ke.eq,t))},us=function(r){return rt.parent(r).bind(function(t){var n=rt.children(t);return is(n,r).map(function(e){return os(t,n,r,e)})})},as=function(e){return"br"===dt.name(e)},cs=function(e,t,n){return t(e,n).bind(function(e){return dt.isText(e)&&0===hn.get(e).trim().length?cs(e,t,n):x.some(e)})},ls=function(t,e,n,r){return(o=e,i=n,rt.child(o,i).filter(as).orThunk(function(){return rt.child(o,i-1).filter(as)})).bind(function(e){return r.traverse(e).fold(function(){return cs(e,r.gather,t).map(r.relative)},function(e){return us(e).map(function(e){return hc.on(e.parent(),e.index())})})});var o,i},ss=function(e,t,n,r){var o,i,u;return(as(t)?(o=e,i=t,(u=r).traverse(i).orThunk(function(){return cs(i,u.gather,o)}).map(u.relative)):ls(e,t,n,r)).map(function(e){return{start:y.constant(e),finish:y.constant(e)}})},fs=function(e){return ns.cata(e,function(e){return x.none()},function(){return x.none()},function(e){return x.some(rs.point(e,0))},function(e){return x.some(rs.point(e,wn(e)))})},ds=Ge.detect(),ms=function(r,o,i,u,a,c){return 0===c?x.none():hs(r,o,i,u,a).bind(function(e){var t=r.fromSitus(e),n=ns.verify(r,i,u,t.finish(),t.foffset(),a.failure,o);return ns.cata(n,function(){return x.none()},function(){return x.some(e)},function(e){return Ke.eq(i,e)&&0===u?gs(r,i,u,Tl.moveUp,a):ms(r,o,e,0,a,c-1)},function(e){return Ke.eq(i,e)&&u===wn(e)?gs(r,i,u,Tl.moveDown,a):ms(r,o,e,wn(e),a,c-1)})})},gs=function(t,e,n,r,o){return kl(t,e,n).bind(function(e){return ps(t,o,r(e,Zl.getJumpSize()))})},ps=function(e,t,n){return ds.browser.isChrome()||ds.browser.isSafari()||ds.browser.isFirefox()||ds.browser.isEdge()?t.otherRetry(e,n):ds.browser.isIE()?t.ieRetry(e,n):x.none()},hs=function(t,e,n,r,o){return kl(t,n,r).bind(function(e){return ps(t,o,e)})},vs=function(t,n,r){return(o=t,i=n,u=r,o.getSelection().bind(function(r){return ss(i,r.finish(),r.foffset(),u).fold(function(){return x.some(rs.point(r.finish(),r.foffset()))},function(e){var t=o.fromSitus(e),n=ns.verify(o,r.finish(),r.foffset(),t.finish(),t.foffset(),u.failure,i);return fs(n)})})).bind(function(e){return ms(t,n,e.element(),e.offset(),r,20).map(t.fromSitus)});var o,i,u},bs=function(e,t,n){return Pt.ancestor(e,t,n).isSome()},ws=Ge.detect(),ys=function(r,o,i,e,u){return Wt.closest(e,"td,th",o).bind(function(n){return Wt.closest(n,"table",o).bind(function(e){return t=e,bs(u,function(e){return rt.parent(e).exists(function(e){return Ke.eq(e,t)})})?vs(r,o,i).bind(function(t){return Wt.closest(t.finish(),"td,th",o).map(function(e){return{start:y.constant(n),finish:y.constant(e),range:y.constant(t)}})}):x.none();var t})})},xs=function(e,t,n,r,o,i){return ws.browser.isIE()?x.none():i(r,t).orThunk(function(){return ys(e,t,n,r,o).map(function(e){var t=e.range();return sl.response(x.some(pl.makeSitus(t.start(),t.soffset(),t.finish(),t.foffset())),!0)})})},Ss=function(e,t,n,r,o,i,u){return ys(e,n,r,o,i).bind(function(e){return Cl.detect(t,n,e.start(),e.finish(),u)})},Cs=function(e,r){return Wt.closest(e,"tr",r).bind(function(n){return Wt.closest(n,"table",r).bind(function(e){var t=Ct.descendants(e,"tr");return Ke.eq(n,t[0])?Gl.seekLeft(e,function(e){return Sn.last(e).isSome()},r).map(function(e){var t=wn(e);return sl.response(x.some(pl.makeSitus(e,t,e,t)),!0)}):x.none()})})},Rs=function(e,r){return Wt.closest(e,"tr",r).bind(function(n){return Wt.closest(n,"table",r).bind(function(e){var t=Ct.descendants(e,"tr");return Ke.eq(n,t[t.length-1])?Gl.seekRight(e,function(e){return Sn.first(e).isSome()},r).map(function(e){return sl.response(x.some(pl.makeSitus(e,0,e,0)),!0)}):x.none()})})},Ts=function(e,t){return Wt.closest(e,"td,th",t)},As={down:{traverse:rt.nextSibling,gather:Gl.after,relative:hc.before,otherRetry:Zl.tryDown,ieRetry:Zl.ieTryDown,failure:ns.adt.failedDown},up:{traverse:rt.prevSibling,gather:Gl.before,relative:hc.before,otherRetry:Zl.tryUp,ieRetry:Zl.ieTryUp,failure:ns.adt.failedUp}},Ds=F.immutable("rows","cols"),ks={mouse:function(e,t,n,r){var o,i,u,a,c,l,s=xl(e),f=(o=s,i=t,u=n,a=r,c=x.none(),l=function(){c=x.none()},{mousedown:function(e){a.clear(i),c=Ts(e.target(),u)},mouseover:function(e){c.each(function(r){a.clear(i),Ts(e.target(),u).each(function(n){ur.identify(r,n,u).each(function(e){var t=e.boxes().getOr([]);(1<t.length||1===t.length&&!Ke.eq(r,n))&&(a.selectRange(i,t,e.start(),e.finish()),o.selectContents(n))})})})},mouseup:function(){c.each(l)}});return{mousedown:f.mousedown,mouseover:f.mouseover,mouseup:f.mouseup}},keyboard:function(e,c,l,s){var f=xl(e),d=function(){return s.clear(c),x.none()};return{keydown:function(e,t,n,r,o,i){var u=e.raw().which,a=!0===e.raw().shiftKey;return ur.retrieve(c,s.selectedSelector()).fold(function(){return gl.isDown(u)&&a?y.curry(Ss,f,c,l,As.down,r,t,s.selectRange):gl.isUp(u)&&a?y.curry(Ss,f,c,l,As.up,r,t,s.selectRange):gl.isDown(u)?y.curry(xs,f,l,As.down,r,t,Rs):gl.isUp(u)?y.curry(xs,f,l,As.up,r,t,Cs):x.none},function(t){var e=function(e){return function(){return qo(e,function(e){return Cl.update(e.rows(),e.cols(),c,t,s)}).fold(function(){return ur.getEdges(c,s.firstSelectedSelector(),s.lastSelectedSelector()).map(function(e){var t=gl.isDown(u)||i.isForward(u)?hc.after:hc.before;return f.setRelativeSelection(hc.on(e.first(),0),t(e.table())),s.clear(c),sl.response(x.none(),!0)})},function(e){return x.some(sl.response(x.none(),!0))})}};return gl.isDown(u)&&a?e([Ds(1,0)]):gl.isUp(u)&&a?e([Ds(-1,0)]):i.isBackward(u)&&a?e([Ds(0,-1),Ds(-1,0)]):i.isForward(u)&&a?e([Ds(0,1),Ds(1,0)]):gl.isNavigation(u)&&!1===a?d:x.none})()},keyup:function(t,n,r,o,i){return ur.retrieve(c,s.selectedSelector()).fold(function(){var e=t.raw().which;return 0==(!0===t.raw().shiftKey)?x.none():gl.isNavigation(e)?Cl.sync(c,l,n,r,o,i,s.selectRange):x.none()},x.none)}}}},Ns=function(t,e){E.each(e,function(e){bi.remove(t,e)})},Es=function(t){return function(e){bi.add(e,t)}},Os=function(t){return function(e){Ns(e,t)}},Bs={byClass:function(o){var i=Es(o.selected()),n=Os([o.selected(),o.lastSelected(),o.firstSelected()]),u=function(e){var t=Ct.descendants(e,o.selectedSelector());E.each(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),E.each(t,i),bi.add(n,o.firstSelected()),bi.add(r,o.lastSelected())},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}},byAttr:function(o){var n=function(e){vt.remove(e,o.selected()),vt.remove(e,o.firstSelected()),vt.remove(e,o.lastSelected())},i=function(e){vt.set(e,o.selected(),"1")},u=function(e){var t=Ct.descendants(e,o.selectedSelector());E.each(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),E.each(t,i),vt.set(n,o.firstSelected(),"1"),vt.set(r,o.lastSelected(),"1")},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}}};function Ps(p,h){var v=F.immutableBag(["mousedown","mouseover","mouseup","keyup","keydown"],[]),b=x.none(),w=Bs.byAttr(dr);return p.on("init",function(e){var r=p.getWin(),i=Gu.getBody(p),t=Gu.getIsRoot(p),n=ks.mouse(r,i,t,w),a=ks.keyboard(r,i,t,w),c=function(e,t){!0===e.raw().shiftKey&&(t.kill()&&e.kill(),t.selection().each(function(e){var t=wc.relative(e.start(),e.finish()),n=Ec.asLtrRange(r,t);p.selection.setRng(n)}))},o=function(e){var t=s(e);if(t.raw().shiftKey&&gl.isNavigation(t.raw().which)){var n=p.selection.getRng(),r=Y.fromDom(n.startContainer),o=Y.fromDom(n.endContainer);a.keyup(t,r,n.startOffset,o,n.endOffset).each(function(e){c(t,e)})}},u=function(e){var t=s(e);h().each(function(e){e.hideBars()});var n=p.selection.getRng(),r=Y.fromDom(p.selection.getStart()),o=Y.fromDom(n.startContainer),i=Y.fromDom(n.endContainer),u=Ju.directionAt(r).isRtl()?gl.rtl:gl.ltr;a.keydown(t,o,n.startOffset,i,n.endOffset,u).each(function(e){c(t,e)}),h().each(function(e){e.showBars()})},l=function(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")},s=function(e){var t=Y.fromDom(e.target),n=function(){e.stopPropagation()},r=function(){e.preventDefault()},o=y.compose(r,n);return{target:y.constant(t),x:y.constant(l(e)?e.x:null),y:y.constant(l(e)?e.y:null),stop:n,prevent:r,kill:o,raw:y.constant(e)}},f=function(e){return 0===e.button},d=function(e){f(e)&&n.mousedown(s(e))},m=function(e){var t;((t=e).buttons===undefined||0!=(1&t.buttons))&&n.mouseover(s(e))},g=function(e){f(e)&&n.mouseup(s(e))};p.on("mousedown",d),p.on("mouseover",m),p.on("mouseup",g),p.on("keyup",o),p.on("keydown",u),p.on("nodechange",function(){var e=p.selection,t=Y.fromDom(e.getStart()),n=Y.fromDom(e.getEnd()),r=zt.table(t),o=zt.table(n);r.bind(function(t){return o.bind(function(e){return Ke.eq(t,e)?x.some(!0):x.none()})}).fold(function(){w.clear(i)},y.noop)}),b=x.some(v({mousedown:d,mouseover:m,mouseup:g,keyup:o,keydown:u}))}),{clear:w.clear,destroy:function(){b.each(function(e){})}}}var Is=function(t){return{get:function(){var e=Gu.getBody(t);return ar(e,dr.selectedSelector()).fold(function(){return t.selection.getStart()===undefined?pr.none():pr.single(t.selection)},function(e){return pr.multiple(e)})}}},Ws=ga.each,Ms={addButtons:function(t){var n=[];function e(e){return function(){t.execCommand(e)}}Ws("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"===e?n.push({text:"-"}):n.push(t.menuItems[e])}),t.addButton("table",{type:"menubutton",title:"Table",menu:n}),t.addButton("tableprops",{title:"Table properties",onclick:y.curry(Ba,t,!0),icon:"table"}),t.addButton("tabledelete",{title:"Delete table",onclick:e("mceTableDelete")}),t.addButton("tablecellprops",{title:"Cell properties",onclick:e("mceTableCellProps")}),t.addButton("tablemergecells",{title:"Merge cells",onclick:e("mceTableMergeCells")}),t.addButton("tablesplitcells",{title:"Split cell",onclick:e("mceTableSplitCells")}),t.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:e("mceTableInsertRowBefore")}),t.addButton("tableinsertrowafter",{title:"Insert row after",onclick:e("mceTableInsertRowAfter")}),t.addButton("tabledeleterow",{title:"Delete row",onclick:e("mceTableDeleteRow")}),t.addButton("tablerowprops",{title:"Row properties",onclick:e("mceTableRowProps")}),t.addButton("tablecutrow",{title:"Cut row",onclick:e("mceTableCutRow")}),t.addButton("tablecopyrow",{title:"Copy row",onclick:e("mceTableCopyRow")}),t.addButton("tablepasterowbefore",{title:"Paste row before",onclick:e("mceTablePasteRowBefore")}),t.addButton("tablepasterowafter",{title:"Paste row after",onclick:e("mceTablePasteRowAfter")}),t.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:e("mceTableInsertColBefore")}),t.addButton("tableinsertcolafter",{title:"Insert column after",onclick:e("mceTableInsertColAfter")}),t.addButton("tabledeletecol",{title:"Delete column",onclick:e("mceTableDeleteCol")})},addToolbars:function(t){var e,n=""===(e=t.getParam("table_toolbar",Qu))||!1===e?[]:g.isString(e)?e.split(/[ ,]/):g.isArray(e)?e:[];0<n.length&&t.addContextToolbar(function(e){return t.dom.is(e,"table")&&t.getBody().contains(e)},n.join(" "))}},Ls={addMenuItems:function(o,n){var r=x.none(),i=[],u=[],a=[],c=[],l=function(e){e.disabled(!0)},s=function(e){e.disabled(!1)},e=function(){var t=this;i.push(t),r.fold(function(){l(t)},function(e){s(t)})},t=function(){var t=this;u.push(t),r.fold(function(){l(t)},function(e){s(t)})};o.on("init",function(){o.on("nodechange",function(e){var t=x.from(o.dom.getParent(o.selection.getStart(),"th,td"));(r=t.bind(function(e){var t=Y.fromDom(e);return zt.table(t).map(function(e){return Sr.forMenu(n,e,t)})})).fold(function(){E.each(i,l),E.each(u,l),E.each(a,l),E.each(c,l)},function(t){E.each(i,s),E.each(u,s),E.each(a,function(e){e.disabled(t.mergable().isNone())}),E.each(c,function(e){e.disabled(t.unmergable().isNone())})})})});var f=function(e,t,n,r){var o,i,u,a,c,l=r.getEl().getElementsByTagName("table")[0],s=r.isRtl()||"tl-tr"===r.parent().rel;for(l.nextSibling.innerHTML=t+1+" x "+(n+1),s&&(t=9-t),i=0;i<10;i++)for(o=0;o<10;o++)a=l.rows[i].childNodes[o].firstChild,c=(s?t<=o:o<=t)&&i<=n,e.dom.toggleClass(a,"mce-active",c),c&&(u=a);return u.parentNode},d=!1===o.getParam("table_grid",!0,"boolean")?{text:"Table",icon:"table",context:"table",onclick:y.curry(Ba,o)}:{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),Ba(o))},onshow:function(){f(o,0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){e+="<tr>";for(var n=0;n<10;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"===r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"===this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(f(o,t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"===e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){Na(o,t.lastX+1,t.lastY+1)}),o.addVisual())}}]};function m(e){return function(){o.execCommand(e)}}var g={text:"Table properties",context:"table",onPostRender:e,onclick:y.curry(Ba,o,!0)},p={text:"Delete table",context:"table",onPostRender:e,cmd:"mceTableDelete"},h={text:"Row",context:"table",menu:[{text:"Insert row before",onclick:m("mceTableInsertRowBefore"),onPostRender:t},{text:"Insert row after",onclick:m("mceTableInsertRowAfter"),onPostRender:t},{text:"Delete row",onclick:m("mceTableDeleteRow"),onPostRender:t},{text:"Row properties",onclick:m("mceTableRowProps"),onPostRender:t},{text:"-"},{text:"Cut row",onclick:m("mceTableCutRow"),onPostRender:t},{text:"Copy row",onclick:m("mceTableCopyRow"),onPostRender:t},{text:"Paste row before",onclick:m("mceTablePasteRowBefore"),onPostRender:t},{text:"Paste row after",onclick:m("mceTablePasteRowAfter"),onPostRender:t}]},v={text:"Column",context:"table",menu:[{text:"Insert column before",onclick:m("mceTableInsertColBefore"),onPostRender:t},{text:"Insert column after",onclick:m("mceTableInsertColAfter"),onPostRender:t},{text:"Delete column",onclick:m("mceTableDeleteCol"),onPostRender:t}]},b={separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:m("mceTableCellProps"),onPostRender:t},{text:"Merge cells",onclick:m("mceTableMergeCells"),onPostRender:function(){var t=this;a.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.mergable().isNone())})}},{text:"Split cell",onclick:m("mceTableSplitCells"),onPostRender:function(){var t=this;c.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.unmergable().isNone())})}}]};o.addMenuItem("inserttable",d),o.addMenuItem("tableprops",g),o.addMenuItem("deletetable",p),o.addMenuItem("row",h),o.addMenuItem("column",v),o.addMenuItem("cell",b)}},qs=function(n,o){return{insertTable:function(e,t){return Na(n,e,t)},setClipboardRows:function(e){return t=e,n=o,r=E.map(t,Y.fromDom),void n.set(x.from(r));var t,n,r},getClipboardRows:function(){return o.get().fold(function(){},function(e){return E.map(e,function(e){return e.dom()})})}}};u.add("table",function(t){var n=uc(t),e=Ps(t,n.lazyResize),r=da(t,n.lazyWire),o=Is(t),i=fo(x.none());return Ia.registerCommands(t,r,e,o,i),Cr.registerEvents(t,o,r,e),Ls.addMenuItems(t,o),Ms.addButtons(t),Ms.addToolbars(t),t.on("PreInit",function(){t.serializer.addTempAttr(dr.firstSelected()),t.serializer.addTempAttr(dr.lastSelected())}),ta(t)&&t.on("keydown",function(e){ll.handle(e,t,r,n.lazyWire)}),t.on("remove",function(){n.destroy(),e.destroy()}),qs(t,i)})}();
1
+ !function(){"use strict";var e,t,n,r,o,i=tinymce.util.Tools.resolve("tinymce.PluginManager"),y=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},x=function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},C=function(e){return function(){return e}},u=function(e){return e},R=function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var u=new Array(arguments.length-1),n=1;n<arguments.length;n++)u[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=u.concat(n);return i.apply(null,o)}},m=function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},a=function(e){return e()},c=C(!1),l=C(!0),f=c,s=l,d=function(){return g},g=(r={fold:function(e,t){return e()},is:f,isSome:f,isNone:s,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:n,orThunk:t,map:d,ap:d,each:function(){},bind:d,flatten:d,exists:f,forall:s,filter:d,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:C("none()")},Object.freeze&&Object.freeze(r),r),h=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:s,isNone:f,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return h(e(n))},ap:function(e){return e.fold(d,function(e){return h(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:g},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(f,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},S={some:h,none:d,from:function(e){return null===e||e===undefined?g:h(e)}},p=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},v=p("string"),b=p("array"),w=p("boolean"),T=p("function"),N=p("number"),D=(o=Array.prototype.indexOf)===undefined?function(e,t){return _(e,t)}:function(e,t){return o.call(e,t)},E=function(e,t){return-1<D(e,t)},O=function(e,t){return W(e,t).isSome()},A=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},k=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},P=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},I=function(e,t,n){return function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)}(e,function(e){n=t(n,e)}),n},B=function(e,t,n){return k(e,function(e){n=t(n,e)}),n},M=function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return S.some(o)}return S.none()},W=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return S.some(n);return S.none()},_=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},L=Array.prototype.push,q=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);L.apply(t,e[n])}return t},F=function(e,t){var n=A(e,t);return q(n)},j=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},z=Array.prototype.slice,H=function(e){var t=z.call(e,0);return t.reverse(),t},U=(T(Array.from)&&Array.from,Object.keys),V=function(e,t){for(var n=U(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},G=function(e,r){return Y(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},Y=function(r,o){var i={};return V(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},X=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return k(t,function(e,t){r[e]=C(n[t])}),r}},K=function(e){return e.slice(0).sort()},J=function(e,t){throw new Error("All required keys ("+K(e).join(", ")+") were not specified. Specified keys were: "+K(t).join(", ")+".")},$=function(e){throw new Error("Unsupported keys for object: "+K(e).join(", "))},Q=function(t,e){if(!b(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");k(e,function(e){if(!v(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},Z=function(e){var n=K(e);M(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})},ee=function(o,i){var u=o.concat(i);if(0===u.length)throw new Error("You must specify at least one required or optional field.");return Q("required",o),Q("optional",i),Z(u),function(t){var n=U(t);j(o,function(e){return E(n,e)})||J(o,n);var e=P(n,function(e){return!E(u,e)});0<e.length&&$(e);var r={};return k(o,function(e){r[e]=C(t[e])}),k(i,function(e){r[e]=C(Object.prototype.hasOwnProperty.call(t,e)?S.some(t[e]):S.none())}),r}},te=X("width","height"),ne=X("rows","columns"),re=X("row","column"),oe=X("x","y"),ie=X("element","rowspan","colspan"),ue=X("element","rowspan","colspan","isNew"),ae={dimensions:te,grid:ne,address:re,coords:oe,extended:X("element","rowspan","colspan","row","column"),detail:ie,detailnew:ue,rowdata:X("element","cells","section"),elementnew:X("element","isNew"),rowdatanew:X("element","cells","section","isNew"),rowcells:X("cells","section"),rowdetails:X("details","section"),bounds:X("startRow","startCol","finishRow","finishCol")},ce=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:C(e)}},le={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return ce(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return ce(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return ce(n)},fromDom:ce,fromPoint:function(e,t,n){var r=e.dom();return S.from(r.elementFromPoint(t,n)).map(ce)}},fe={ATTRIBUTE:Node.ATTRIBUTE_NODE,CDATA_SECTION:Node.CDATA_SECTION_NODE,COMMENT:Node.COMMENT_NODE,DOCUMENT:Node.DOCUMENT_NODE,DOCUMENT_TYPE:Node.DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT:Node.DOCUMENT_FRAGMENT_NODE,ELEMENT:Node.ELEMENT_NODE,TEXT:Node.TEXT_NODE,PROCESSING_INSTRUCTION:Node.PROCESSING_INSTRUCTION_NODE,ENTITY_REFERENCE:Node.ENTITY_REFERENCE_NODE,ENTITY:Node.ENTITY_NODE,NOTATION:Node.NOTATION_NODE},se=fe.ELEMENT,de=fe.DOCUMENT,me=function(e){return e.nodeType!==se&&e.nodeType!==de||0===e.childElementCount},ge={all:function(e,t){var n=t===undefined?document:t.dom();return me(n)?[]:A(n.querySelectorAll(e),le.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==se)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return me(n)?S.none():S.from(n.querySelector(e)).map(le.fromDom)}},he=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},pe="undefined"!=typeof window?window:Function("return this;")(),ve=function(e,t){return function(e,t){for(var n=t!==undefined&&null!==t?t:pe,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n}(e.split("."),t)},be=function(e,t){var n=ve(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n},we=function(){return be("Node")},ye=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},xe=function(e,t){return ye(e,t,we().DOCUMENT_POSITION_CONTAINED_BY)},Ce=function(n){var r,o=!1;return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return o||(o=!0,r=n.apply(null,e)),r}},Re=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return Te(r(1),r(2))},Se=function(){return Te(0,0)},Te=function(e,t){return{major:e,minor:t}},Ne={nu:Te,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?Se():Re(e,n)},unknown:Se},De="Firefox",Ee=function(e,t){return function(){return t===e}},Oe=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Ee("Edge",t),isChrome:Ee("Chrome",t),isIE:Ee("IE",t),isOpera:Ee("Opera",t),isFirefox:Ee(De,t),isSafari:Ee("Safari",t)}},Ae={unknown:function(){return Oe({current:undefined,version:Ne.unknown()})},nu:Oe,edge:C("Edge"),chrome:C("Chrome"),ie:C("IE"),opera:C("Opera"),firefox:C(De),safari:C("Safari")},ke="Windows",Pe="Android",Ie="Solaris",Be="FreeBSD",Me=function(e,t){return function(){return t===e}},We=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Me(ke,t),isiOS:Me("iOS",t),isAndroid:Me(Pe,t),isOSX:Me("OSX",t),isLinux:Me("Linux",t),isSolaris:Me(Ie,t),isFreeBSD:Me(Be,t)}},_e={unknown:function(){return We({current:undefined,version:Ne.unknown()})},nu:We,windows:C(ke),ios:C("iOS"),android:C(Pe),linux:C("Linux"),osx:C("OSX"),solaris:C(Ie),freebsd:C(Be)},Le=function(e,t){var n=String(t).toLowerCase();return M(e,function(e){return e.search(n)})},qe=function(e,n){return Le(e,n).map(function(e){var t=Ne.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Fe=function(e,n){return Le(e,n).map(function(e){var t=Ne.detect(e.versionRegexes,n);return{current:e.name,version:t}})},je=function(e,t){return-1!==e.indexOf(t)},ze=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,He=function(t){return function(e){return je(e,t)}},Ue=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return je(e,"edge/")&&je(e,"chrome")&&je(e,"safari")&&je(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,ze],search:function(e){return je(e,"chrome")&&!je(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return je(e,"msie")||je(e,"trident")}},{name:"Opera",versionRegexes:[ze,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:He("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:He("firefox")},{name:"Safari",versionRegexes:[ze,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(je(e,"safari")||je(e,"mobile/"))&&je(e,"applewebkit")}}],Ve=[{name:"Windows",search:He("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return je(e,"iphone")||je(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:He("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:He("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:He("linux"),versionRegexes:[]},{name:"Solaris",search:He("sunos"),versionRegexes:[]},{name:"FreeBSD",search:He("freebsd"),versionRegexes:[]}],Ge={browsers:C(Ue),oses:C(Ve)},Ye=function(e){var t,n,r,o,i,u,a,c,l,f,s,d=Ge.browsers(),m=Ge.oses(),g=qe(d,e).fold(Ae.unknown,Ae.nu),h=Fe(m,e).fold(_e.unknown,_e.nu);return{browser:g,os:h,deviceType:(n=g,r=e,o=(t=h).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,u=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,c=o||u||a&&!0===/mobile/i.test(r),l=t.isiOS()||t.isAndroid(),f=l&&!c,s=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:C(o),isiPhone:C(i),isTablet:C(c),isPhone:C(f),isTouch:C(l),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:C(s)})}},Xe={detect:Ce(function(){var e=navigator.userAgent;return Ye(e)})},Ke=function(e,t){return e.dom()===t.dom()},Je=Xe.detect().browser.isIE()?function(e,t){return xe(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},$e={eq:Ke,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return O(t,R(Ke,e))},contains:Je,is:ge.is},Qe=function(e){var t=e.dom();return S.from(t.parentNode).map(le.fromDom)},Ze=function(e){var t=e.dom();return S.from(t.previousSibling).map(le.fromDom)},et=function(e){var t=e.dom();return S.from(t.nextSibling).map(le.fromDom)},tt=function(e){var t=e.dom();return A(t.childNodes,le.fromDom)},nt=function(e,t){var n=e.dom().childNodes;return S.from(n[t]).map(le.fromDom)},rt=X("element","offset"),ot={owner:function(e){return le.fromDom(e.dom().ownerDocument)},defaultView:function(e){var t=e.dom().ownerDocument.defaultView;return le.fromDom(t)},documentElement:function(e){return le.fromDom(e.dom().ownerDocument.documentElement)},parent:Qe,findIndex:function(n){return Qe(n).bind(function(e){var t=tt(e);return W(t,function(e){return $e.eq(n,e)})})},parents:function(e,t){for(var n=T(t)?t:C(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,u=le.fromDom(i);if(o.push(u),!0===n(u))break;r=i}return o},siblings:function(t){return Qe(t).map(tt).map(function(e){return P(e,function(e){return!$e.eq(t,e)})}).getOr([])},prevSibling:Ze,offsetParent:function(e){var t=e.dom();return S.from(t.offsetParent).map(le.fromDom)},prevSiblings:function(e){return H(he(e,Ze))},nextSibling:et,nextSiblings:function(e){return he(e,et)},children:tt,child:nt,firstChild:function(e){return nt(e,0)},lastChild:function(e){return nt(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=tt(e);return 0<n.length&&t<n.length?rt(n[t],0):rt(e,t)}},it=function(e,t,n){return F(ot.children(e),function(e){return ge.is(e,t)?n(e)?[e]:[]:it(e,t,n)})},ut={firstLayer:function(e,t){return it(e,t,C(!0))},filterFirstLayer:it},at=function(e){return e.dom().nodeName.toLowerCase()},ct=function(e){return e.dom().nodeType},lt=function(t){return function(e){return ct(e)===t}},ft=lt(fe.ELEMENT),st=lt(fe.TEXT),dt=lt(fe.DOCUMENT),mt={name:at,type:ct,value:function(e){return e.dom().nodeValue},isElement:ft,isText:st,isDocument:dt,isComment:function(e){return ct(e)===fe.COMMENT||"#comment"===at(e)}},gt=function(e,t,n){if(!(v(n)||w(n)||N(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},ht=function(e,t,n){gt(e.dom(),t,n)},pt=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},vt=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},bt={clone:function(e){return B(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},set:ht,setAll:function(e,t){var n=e.dom();V(t,function(e,t){gt(n,t,e)})},get:pt,has:vt,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(o,i,e){mt.isElement(o)&&mt.isElement(i)&&k(e,function(e){var t,n,r;n=i,vt(t=o,r=e)&&!vt(n,r)&&ht(n,r,pt(t,r))})}},wt=Ce(function(){return yt(le.fromDom(document))}),yt=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return le.fromDom(t)},xt={body:wt,getBody:yt,inBody:function(e){var t=mt.isText(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},Ct=function(e,t){var n=[];return k(ot.children(e),function(e){t(e)&&(n=n.concat([e])),n=n.concat(Ct(e,t))}),n},Rt={all:function(e){return Ct(xt.body(),e)},ancestors:function(e,t,n){return P(ot.parents(e,n),t)},siblings:function(e,t){return P(ot.siblings(e),t)},children:function(e,t){return P(ot.children(e),t)},descendants:Ct},St={all:function(e){return ge.all(e)},ancestors:function(e,t,n){return Rt.ancestors(e,function(e){return ge.is(e,t)},n)},siblings:function(e,t){return Rt.siblings(e,function(e){return ge.is(e,t)})},children:function(e,t){return Rt.children(e,function(e){return ge.is(e,t)})},descendants:function(e,t){return ge.all(t,e)}};function Tt(e,t,n,r,o){return e(n,r)?S.some(n):T(o)&&o(n)?S.none():t(n,r,o)}var Nt,Dt,Et,Ot,At,kt=function(e,t,n){for(var r=e.dom(),o=T(n)?n:C(!1);r.parentNode;){r=r.parentNode;var i=le.fromDom(r);if(t(i))return S.some(i);if(o(i))break}return S.none()},Pt=function(e,t){return M(e.dom().childNodes,x(t,le.fromDom)).map(le.fromDom)},It=function(e,r){var o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(le.fromDom(e.childNodes[t])))return S.some(le.fromDom(e.childNodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return S.none()};return o(e.dom())},Bt={first:function(e){return It(xt.body(),e)},ancestor:kt,closest:function(e,t,n){return Tt(function(e){return t(e)},kt,e,t,n)},sibling:function(t,n){var e=t.dom();return e.parentNode?Pt(le.fromDom(e.parentNode),function(e){return!$e.eq(t,e)&&n(e)}):S.none()},child:Pt,descendant:It},Mt=function(e,t,n){return Bt.ancestor(e,function(e){return ge.is(e,t)},n)},Wt={first:function(e){return ge.one(e)},ancestor:Mt,sibling:function(e,t){return Bt.sibling(e,function(e){return ge.is(e,t)})},child:function(e,t){return Bt.child(e,function(e){return ge.is(e,t)})},descendant:function(e,t){return ge.one(t,e)},closest:function(e,t,n){return Tt(ge.is,Mt,e,t,n)}},_t=function(e,t,n){var r=n!==undefined?n:C(!1);return r(t)?S.none():E(e,mt.name(t))?S.some(t):Wt.ancestor(t,e.join(","),function(e){return ge.is(e,"table")||r(e)})},Lt=function(t,e){return ot.parent(e).map(function(e){return St.children(e,t)})},qt=R(Lt,"th,td"),Ft=R(Lt,"tr"),jt=function(e,t){return parseInt(bt.get(e,t),10)},zt={cell:function(e,t){return _t(["td","th"],e,t)},firstCell:function(e){return Wt.descendant(e,"th,td")},cells:function(e){return ut.firstLayer(e,"th,td")},neighbourCells:qt,table:function(e,t){return Wt.closest(e,"table",t)},row:function(e,t){return _t(["tr"],e,t)},rows:function(e){return ut.firstLayer(e,"tr")},notCell:function(e,t){return _t(["caption","tr","tbody","tfoot","thead"],e,t)},neighbourRows:Ft,attr:jt,grid:function(e,t,n){var r=jt(e,t),o=jt(e,n);return ae.grid(r,o)}},Ht=function(e){var t=zt.rows(e);return A(t,function(e){var t=e,n=ot.parent(t).map(function(e){var t=mt.name(e);return"tfoot"===t||"thead"===t||"tbody"===t?t:"tbody"}).getOr("tbody"),r=A(zt.cells(e),function(e){var t=bt.has(e,"rowspan")?parseInt(bt.get(e,"rowspan"),10):1,n=bt.has(e,"colspan")?parseInt(bt.get(e,"colspan"),10):1;return ae.detail(e,t,n)});return ae.rowdata(t,r,n)})},Ut=function(e,n){return A(e,function(e){var t=A(zt.cells(e),function(e){var t=bt.has(e,"rowspan")?parseInt(bt.get(e,"rowspan"),10):1,n=bt.has(e,"colspan")?parseInt(bt.get(e,"colspan"),10):1;return ae.detail(e,t,n)});return ae.rowdata(e,t,n.section())})},Vt=function(e,t){return e+","+t},Gt=function(e,t){var n=F(e.all(),function(e){return e.cells()});return P(n,t)},Yt={generate:function(e){var f={},t=[],n=e.length,s=0;k(e,function(e,c){var l=[];k(e.cells(),function(e,t){for(var n=0;f[Vt(c,n)]!==undefined;)n++;for(var r=ae.extended(e.element(),e.rowspan(),e.colspan(),c,n),o=0;o<e.colspan();o++)for(var i=0;i<e.rowspan();i++){var u=n+o,a=Vt(c+i,u);f[a]=r,s=Math.max(s,u+1)}l.push(r)}),t.push(ae.rowdata(e.element(),l,e.section()))});var r=ae.grid(n,s);return{grid:C(r),access:C(f),all:C(t)}},getAt:function(e,t,n){var r=e.access()[Vt(t,n)];return r!==undefined?S.some(r):S.none()},findItem:function(e,t,n){var r=Gt(e,function(e){return n(t,e.element())});return 0<r.length?S.some(r[0]):S.none()},filterItems:Gt,justCells:function(e){var t=A(e.all(),function(e){return e.cells()});return q(t)}},Xt=function(e){return e.style!==undefined},Kt=function(e,t,n){if(!v(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);Xt(e)&&e.style.setProperty(t,n)},Jt=function(e,t){Xt(e)&&e.style.removeProperty(t)},$t=function(e,t,n){var r=e.dom();Kt(r,t,n)},Qt=function(e,t){return Xt(e)?e.style.getPropertyValue(t):""},Zt=function(e,t){var n=e.dom(),r=Qt(n,t);return S.from(r).filter(function(e){return 0<e.length})},en={copy:function(e,t){var n=e.dom(),r=t.dom();Xt(n)&&Xt(r)&&(r.style.cssText=n.style.cssText)},set:$t,preserve:function(e,t){var n=bt.get(e,"style"),r=t(e);return(n===undefined?bt.remove:bt.set)(e,"style",n),r},setAll:function(e,t){var n=e.dom();V(t,function(e,t){Kt(n,t,e)})},setOptions:function(e,t){var n=e.dom();V(t,function(e,t){e.fold(function(){Jt(n,t)},function(e){Kt(n,t,e)})})},remove:function(e,t){var n=e.dom();Jt(n,t),bt.has(e,"style")&&""===bt.get(e,"style").replace(/^\s+|\s+$/g,"")&&bt.remove(e,"style")},get:function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||xt.inBody(e)?r:Qt(n,t);return null===o?undefined:o},getRaw:Zt,getAllRaw:function(e){var t={},n=e.dom();if(Xt(n))for(var r=0;r<n.style.length;r++){var o=n.style.item(r);t[o]=n.style[o]}return t},isValidValue:function(e,t,n){var r=le.fromTag(e);return $t(r,t,n),Zt(r,t).isSome()},reflow:function(e){return e.dom().offsetWidth},transfer:function(r,o,e){mt.isElement(r)&&mt.isElement(o)&&k(e,function(e){var t,n;t=o,Zt(r,n=e).each(function(e){Zt(t,n).isNone()&&$t(t,n,e)})})}},tn=function(t,n){ot.parent(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})},nn=function(e,t){e.dom().appendChild(t.dom())},rn={before:tn,after:function(e,t){ot.nextSibling(e).fold(function(){ot.parent(e).each(function(e){nn(e,t)})},function(e){tn(e,t)})},prepend:function(t,n){ot.firstChild(t).fold(function(){nn(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},append:nn,appendAt:function(e,t,n){ot.child(e,n).fold(function(){nn(e,t)},function(e){tn(e,t)})},wrap:function(e,t){tn(e,t),nn(t,e)}},on={before:function(t,e){k(e,function(e){rn.before(t,e)})},after:function(r,o){k(o,function(e,t){var n=0===t?r:o[t-1];rn.after(n,e)})},prepend:function(t,e){k(e.slice().reverse(),function(e){rn.prepend(t,e)})},append:function(t,e){k(e,function(e){rn.append(t,e)})}},un=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},an={empty:function(e){e.dom().textContent="",k(ot.children(e),function(e){un(e)})},remove:un,unwrap:function(e){var t=ot.children(e);0<t.length&&on.before(e,t),un(e)}},cn=X("minRow","minCol","maxRow","maxCol"),ln=function(e,t){var n,i,r,u,a,c,l,o,f,s,d=function(e){return ge.is(e.element(),t)},m=Ht(e),g=Yt.generate(m),h=(i=d,r=(n=g).grid().columns(),u=n.grid().rows(),a=r,l=c=0,V(n.access(),function(e){if(i(e)){var t=e.row(),n=t+e.rowspan()-1,r=e.column(),o=r+e.colspan()-1;t<u?u=t:c<n&&(c=n),r<a?a=r:l<o&&(l=o)}}),cn(u,a,c,l)),p="th:not("+t+"),td:not("+t+")",v=ut.filterFirstLayer(e,"th,td",function(e){return ge.is(e,p)});return k(v,an.remove),function(e,t,n,r){for(var o,i,u,a=t.grid().columns(),c=t.grid().rows(),l=0;l<c;l++)for(var f=!1,s=0;s<a;s++)l<n.minRow()||l>n.maxRow()||s<n.minCol()||s>n.maxCol()||(Yt.getAt(t,l,s).filter(r).isNone()?(o=f,i=e[l].element(),u=le.fromTag("td"),rn.append(u,le.fromTag("br")),(o?rn.append:rn.prepend)(i,u)):f=!0)}(m,g,h,d),o=e,f=h,s=P(ut.firstLayer(o,"tr"),function(e){return 0===e.dom().childElementCount}),k(s,an.remove),f.minCol()!==f.maxCol()&&f.minRow()!==f.maxRow()||k(ut.firstLayer(o,"th,td"),function(e){bt.remove(e,"rowspan"),bt.remove(e,"colspan")}),bt.remove(o,"width"),bt.remove(o,"height"),en.remove(o,"width"),en.remove(o,"height"),e},fn=function(e,t){return le.fromDom(e.dom().cloneNode(t))},sn=function(e){return fn(e,!0)},dn=function(e,t){var n=le.fromTag(t),r=bt.clone(e);return bt.setAll(n,r),n},mn=function(e){return fn(e,!1)},gn=sn,hn=function(e,t){var n=dn(e,t),r=ot.children(sn(e));return on.append(n,r),n},pn=(Nt=mt.isText,Dt="text",Et=function(e){return Nt(e)?S.from(e.dom().nodeValue):S.none()},Ot=Xe.detect().browser,{get:function(e){if(!Nt(e))throw new Error("Can only get "+Dt+" value of a "+Dt+" node");return At(e).getOr("")},getOption:At=Ot.isIE()&&10===Ot.version.major?function(e){try{return Et(e)}catch(t){return S.none()}}:Et,set:function(e,t){if(!Nt(e))throw new Error("Can only set raw "+Dt+" value of a "+Dt+" node");e.dom().nodeValue=t}}),vn={get:function(e){return pn.get(e)},getOption:function(e){return pn.getOption(e)},set:function(e,t){pn.set(e,t)}},bn=function(e){return"img"===mt.name(e)?1:vn.getOption(e).fold(function(){return ot.children(e).length},function(e){return e.length})},wn=["img","br"],yn=bn,xn=function(e){return vn.getOption(e).filter(function(e){return 0!==e.trim().length||-1<e.indexOf("\xa0")}).isSome()||E(wn,mt.name(e))},Cn=function(e,i){var u=function(e){for(var t=ot.children(e),n=t.length-1;0<=n;n--){var r=t[n];if(i(r))return S.some(r);var o=u(r);if(o.isSome())return o}return S.none()};return u(e)},Rn={first:function(e){return Bt.descendant(e,xn)},last:function(e){return Cn(e,xn)}},Sn=function(){var e=le.fromTag("td");return rn.append(e,le.fromTag("br")),e},Tn=function(e,t,n){var r=hn(e,t);return V(n,function(e,t){null===e?bt.remove(r,t):bt.set(r,t,e)}),r},Nn=function(e){return e},Dn=function(e){return function(){return le.fromTag("tr",e.dom())}},En=function(c,e,l){return{row:Dn(e),cell:function(e){var r,o,i,t=ot.owner(e.element()),n=le.fromTag(mt.name(e.element()),t.dom()),u=l.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),a=0<u.length?(r=e.element(),o=n,i=u,Rn.first(r).map(function(e){var t=i.join(","),n=St.ancestors(e,t,function(e){return $e.eq(e,r)});return I(n,function(e,t){var n=mn(t);return bt.remove(n,"contenteditable"),rn.append(e,n),n},o)}).getOr(o)):n;return rn.append(a,le.fromTag("br")),en.copy(e.element(),n),en.remove(n,"height"),1!==e.colspan()&&en.remove(e.element(),"width"),c(e.element(),n),n},replace:Tn,gap:Sn}},On=function(e){return{row:Dn(e),cell:Sn,replace:Nn,gap:Sn}},An=function(e,t){var n=(t||document).createElement("div");return n.innerHTML=e,ot.children(le.fromDom(n))},kn=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"];function Pn(){return{up:C({selector:Wt.ancestor,closest:Wt.closest,predicate:Bt.ancestor,all:ot.parents}),down:C({selector:St.descendants,predicate:Rt.descendants}),styles:C({get:en.get,getRaw:en.getRaw,set:en.set,remove:en.remove}),attrs:C({get:bt.get,set:bt.set,remove:bt.remove,copyTo:function(e,t){var n=bt.clone(e);bt.setAll(t,n)}}),insert:C({before:rn.before,after:rn.after,afterAll:on.after,append:rn.append,appendAll:on.append,prepend:rn.prepend,wrap:rn.wrap}),remove:C({unwrap:an.unwrap,remove:an.remove}),create:C({nu:le.fromTag,clone:function(e){return le.fromDom(e.dom().cloneNode(!1))},text:le.fromText}),query:C({comparePosition:function(e,t){return e.dom().compareDocumentPosition(t.dom())},prevSibling:ot.prevSibling,nextSibling:ot.nextSibling}),property:C({children:ot.children,name:mt.name,parent:ot.parent,isText:mt.isText,isComment:mt.isComment,isElement:mt.isElement,getText:vn.get,setText:vn.set,isBoundary:function(e){return!!mt.isElement(e)&&("body"===mt.name(e)||E(kn,mt.name(e)))},isEmptyTag:function(e){return!!mt.isElement(e)&&E(["br","img","hr","input"],mt.name(e))}}),eq:$e.eq,is:$e.is}}var In=X("left","right"),Bn=function(e,t,n){var r=e.property().children(t);return W(r,R(e.eq,n)).map(function(e){return{before:C(r.slice(0,e)),after:C(r.slice(e+1))}})},Mn=function(n,r,o){return Bn(n,r,o).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.before().concat([o])),n.insert().appendAll(r,e.after()),n.insert().before(r,t),In(t,r)})},Wn=function(n,r,e){return Bn(n,r,e).map(function(e){var t=n.create().clone(r);return n.insert().appendAll(t,e.after()),n.insert().after(r,t),In(r,t)})},_n=function(i,e,u,a){var r=X("first","second","splits"),c=function(e,t,o){var n=r(e,S.none(),o);return u(e)?r(e,t,o):i.property().parent(e).bind(function(r){return a(i,r,e).map(function(e){var t=[{first:e.left,second:e.right}],n=u(r)?r:e.left();return c(n,S.some(e.right()),o.concat(t))}).getOr(n)})};return c(e,S.none(),[])},Ln=function(r,o,e,t){var n=o(r,e);return I(t,function(e,t){var n=o(r,t);return qn(r,e,n)},n)},qn=function(t,e,n){return e.bind(function(e){return n.filter(R(t.eq,e))})},Fn=function(e,t,n){return 0<n.length?Ln(e,t,(r=n)[0],r.slice(1)):S.none();var r},jn=function(e,t){return R(e.eq,t)},zn=function(t,e,n,r){var o=r!==undefined?r:C(!1),i=[e].concat(t.up().all(e)),u=[n].concat(t.up().all(n)),a=function(t){return W(t,o).fold(function(){return t},function(e){return t.slice(0,e+1)})},c=a(i),l=a(u),f=M(c,function(e){return O(l,jn(t,e))});return{firstpath:C(c),secondpath:C(l),shared:C(f)}},Hn=function(t,e,n){var r=zn(t,e,n);return r.shared().bind(function(e){return function(o,i,e,t){var u=o.property().children(i);if(o.eq(i,e[0]))return S.some([e[0]]);if(o.eq(i,t[0]))return S.some([t[0]]);var n=function(e){var t=H(e),n=W(t,jn(o,i)).getOr(-1),r=n<t.length-1?t[n+1]:t[n];return W(u,jn(o,r))},r=n(e),a=n(t);return r.bind(function(r){return a.map(function(e){var t=Math.min(r,e),n=Math.max(r,e);return u.slice(t,n+1)})})}(t,e,r.firstpath(),r.secondpath())})},Un=zn,Vn=function(e,t,n){return Fn(e,t,n)},Gn=function(e,t,n){return Hn(e,t,n)},Yn=function(e,t,n,r){return Un(e,t,n,r)},Xn=function(e,t,n){return Mn(e,t,n)},Kn=function(e,t,n){return Wn(e,t,n)},Jn=function(e,t,n,r){return _n(e,t,n,r)},$n=Pn(),Qn={sharedOne:function(n,e){return Vn($n,function(e,t){return n(t)},e)},subset:function(e,t){return Gn($n,e,t)},ancestors:function(e,t,n){return Yn($n,e,t,n)},breakToLeft:function(e,t){return Xn($n,e,t)},breakToRight:function(e,t){return Kn($n,e,t)},breakPath:function(e,t,r){return Jn($n,e,t,function(e,t,n){return r(t,n)})}},Zn=function(e,t){return t.column()>=e.startCol()&&t.column()+t.colspan()-1<=e.finishCol()&&t.row()>=e.startRow()&&t.row()+t.rowspan()-1<=e.finishRow()},er=function(e,t){var n=t.column(),r=t.column()+t.colspan()-1,o=t.row(),i=t.row()+t.rowspan()-1;return n<=e.finishCol()&&r>=e.startCol()&&o<=e.finishRow()&&i>=e.startRow()},tr=function(e,t){for(var n=!0,r=R(Zn,t),o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)n=n&&Yt.getAt(e,o,i).exists(r);return n?S.some(t):S.none()},nr=function(e,t,n){var r=Yt.findItem(e,t,$e.eq),o=Yt.findItem(e,n,$e.eq);return r.bind(function(r){return o.map(function(e){return t=r,n=e,ae.bounds(Math.min(t.row(),n.row()),Math.min(t.column(),n.column()),Math.max(t.row()+t.rowspan()-1,n.row()+n.rowspan()-1),Math.max(t.column()+t.colspan()-1,n.column()+n.colspan()-1));var t,n})})},rr=nr,or=function(t,e,n){return nr(t,e,n).bind(function(e){return tr(t,e)})},ir=function(r,e,o,i){return Yt.findItem(r,e,$e.eq).bind(function(e){var t=0<o?e.row()+e.rowspan()-1:e.row(),n=0<i?e.column()+e.colspan()-1:e.column();return Yt.getAt(r,t+o,n+i).map(function(e){return e.element()})})},ur=function(n,e,t){return rr(n,e,t).map(function(e){var t=Yt.filterItems(n,R(er,e));return A(t,function(e){return e.element()})})},ar=function(e,t){return Yt.findItem(e,t,function(e,t){return $e.contains(t,e)}).bind(function(e){return e.element()})},cr=function(e){var t=Ht(e);return Yt.generate(t)},lr=function(n,r,o){return zt.table(n).bind(function(e){var t=cr(e);return ir(t,n,r,o)})},fr=function(e,t,n){var r=cr(e);return ur(r,t,n)},sr=function(e,t,n,r,o){var i=cr(e),u=$e.eq(e,n)?t:ar(i,t),a=$e.eq(e,o)?r:ar(i,r);return ur(i,u,a)},dr=function(e,t,n){var r=cr(e);return or(r,t,n)},mr=function(e,t){return Wt.ancestor(e,"table")},gr=ee(["boxes","start","finish"],[]),hr=function(a,c,r){var l=function(t){return function(e){return r(e)||$e.eq(e,t)}};return $e.eq(a,c)?S.some(gr({boxes:S.some([a]),start:a,finish:c})):mr(a).bind(function(u){return mr(c).bind(function(i){if($e.eq(u,i))return S.some(gr({boxes:fr(u,a,c),start:a,finish:c}));if($e.contains(u,i)){var e=0<(t=St.ancestors(c,"td,th",l(u))).length?t[t.length-1]:c;return S.some(gr({boxes:sr(u,a,u,c,i),start:a,finish:e}))}if($e.contains(i,u)){var t,n=0<(t=St.ancestors(a,"td,th",l(i))).length?t[t.length-1]:a;return S.some(gr({boxes:sr(i,a,u,c,i),start:a,finish:n}))}return Qn.ancestors(a,c).shared().bind(function(e){return Wt.closest(e,"table",r).bind(function(e){var t=St.ancestors(c,"td,th",l(e)),n=0<t.length?t[t.length-1]:c,r=St.ancestors(a,"td,th",l(e)),o=0<r.length?r[r.length-1]:a;return S.some(gr({boxes:sr(e,a,u,c,i),start:o,finish:n}))})})})})},pr=hr,vr=function(e,t){var n=St.descendants(e,t);return 0<n.length?S.some(n):S.none()},br=function(e,t,n,r,o){return(i=e,u=o,M(i,function(e){return ge.is(e,u)})).bind(function(e){return lr(e,t,n).bind(function(e){return t=e,n=r,Wt.ancestor(t,"table").bind(function(e){return Wt.descendant(e,n).bind(function(e){return hr(e,t).bind(function(t){return t.boxes().map(function(e){return{boxes:C(e),start:C(t.start()),finish:C(t.finish())}})})})});var t,n})});var i,u},wr=function(e,t,r){return Wt.descendant(e,t).bind(function(n){return Wt.descendant(e,r).bind(function(t){return Qn.sharedOne(mr,[n,t]).map(function(e){return{first:C(n),last:C(t),table:C(e)}})})})},yr=function(e,t){return vr(e,t)},xr=function(o,e,t){return wr(o,e,t).bind(function(n){var e=function(e){return $e.eq(o,e)},t=Wt.ancestor(n.first(),"thead,tfoot,tbody,table",e),r=Wt.ancestor(n.last(),"thead,tfoot,tbody,table",e);return t.bind(function(t){return r.bind(function(e){return $e.eq(t,e)?dr(n.table(),n.first(),n.last()):S.none()})})})},Cr="data-mce-selected",Rr="data-mce-first-selected",Sr="data-mce-last-selected",Tr={selected:C(Cr),selectedSelector:C("td[data-mce-selected],th[data-mce-selected]"),attributeSelector:C("[data-mce-selected]"),firstSelected:C(Rr),firstSelectedSelector:C("td[data-mce-first-selected],th[data-mce-first-selected]"),lastSelected:C(Sr),lastSelectedSelector:C("td[data-mce-last-selected],th[data-mce-last-selected]")},Nr=function(u){if(!b(u))throw new Error("cases must be an array");if(0===u.length)throw new Error("there must be at least one case");var a=[],n={};return k(u,function(e,r){var t=U(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!b(i))throw new Error("case arguments must be an array");a.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==u.length)throw new Error("Wrong number of arguments to fold. Expected "+u.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=U(e);if(a.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+a.join(",")+"\nActual: "+t.join(","));if(!j(a,function(e){return E(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+a.join(", "));return e[o].apply(null,n)},log:function(e){console.log(e,{constructors:a,constructor:o,params:n})}}}}),n},Dr=Nr([{none:[]},{multiple:["elements"]},{single:["selection"]}]),Er={cata:function(e,t,n,r){return e.fold(t,n,r)},none:Dr.none,multiple:Dr.multiple,single:Dr.single},Or=function(e,t){return Er.cata(t.get(),C([]),u,C([e]))},Ar=function(n,e){return Er.cata(e.get(),S.none,function(t,e){return 0===t.length?S.none():xr(n,Tr.firstSelectedSelector(),Tr.lastSelectedSelector()).bind(function(e){return 1<t.length?S.some({bounds:C(e),cells:C(t)}):S.none()})},S.none)},kr=function(e,t){var n=Or(e,t);return 0<n.length&&j(n,function(e){return bt.has(e,"rowspan")&&1<parseInt(bt.get(e,"rowspan"),10)||bt.has(e,"colspan")&&1<parseInt(bt.get(e,"colspan"),10)})?S.some(n):S.none()},Pr=Or,Ir=function(e){return{element:C(e),mergable:S.none,unmergable:S.none,selection:C([e])}},Br=X("element","clipboard","generators"),Mr={noMenu:Ir,forMenu:function(e,t,n){return{element:C(n),mergable:C(Ar(t,e)),unmergable:C(kr(n,e)),selection:C(Pr(n,e))}},notCell:function(e){return Ir(e)},paste:Br,pasteRows:function(e,t,n,r,o){return{element:C(n),mergable:S.none,unmergable:S.none,selection:C(Pr(n,e)),clipboard:C(r),generators:C(o)}}},Wr=function(a,e,c,l){a.on("BeforeGetContent",function(n){!0===n.selection&&Er.cata(e.get(),y,function(e){var t;n.preventDefault(),(t=e,zt.table(t[0]).map(gn).map(function(e){return[ln(e,Tr.attributeSelector())]})).each(function(e){n.content=A(e,function(e){return t=e,a.selection.serializer.serialize(t.dom(),{});var t}).join("")})},y)}),a.on("BeforeSetContent",function(u){!0===u.selection&&!0===u.paste&&S.from(a.dom.getParent(a.selection.getStart(),"th,td")).each(function(e){var i=le.fromDom(e);zt.table(i).bind(function(t){var e=P(An(u.content),function(e){return"meta"!==mt.name(e)});if(1===e.length&&"table"===mt.name(e[0])){u.preventDefault();var n=le.fromDom(a.getDoc()),r=On(n),o=Mr.paste(i,e[0],r);c.pasteCells(t,o).each(function(e){a.selection.setRng(e),a.focus(),l.clear(t)})}})})})};function _r(r,o){var e=function(e){var t=o(e);if(t<=0||null===t){var n=en.get(e,r);return parseFloat(n)||0}return t},i=function(o,e){return B(e,function(e,t){var n=en.get(o,t),r=n===undefined?0:parseInt(n,10);return isNaN(r)?e:e+r},0)};return{set:function(e,t){if(!N(t)&&!t.match(/^[0-9]+$/))throw r+".set accepts only positive integer values. Value was "+t;var n=e.dom();Xt(n)&&(n.style[r]=t+"px")},get:e,getOuter:e,aggregate:i,max:function(e,t,n){var r=i(e,n);return r<t?t-r:0}}}var Lr=_r("height",function(e){var t=e.dom();return xt.inBody(e)?t.getBoundingClientRect().height:t.offsetHeight}),qr=function(e){return Lr.get(e)},Fr=function(e){return Lr.getOuter(e)},jr=_r("width",function(e){return e.dom().offsetWidth}),zr=function(e){return jr.get(e)},Hr=function(e){return jr.getOuter(e)},Ur=Xe.detect(),Vr=function(e,t,n){return r=en.get(e,t),o=n,i=parseFloat(r),isNaN(i)?o:i;var r,o,i},Gr=function(e){return Ur.browser.isIE()||Ur.browser.isEdge()?(n=Vr(t=e,"padding-top",0),r=Vr(t,"padding-bottom",0),o=Vr(t,"border-top-width",0),i=Vr(t,"border-bottom-width",0),u=t.dom().getBoundingClientRect().height,"border-box"===en.get(t,"box-sizing")?u:u-n-r-(o+i)):Vr(e,"height",qr(e));var t,n,r,o,i,u},Yr=/(\d+(\.\d+)?)(\w|%)*/,Xr=/(\d+(\.\d+)?)%/,Kr=/(\d+(\.\d+)?)px|em/,Jr=function(e,t){en.set(e,"height",t+"px")},$r=function(e,t,n,r){var o,i,u,a,c,l,f,s,d,m=parseInt(e,10);return s=l="%",d=(f=e).length-l.length,""!==s&&(f.length<s.length||f.substr(d,d+s.length)!==s)||"table"===mt.name(t)?m:(o=t,i=m,u=n,a=r,c=zt.table(o).map(function(e){var t=u(e);return Math.floor(i/100*t)}).getOr(i),a(o,c),c)},Qr=function(e){var t,n=(t=e,en.getRaw(t,"height").getOrThunk(function(){return Gr(t)+"px"}));return n?$r(n,e,qr,Jr):qr(e)},Zr=function(e,t){return bt.has(e,t)?parseInt(bt.get(e,t),10):1},eo=function(e){return en.getRaw(e,"width").fold(function(){return S.from(bt.get(e,"width"))},function(e){return S.some(e)})},to=function(e,t){return e/t.pixelWidth()*100},no={percentageBasedSizeRegex:C(Xr),pixelBasedSizeRegex:C(Kr),setPixelWidth:function(e,t){en.set(e,"width",t+"px")},setPercentageWidth:function(e,t){en.set(e,"width",t+"%")},setHeight:Jr,getPixelWidth:function(t,n){return eo(t).fold(function(){return zr(t)},function(e){return function(e,t,n){if(Kr.test(t)){var r=Kr.exec(t);return parseInt(r[1],10)}if(Xr.test(t)){var o=Xr.exec(t),i=parseFloat(o[1]);return i/100*n.pixelWidth()}return zr(e)}(t,e,n)})},getPercentageWidth:function(t,n){return eo(t).fold(function(){var e=zr(t);return to(e,n)},function(e){return function(e,t,n){if(Xr.test(t)){var r=Xr.exec(t);return parseFloat(r[1])}var o=zr(e);return to(o,n)}(t,e,n)})},getGenericWidth:function(e){return eo(e).bind(function(e){if(Yr.test(e)){var t=Yr.exec(e);return S.some({width:C(t[1]),unit:C(t[3])})}return S.none()})},setGenericWidth:function(e,t,n){en.set(e,"width",t+n)},getHeight:function(e){return n="rowspan",Qr(t=e)/Zr(t,n);var t,n},getRawWidth:eo},ro=function(n,r){no.getGenericWidth(n).each(function(e){var t=e.width()/2;no.setGenericWidth(n,t,e.unit()),no.setGenericWidth(r,t,e.unit())})},oo=function(e,t){var n=t||le.fromDom(document.documentElement);return Bt.ancestor(e,R($e.eq,n)).isSome()},io=function(e){var t=e.dom();return t===t.window&&e instanceof Window?e:mt.isDocument(e)?t.defaultView||t.parentWindow:null},uo=function(n,r){return{left:C(n),top:C(r),translate:function(e,t){return uo(n+e,r+t)}}},ao=uo,co=function(e,t){return e!==undefined?e:t!==undefined?t:0},lo=function(e){var t,n=e.dom(),r=n.ownerDocument,o=r.body,i=le.fromDom(r.documentElement);return o===n?ao(o.offsetLeft,o.offsetTop):oo(e,i)?(t=n.getBoundingClientRect(),ao(t.left,t.top)):ao(0,0)},fo=function(e){var t=e.dom().ownerDocument,n=t.body,r=io(le.fromDom(t)),o=t.documentElement,i=co(r.pageYOffset,o.scrollTop),u=co(r.pageXOffset,o.scrollLeft),a=co(o.clientTop,n.clientTop),c=co(o.clientLeft,n.clientLeft);return lo(e).translate(u-c,i-a)},so=X("row","y"),mo=X("col","x"),go=function(e){return fo(e).left()+Hr(e)},ho=function(e){return fo(e).left()},po=function(e,t){return mo(e,ho(t))},vo=function(e,t){return mo(e,go(t))},bo=function(e){return fo(e).top()},wo=function(n,t,r){if(0===r.length)return[];var e=A(r.slice(1),function(e,t){return e.map(function(e){return n(t,e)})}),o=r[r.length-1].map(function(e){return t(r.length-1,e)});return e.concat([o])},yo={delta:u,positions:R(wo,function(e,t){return so(e,bo(t))},function(e,t){return so(e,bo(t)+Fr(t))}),edge:bo},xo={delta:u,edge:ho,positions:R(wo,po,vo)},Co={height:yo,rtl:{delta:function(e,t){return-e},edge:go,positions:R(wo,vo,po)},ltr:xo},Ro={ltr:Co.ltr,rtl:Co.rtl};function So(t){var n=function(e){return t(e).isRtl()?Ro.rtl:Ro.ltr};return{delta:function(e,t){return n(t).delta(e,t)},edge:function(e){return n(e).edge(e)},positions:function(e,t){return n(t).positions(e,t)}}}var To,No=function(e){var t=Ht(e);return Yt.generate(t).grid()},Do=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Do(n())}}},Eo=function(r,o,i){if(0===o.length)throw new Error("You must specify at least one required field.");return Q("required",o),Z(o),function(t){var n=U(t);j(o,function(e){return E(n,e)})||J(o,n),r(o,n);var e=P(o,function(e){return!i.validate(t[e],e)});return 0<e.length&&function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+K(e).join(", ")+") were not.")}(e,i.label),t}},Oo=function(t,e){var n=P(e,function(e){return!E(t,e)});0<n.length&&$(n)},Ao=function(e){return Eo(Oo,e,{validate:T,label:"function"})},ko=function(e){var t=bt.has(e,"colspan")?parseInt(bt.get(e,"colspan"),10):1,n=bt.has(e,"rowspan")?parseInt(bt.get(e,"rowspan"),10):1;return{element:C(e),colspan:C(t),rowspan:C(n)}},Po=Ao(["cell","row","replace","gap"]),Io=function(r,e){Po(r);var n=Do(S.none()),o=e!==undefined?e:ko,i=function(e){var t,n=o(e);return t=n,r.cell(t)},u=function(e){var t=i(e);return n.get().isNone()&&n.set(S.some(t)),a=S.some({item:e,replacement:t}),t},a=S.none();return{getOrInit:function(t,n){return a.fold(function(){return u(t)},function(e){return n(t,e.item)?e.replacement:u(t)})},cursor:n.get}},Bo=function(o,a){return function(n){var r=Do(S.none());Po(n);var i=[],u=function(e){var t=n.replace(e,a,{scope:o});return i.push({item:e,sub:t}),r.get().isNone()&&r.set(S.some(t)),t};return{replaceOrInit:function(t,n){return(r=t,o=n,M(i,function(e){return o(e.item,r)})).fold(function(){return u(t)},function(e){return n(t,e.item)?e.sub:u(t)});var r,o},cursor:r.get}}},Mo=function(n){Po(n);var e=Do(S.none());return{combine:function(t){return e.get().isNone()&&e.set(S.some(t)),function(){var e=n.cell({element:C(t),colspan:C(1),rowspan:C(1)});return en.remove(e,"width"),en.remove(t,"width"),e}},cursor:e.get}},Wo=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","table","thead","tfoot","tbody","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],_o=function(e,t){var n=e.property().name(t);return E(Wo,n)},Lo=function(e,t){return E(["br","img","hr","input"],e.property().name(t))},qo=_o,Fo=function(e,t){var n=e.property().name(t);return E(["ol","ul"],n)},jo=Lo,zo=Pn(),Ho=function(e){return qo(zo,e)},Uo=function(e){return Fo(zo,e)},Vo=function(e){return jo(zo,e)},Go=function(e){var t,i=function(e){return"br"===mt.name(e)},n=function(o){return Rn.last(o).bind(function(n){var e,r=(e=n,ot.nextSibling(e).map(function(e){return!!Ho(e)||(Vo(e)?"img"!==mt.name(e):void 0)}).getOr(!1));return ot.parent(n).map(function(e){return!0===r||(t=e,"li"===mt.name(t)||Bt.ancestor(t,Uo).isSome())||i(n)||Ho(e)&&!$e.eq(o,e)?[]:[le.fromTag("br")];var t})}).getOr([])},r=0===(t=F(e,function(e){var t=ot.children(e);return j(t,function(e){return i(e)||mt.isText(e)&&0===vn.get(e).trim().length})?[]:t.concat(n(e))})).length?[le.fromTag("br")]:t;an.empty(e[0]),on.append(e[0],r)},Yo=Object.prototype.hasOwnProperty,Xo=(To=function(e,t){return t},function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)Yo.call(o,i)&&(n[i]=To(n[i],o[i]))}return n}),Ko=function(e){for(var t=[],n=function(e){t.push(e)},r=0;r<e.length;r++)e[r].each(n);return t},Jo=function(e,t){for(var n=0;n<e.length;n++){var r=t(e[n],n);if(r.isSome())return r}return S.none()},$o=function(e,t){return ae.rowcells(t,e.section())},Qo=function(e,t){return e.cells()[t]},Zo={addCell:function(e,t,n){var r=e.cells(),o=r.slice(0,t),i=r.slice(t),u=o.concat([n]).concat(i);return $o(e,u)},setCells:$o,mutateCell:function(e,t,n){e.cells()[t]=n},getCell:Qo,getCellElement:function(e,t){return Qo(e,t).element()},mapCells:function(e,t){var n=e.cells(),r=A(n,t);return ae.rowcells(r,e.section())},cellLength:function(e){return e.cells().length}},ei=function(e,t){if(0===e.length)return 0;var n=e[0];return W(e,function(e){return!t(n.element(),e.element())}).fold(function(){return e.length},function(e){return e})},ti=function(e,t,n,r){var o,i,u,a,c=(o=e,i=t,o[i]).cells().slice(n),l=ei(c,r),f=(u=e,a=n,A(u,function(e){return Zo.getCell(e,a)})).slice(t),s=ei(f,r);return{colspan:C(l),rowspan:C(s)}},ni=function(o,i){var u=A(o,function(e,t){return A(e.cells(),function(e,t){return!1})});return A(o,function(e,r){var t=F(e.cells(),function(e,t){if(!1===u[r][t]){var n=ti(o,r,t,i);return function(e,t,n,r){for(var o=e;o<e+n;o++)for(var i=t;i<t+r;i++)u[o][i]=!0}(r,t,n.rowspan(),n.colspan()),[ae.detailnew(e.element(),n.rowspan(),n.colspan(),e.isNew())]}return[]});return ae.rowdetails(t,e.section())})},ri=function(e,t,n){for(var r=[],o=0;o<e.grid().rows();o++){for(var i=[],u=0;u<e.grid().columns();u++){var a=Yt.getAt(e,o,u).map(function(e){return ae.elementnew(e.element(),n)}).getOrThunk(function(){return ae.elementnew(t.gap(),!0)});i.push(a)}var c=ae.rowcells(i,e.all()[o].section());r.push(c)}return r},oi=function(e,t,n,r){n===r?bt.remove(e,t):bt.set(e,t,n)},ii=function(o,e){var i=[],u=[],t=function(e,t){var n;0<e.length?function(e,t){var n=Wt.child(o,t).getOrThunk(function(){var e=le.fromTag(t,ot.owner(o).dom());return rn.append(o,e),e});an.empty(n);var r=A(e,function(e){e.isNew()&&i.push(e.element());var t=e.element();return an.empty(t),k(e.cells(),function(e){e.isNew()&&u.push(e.element()),oi(e.element(),"colspan",e.colspan(),1),oi(e.element(),"rowspan",e.rowspan(),1),rn.append(t,e.element())}),t});on.append(n,r)}(e,t):(n=t,Wt.child(o,n).each(an.remove))},n=[],r=[],a=[];return k(e,function(e){switch(e.section()){case"thead":n.push(e);break;case"tbody":r.push(e);break;case"tfoot":a.push(e)}}),t(n,"thead"),t(r,"tbody"),t(a,"tfoot"),{newRows:C(i),newCells:C(u)}},ui=function(e){return A(e,function(e){var n=mn(e.element());return k(e.cells(),function(e){var t=gn(e.element());oi(t,"colspan",e.colspan(),1),oi(t,"rowspan",e.rowspan(),1),rn.append(n,t)}),n})},ai=function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},ci=function(e,t){for(var n=[],r=e;r<t;r++)n.push(r);return n},li=function(t,n){if(n<0||n>=t.length-1)return S.none();var e=t[n].fold(function(){var e=H(t.slice(0,n));return Jo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:0})}),r=t[n+1].fold(function(){var e=t.slice(n+1);return Jo(e,function(e,t){return e.map(function(e){return{value:e,delta:t+1}})})},function(e){return S.some({value:e,delta:1})});return e.bind(function(n){return r.map(function(e){var t=e.delta+n.delta;return Math.abs(e.value-n.value)/t})})},fi=function(e,t,n){var r=e();return M(r,t).orThunk(function(){return S.from(r[0]).orThunk(n)}).map(function(e){return e.element()})},si=function(n){var e=n.grid(),t=ci(0,e.columns()),r=ci(0,e.rows());return A(t,function(t){return fi(function(){return F(r,function(e){return Yt.getAt(n,e,t).filter(function(e){return e.column()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.colspan()},function(){return Yt.getAt(n,0,t)})})},di=function(n){var e=n.grid(),t=ci(0,e.rows()),r=ci(0,e.columns());return A(t,function(t){return fi(function(){return F(r,function(e){return Yt.getAt(n,t,e).filter(function(e){return e.row()===t}).fold(C([]),function(e){return[e]})})},function(e){return 1===e.rowspan()},function(){return Yt.getAt(n,t,0)})})},mi=function(e,t,n,r,o){var i=le.fromTag("div");return en.setAll(i,{position:"absolute",left:t-r/2+"px",top:n+"px",height:o+"px",width:r+"px"}),bt.setAll(i,{"data-column":e,role:"presentation"}),i},gi=function(e,t,n,r,o){var i=le.fromTag("div");return en.setAll(i,{position:"absolute",left:t+"px",top:n-o/2+"px",height:o+"px",width:r+"px"}),bt.setAll(i,{"data-row":e,role:"presentation"}),i},hi=function(e){var t=e.replace(/\./g,"-");return{resolve:function(e){return t+"-"+e}}},pi={resolve:hi("ephox-snooker").resolve},vi=function(e,t){var n=bt.get(e,t);return n===undefined||""===n?[]:n.split(" ")},bi=vi,wi=function(e,t,n){var r=vi(e,t).concat([n]);return bt.set(e,t,r.join(" ")),!0},yi=function(e,t,n){var r=P(vi(e,t),function(e){return e!==n});return 0<r.length?bt.set(e,t,r.join(" ")):bt.remove(e,t),!1},xi=function(e){return bi(e,"class")},Ci=function(e,t){return wi(e,"class",t)},Ri=function(e,t){return yi(e,"class",t)},Si=xi,Ti=Ci,Ni=Ri,Di=function(e,t){return E(xi(e),t)?Ri(e,t):Ci(e,t)},Ei=function(e){return e.dom().classList!==undefined},Oi=function(e,t){return Ei(e)&&e.dom().classList.contains(t)},Ai={add:function(e,t){Ei(e)?e.dom().classList.add(t):Ti(e,t)},remove:function(e,t){var n;Ei(e)?e.dom().classList.remove(t):Ni(e,t),0===(Ei(n=e)?n.dom().classList:Si(n)).length&&bt.remove(n,"class")},toggle:function(e,t){return Ei(e)?e.dom().classList.toggle(t):Di(e,t)},toggler:function(e,t){var n,r,o,i,u,a,c=Ei(e),l=e.dom().classList;return n=function(){c?l.remove(t):Ni(e,t)},r=function(){c?l.add(t):Ti(e,t)},o=Oi(e,t),i=o||!1,{on:u=function(){r(),i=!0},off:a=function(){n(),i=!1},toggle:function(){(i?a:u)()},isOn:function(){return i}}},has:Oi},ki=pi.resolve("resizer-bar"),Pi=pi.resolve("resizer-rows"),Ii=pi.resolve("resizer-cols"),Bi=function(e){var t=St.descendants(e.parent(),"."+ki);k(t,an.remove)},Mi=function(n,e,r){var o=n.origin();k(e,function(e,t){e.each(function(e){var t=r(o,e);Ai.add(t,ki),rn.append(n.parent(),t)})})},Wi=function(e,t,n,r,o,i){var u,a,c,l,f=fo(t),s=0<n.length?o.positions(n,t):[];u=e,a=s,c=f,l=Hr(t),Mi(u,a,function(e,t){var n=gi(t.row(),c.left()-e.left(),t.y()-e.top(),l,7);return Ai.add(n,Pi),n});var d,m,g,h,p=0<r.length?i.positions(r,t):[];d=e,m=p,g=f,h=Fr(t),Mi(d,m,function(e,t){var n=mi(t.col(),t.x()-e.left(),g.top()-e.top(),7,h);return Ai.add(n,Ii),n})},_i=function(e,t){var n=St.descendants(e.parent(),"."+ki);k(n,t)},Li={refresh:function(e,t,n,r){Bi(e);var o=Ht(t),i=Yt.generate(o),u=di(i),a=si(i);Wi(e,t,u,a,n,r)},hide:function(e){_i(e,function(e){en.set(e,"display","none")})},show:function(e){_i(e,function(e){en.set(e,"display","block")})},destroy:Bi,isRowBar:function(e){return Ai.has(e,Pi)},isColBar:function(e){return Ai.has(e,Ii)}},qi=function(e,r){return A(e,function(e){var t,n=(t=e.details(),Jo(t,function(e){return ot.parent(e.element()).map(function(e){var t=ot.parent(e).isNone();return ae.elementnew(e,t)})}).getOrThunk(function(){return ae.elementnew(r.row(),!0)}));return ae.rowdatanew(n.element(),e.details(),e.section(),n.isNew())})},Fi=function(e,t){var n=ni(e,$e.eq);return qi(n,t)},ji=function(e,t){var n=q(A(e.all(),function(e){return e.cells()}));return M(n,function(e){return $e.eq(t,e.element())})},zi=function(a,c,l,f,s){return function(n,r,e,o,i){var t=Ht(r),u=Yt.generate(t);return c(u,e).map(function(e){var t=ri(u,o,!1),n=a(t,e,$e.eq,s(o)),r=Fi(n.grid(),o);return{grid:C(r),cursor:n.cursor}}).fold(function(){return S.none()},function(e){var t=ii(r,e.grid());return l(r,e.grid(),i),f(r),Li.refresh(n,r,Co.height,i),S.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})})}},Hi=Fi,Ui=function(t,e){return zt.cell(e.element()).bind(function(e){return ji(t,e)})},Vi=function(t,e){var n=A(e.selection(),function(e){return zt.cell(e).bind(function(e){return ji(t,e)})}),r=Ko(n);return 0<r.length?S.some(r):S.none()},Gi=function(t,n){return zt.cell(n.element()).bind(function(e){return ji(t,e).map(function(e){return Xo(e,{generators:n.generators,clipboard:n.clipboard})})})},Yi=function(t,e){var n=A(e.selection(),function(e){return zt.cell(e).bind(function(e){return ji(t,e)})}),r=Ko(n);return 0<r.length?S.some(Xo({cells:r},{generators:e.generators,clipboard:e.clipboard})):S.none()},Xi=function(e,t){return t.mergable()},Ki=function(e,t){return t.unmergable()},Ji=function(n){return{is:function(e){return n===e},isValue:l,isError:c,getOr:C(n),getOrThunk:C(n),getOrDie:C(n),or:function(e){return Ji(n)},orThunk:function(e){return Ji(n)},fold:function(e,t){return t(n)},map:function(e){return Ji(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return S.some(n)}}},$i=function(n){return{is:c,isValue:c,isError:l,getOr:u,getOrThunk:function(e){return e()},getOrDie:function(){return e=String(n),function(){throw new Error(e)}();var e},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return $i(n)},each:y,bind:function(e){return $i(n)},exists:c,forall:l,toOption:S.none}},Qi={value:Ji,error:$i},Zi=function(e,t){return A(e,function(){return ae.elementnew(t.cell(),!0)})},eu=function(t,e,n){return t.concat(ai(e,function(e){return Zo.setCells(t[t.length-1],Zi(t[t.length-1].cells(),n))}))},tu=function(e,t,n){return A(e,function(e){return Zo.setCells(e,e.cells().concat(Zi(ci(0,t),n)))})},nu=function(e,t,n){if(e.row()>=t.length||e.column()>Zo.cellLength(t[0]))return Qi.error("invalid start address out of table bounds, row: "+e.row()+", column: "+e.column());var r=t.slice(e.row()),o=r[0].cells().slice(e.column()),i=Zo.cellLength(n[0]),u=n.length;return Qi.value({rowDelta:C(r.length-u),colDelta:C(o.length-i)})},ru=function(e,t){var n=Zo.cellLength(e[0]),r=Zo.cellLength(t[0]);return{rowDelta:C(0),colDelta:C(n-r)}},ou=function(e,t,n){var r=t.colDelta()<0?tu:u;return(t.rowDelta()<0?eu:u)(r(e,Math.abs(t.colDelta()),n),Math.abs(t.rowDelta()),n)},iu=function(e,t,n,r){if(0===e.length)return e;for(var o=t.startRow();o<=t.finishRow();o++)for(var i=t.startCol();i<=t.finishCol();i++)Zo.mutateCell(e[o],i,ae.elementnew(r(),!1));return e},uu=function(e,t,n,r){for(var o=!0,i=0;i<e.length;i++)for(var u=0;u<Zo.cellLength(e[0]);u++){var a=n(Zo.getCellElement(e[i],u),t);!0===a&&!1===o?Zo.mutateCell(e[i],u,ae.elementnew(r(),!0)):!0===a&&(o=!1)}return e},au=function(i,u,a,c){if(0<u&&u<i.length){var e=i[u-1].cells(),t=(n=a,B(e,function(e,t){return O(e,function(e){return n(e.element(),t.element())})?e:e.concat([t])},[]));k(t,function(e){for(var t=S.none(),n=u;n<i.length;n++)for(var r=0;r<Zo.cellLength(i[0]);r++){var o=i[n].cells()[r];a(o.element(),e.element())&&(t.isNone()&&(t=S.some(c())),t.each(function(e){Zo.mutateCell(i[n],r,ae.elementnew(e,!0))}))}})}var n;return i},cu=function(n,r,o,i,u){return nu(n,r,o).map(function(e){var t=ou(r,e,i);return function(e,t,n,r,o){for(var i,u,a,c,l,f,s,d=e.row(),m=e.column(),g=d+n.length,h=m+Zo.cellLength(n[0]),p=d;p<g;p++)for(var v=m;v<h;v++){i=t,u=p,a=v,c=o,f=l=void 0,l=Zo.getCell(i[u],a),f=R(c,l.element()),s=i[u],1<i.length&&1<Zo.cellLength(s)&&(0<a&&f(Zo.getCellElement(s,a-1))||a<s.length-1&&f(Zo.getCellElement(s,a+1))||0<u&&f(Zo.getCellElement(i[u-1],a))||u<i.length-1&&f(Zo.getCellElement(i[u+1],a)))&&uu(t,Zo.getCellElement(t[p],v),o,r.cell);var b=Zo.getCellElement(n[p-d],v-m),w=r.replace(b);Zo.mutateCell(t[p],v,ae.elementnew(w,!0))}return t}(n,t,o,i,u)})},lu=function(e,t,n,r,o){au(t,e,o,r.cell);var i=ru(n,t),u=ou(n,i,r),a=ru(t,u),c=ou(t,a,r);return c.slice(0,e).concat(u).concat(c.slice(e,c.length))},fu=function(n,r,e,o,i){var t=n.slice(0,r),u=n.slice(r),a=Zo.mapCells(n[e],function(e,t){return 0<r&&r<n.length&&o(Zo.getCellElement(n[r-1],t),Zo.getCellElement(n[r],t))?Zo.getCell(n[r],t):ae.elementnew(i(e.element(),o),!0)});return t.concat([a]).concat(u)},su=function(e,n,r,o,i){return A(e,function(e){var t=0<n&&n<Zo.cellLength(e)&&o(Zo.getCellElement(e,n-1),Zo.getCellElement(e,n))?Zo.getCell(e,n):ae.elementnew(i(Zo.getCellElement(e,r),o),!0);return Zo.addCell(e,n,t)})},du=function(e,r,o,i,u){var a=o+1;return A(e,function(e,t){var n=t===r?ae.elementnew(u(Zo.getCellElement(e,o),i),!0):Zo.getCell(e,o);return Zo.addCell(e,a,n)})},mu=function(e,t,n,r,o){var i=t+1,u=e.slice(0,i),a=e.slice(i),c=Zo.mapCells(e[t],function(e,t){return t===n?ae.elementnew(o(e.element(),r),!0):e});return u.concat([c]).concat(a)},gu=function(e,t,n){return e.slice(0,t).concat(e.slice(n+1))},hu=function(e,n,r){var t=A(e,function(e){var t=e.cells().slice(0,n).concat(e.cells().slice(r+1));return ae.rowcells(t,e.section())});return P(t,function(e){return 0<e.cells().length})},pu=function(e,n,r,o){return A(e,function(e){return Zo.mapCells(e,function(e){return t=e,O(n,function(e){return r(t.element(),e.element())})?ae.elementnew(o(e.element(),r),!0):e;var t})})},vu=function(e,t,n,r){return Zo.getCellElement(e[t],n)!==undefined&&0<t&&r(Zo.getCellElement(e[t-1],n),Zo.getCellElement(e[t],n))},bu=function(e,t,n){return 0<t&&n(Zo.getCellElement(e,t-1),Zo.getCellElement(e,t))},wu=function(n,r,o,e){var t=F(n,function(e,t){return vu(n,t,r,o)||bu(e,r,o)?[]:[Zo.getCell(e,r)]});return pu(n,t,o,e)},yu=function(n,r,o,e){var i=n[r],t=F(i.cells(),function(e,t){return vu(n,r,t,o)||bu(i,t,o)?[]:[e]});return pu(n,t,o,e)},xu=function(e){return{fold:e}},Cu=function(){return xu(function(e,t,n,r,o){return e()})},Ru=function(i){return xu(function(e,t,n,r,o){return t(i)})},Su=function(i,u){return xu(function(e,t,n,r,o){return n(i,u)})},Tu=function(i,u,a){return xu(function(e,t,n,r,o){return r(i,u,a)})},Nu=function(i,u){return xu(function(e,t,n,r,o){return o(i,u)})},Du=function(e,t,i,u){var n,r,a=e.slice(0),o=(r=t,0===(n=e).length?Cu():1===n.length?Ru(0):0===r?Su(0,1):r===n.length-1?Nu(r-1,r):0<r&&r<n.length-1?Tu(r-1,r,r+1):Cu()),c=function(e){return A(e,C(0))},l=C(c(a)),f=function(e,t){if(0<=i){var n=Math.max(u.minCellWidth(),a[t]-i);return c(a.slice(0,e)).concat([i,n-a[t]]).concat(c(a.slice(t+1)))}var r=Math.max(u.minCellWidth(),a[e]+i),o=a[e]-r;return c(a.slice(0,e)).concat([r-a[e],o]).concat(c(a.slice(t+1)))},s=f;return o.fold(l,function(e){return u.singleColumnWidth(a[e],i)},s,function(e,t,n){return f(t,n)},function(e,t){if(0<=i)return c(a.slice(0,t)).concat([i]);var n=Math.max(u.minCellWidth(),a[t]+i);return c(a.slice(0,t)).concat([n-a[t]])})},Eu=function(e,t){return bt.has(e,t)&&1<parseInt(bt.get(e,t),10)},Ou={hasColspan:function(e){return Eu(e,"colspan")},hasRowspan:function(e){return Eu(e,"rowspan")},minWidth:C(10),minHeight:C(10),getInt:function(e,t){return parseInt(en.get(e,t),10)}},Au=function(e,t,n){return en.getRaw(e,t).fold(function(){return n(e)+"px"},function(e){return e})},ku=function(e){return Au(e,"width",no.getPixelWidth)},Pu=function(e){return Au(e,"height",no.getHeight)},Iu=function(e,t,n,r,o){var i=si(e),u=A(i,function(e){return e.map(t.edge)});return A(i,function(e,t){return e.filter(m(Ou.hasColspan)).fold(function(){var e=li(u,t);return r(e)},function(e){return n(e,o)})})},Bu=function(e){return e.map(function(e){return e+"px"}).getOr("")},Mu=function(e,t,n,r){var o=di(e),i=A(o,function(e){return e.map(t.edge)});return A(o,function(e,t){return e.filter(m(Ou.hasRowspan)).fold(function(){var e=li(i,t);return r(e)},function(e){return n(e)})})},Wu={getRawWidths:function(e,t){return Iu(e,t,ku,Bu)},getPixelWidths:function(e,t,n){return Iu(e,t,no.getPixelWidth,function(e){return e.getOrThunk(n.minCellWidth)},n)},getPercentageWidths:function(e,t,n){return Iu(e,t,no.getPercentageWidth,function(e){return e.fold(function(){return n.minCellWidth()},function(e){return e/n.pixelWidth()*100})},n)},getPixelHeights:function(e,t){return Mu(e,t,no.getHeight,function(e){return e.getOrThunk(Ou.minHeight)})},getRawHeights:function(e,t){return Mu(e,t,Pu,Bu)}},_u=function(e,t,n){for(var r=0,o=e;o<t;o++)r+=n[o]!==undefined?n[o]:0;return r},Lu=function(e,n){var t=Yt.justCells(e);return A(t,function(e){var t=_u(e.column(),e.column()+e.colspan(),n);return{element:e.element,width:C(t),colspan:e.colspan}})},qu=function(e,n){var t=Yt.justCells(e);return A(t,function(e){var t=_u(e.row(),e.row()+e.rowspan(),n);return{element:e.element,height:C(t),rowspan:e.rowspan}})},Fu=function(e,n){return A(e.all(),function(e,t){return{element:e.element,height:C(n[t])}})},ju=function(e){var t=parseInt(e,10),n=u;return{width:C(t),pixelWidth:C(t),getWidths:Wu.getPixelWidths,getCellDelta:n,singleColumnWidth:function(e,t){return[Math.max(Ou.minWidth(),e+t)-e]},minCellWidth:Ou.minWidth,setElementWidth:no.setPixelWidth,setTableWidth:function(e,t,n){var r=I(t,function(e,t){return e+t},0);no.setPixelWidth(e,r)}}},zu=function(e,t){if(no.percentageBasedSizeRegex().test(t)){var n=no.percentageBasedSizeRegex().exec(t);return o=n[1],i=e,u=parseFloat(o),a=zr(i),{width:C(u),pixelWidth:C(a),getWidths:Wu.getPercentageWidths,getCellDelta:function(e){return e/a*100},singleColumnWidth:function(e,t){return[100-e]},minCellWidth:function(){return Ou.minWidth()/a*100},setElementWidth:no.setPercentageWidth,setTableWidth:function(e,t,n){var r=u+n;no.setPercentageWidth(e,r)}}}if(no.pixelBasedSizeRegex().test(t)){var r=no.pixelBasedSizeRegex().exec(t);return ju(r[1])}var o,i,u,a,c=zr(e);return ju(c)},Hu=function(t){return no.getRawWidth(t).fold(function(){var e=zr(t);return ju(e)},function(e){return zu(t,e)})},Uu=function(e){return Yt.generate(e)},Vu=function(e){var t=Ht(e);return Uu(t)},Gu=function(e,t,n,r){var o=Hu(e),i=o.getCellDelta(t),u=Vu(e),a=o.getWidths(u,r,o),c=Du(a,n,i,o),l=A(c,function(e,t){return e+a[t]}),f=Lu(u,l);k(f,function(e){o.setElementWidth(e.element(),e.width())}),n===u.grid().columns()-1&&o.setTableWidth(e,l,i)},Yu=function(e,n,r,t){var o=Vu(e),i=Wu.getPixelHeights(o,t),u=A(i,function(e,t){return r===t?Math.max(n+e,Ou.minHeight()):e}),a=qu(o,u),c=Fu(o,u);k(c,function(e){no.setHeight(e.element(),e.height())}),k(a,function(e){no.setHeight(e.element(),e.height())});var l=I(u,function(e,t){return e+t},0);no.setHeight(e,l)},Xu=function(e,t,n){var r=Hu(e),o=Uu(t),i=r.getWidths(o,n,r),u=Lu(o,i);k(u,function(e){r.setElementWidth(e.element(),e.width())});var a=I(i,function(e,t){return t+e},0);0<u.length&&r.setElementWidth(e,a)},Ku=function(e){0===zt.cells(e).length&&an.remove(e)},Ju=X("grid","cursor"),$u=function(e,t,n){return Qu(e,t,n).orThunk(function(){return Qu(e,0,0)})},Qu=function(e,t,n){return S.from(e[t]).bind(function(e){return S.from(e.cells()[n]).bind(function(e){return S.from(e.element())})})},Zu=function(e,t,n){return Ju(e,Qu(e,t,n))},ea=function(e){return B(e,function(e,t){return O(e,function(e){return e.row()===t.row()})?e:e.concat([t])},[]).sort(function(e,t){return e.row()-t.row()})},ta=function(e){return B(e,function(e,t){return O(e,function(e){return e.column()===t.column()})?e:e.concat([t])},[]).sort(function(e,t){return e.column()-t.column()})},na=function(e,t,n){var r=Ut(e,n),o=Yt.generate(r);return ri(o,t,!0)},ra=Xu,oa={insertRowBefore:zi(function(e,t,n,r){var o=t.row(),i=t.row(),u=fu(e,i,o,n,r.getOrInit);return Zu(u,i,t.column())},Ui,y,y,Io),insertRowsBefore:zi(function(e,t,n,r){var o=t[0].row(),i=t[0].row(),u=ea(t),a=B(u,function(e,t){return fu(e,i,o,n,r.getOrInit)},e);return Zu(a,i,t[0].column())},Vi,y,y,Io),insertRowAfter:zi(function(e,t,n,r){var o=t.row(),i=t.row()+t.rowspan(),u=fu(e,i,o,n,r.getOrInit);return Zu(u,i,t.column())},Ui,y,y,Io),insertRowsAfter:zi(function(e,t,n,r){var o=ea(t),i=o[o.length-1].row(),u=o[o.length-1].row()+o[o.length-1].rowspan(),a=B(o,function(e,t){return fu(e,u,i,n,r.getOrInit)},e);return Zu(a,u,t[0].column())},Vi,y,y,Io),insertColumnBefore:zi(function(e,t,n,r){var o=t.column(),i=t.column(),u=su(e,i,o,n,r.getOrInit);return Zu(u,t.row(),i)},Ui,ra,y,Io),insertColumnsBefore:zi(function(e,t,n,r){var o=ta(t),i=o[0].column(),u=o[0].column(),a=B(o,function(e,t){return su(e,u,i,n,r.getOrInit)},e);return Zu(a,t[0].row(),u)},Vi,ra,y,Io),insertColumnAfter:zi(function(e,t,n,r){var o=t.column(),i=t.column()+t.colspan(),u=su(e,i,o,n,r.getOrInit);return Zu(u,t.row(),i)},Ui,ra,y,Io),insertColumnsAfter:zi(function(e,t,n,r){var o=t[t.length-1].column(),i=t[t.length-1].column()+t[t.length-1].colspan(),u=ta(t),a=B(u,function(e,t){return su(e,i,o,n,r.getOrInit)},e);return Zu(a,t[0].row(),i)},Vi,ra,y,Io),splitCellIntoColumns:zi(function(e,t,n,r){var o=du(e,t.row(),t.column(),n,r.getOrInit);return Zu(o,t.row(),t.column())},Ui,ra,y,Io),splitCellIntoRows:zi(function(e,t,n,r){var o=mu(e,t.row(),t.column(),n,r.getOrInit);return Zu(o,t.row(),t.column())},Ui,y,y,Io),eraseColumns:zi(function(e,t,n,r){var o=ta(t),i=hu(e,o[0].column(),o[o.length-1].column()),u=$u(i,t[0].row(),t[0].column());return Ju(i,u)},Vi,ra,Ku,Io),eraseRows:zi(function(e,t,n,r){var o=ea(t),i=gu(e,o[0].row(),o[o.length-1].row()),u=$u(i,t[0].row(),t[0].column());return Ju(i,u)},Vi,y,Ku,Io),makeColumnHeader:zi(function(e,t,n,r){var o=wu(e,t.column(),n,r.replaceOrInit);return Zu(o,t.row(),t.column())},Ui,y,y,Bo("row","th")),unmakeColumnHeader:zi(function(e,t,n,r){var o=wu(e,t.column(),n,r.replaceOrInit);return Zu(o,t.row(),t.column())},Ui,y,y,Bo(null,"td")),makeRowHeader:zi(function(e,t,n,r){var o=yu(e,t.row(),n,r.replaceOrInit);return Zu(o,t.row(),t.column())},Ui,y,y,Bo("col","th")),unmakeRowHeader:zi(function(e,t,n,r){var o=yu(e,t.row(),n,r.replaceOrInit);return Zu(o,t.row(),t.column())},Ui,y,y,Bo(null,"td")),mergeCells:zi(function(e,t,n,r){var o=t.cells();Go(o);var i=iu(e,t.bounds(),n,C(o[0]));return Ju(i,S.from(o[0]))},Xi,y,y,Mo),unmergeCells:zi(function(e,t,n,r){var o=I(t,function(e,t){return uu(e,t,n,r.combine(t))},e);return Ju(o,S.from(t[0]))},Ki,ra,y,Mo),pasteCells:zi(function(e,n,t,r){var o,i,u,a,c=(o=n.clipboard(),i=n.generators(),u=Ht(o),a=Yt.generate(u),ri(a,i,!0)),l=ae.address(n.row(),n.column());return cu(l,e,c,n.generators(),t).fold(function(){return Ju(e,S.some(n.element()))},function(e){var t=$u(e,n.row(),n.column());return Ju(e,t)})},Gi,ra,y,Io),pasteRowsBefore:zi(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[0].row(),u=na(t.clipboard(),t.generators(),o),a=lu(i,e,u,t.generators(),n),c=$u(a,t.cells[0].row(),t.cells[0].column());return Ju(a,c)},Yi,y,y,Io),pasteRowsAfter:zi(function(e,t,n,r){var o=e[t.cells[0].row()],i=t.cells[t.cells.length-1].row()+t.cells[t.cells.length-1].rowspan(),u=na(t.clipboard(),t.generators(),o),a=lu(i,e,u,t.generators(),n),c=$u(a,t.cells[0].row(),t.cells[0].column());return Ju(a,c)},Yi,y,y,Io)},ia=function(e){return le.fromDom(e.getBody())},ua=function(e){return e.getBoundingClientRect().width},aa=function(e){return e.getBoundingClientRect().height},ca=function(t){return function(e){return $e.eq(e,ia(t))}},la=function(e){return/^[0-9]+$/.test(e)&&(e+="px"),e},fa=function(e){var t=St.descendants(e,"td[data-mce-style],th[data-mce-style]");bt.remove(e,"data-mce-style"),k(t,function(e){bt.remove(e,"data-mce-style")})},sa=function(e){return"rtl"===en.get(e,"direction")?"rtl":"ltr"},da={onDirection:function(t,n){return function(e){return"rtl"===sa(e)?n:t}},getDirection:sa},ma={isRtl:C(!1)},ga={isRtl:C(!0)},ha={directionAt:function(e){return"rtl"===da.getDirection(e)?ga:ma}},pa=["tableprops","tabledelete","|","tableinsertrowbefore","tableinsertrowafter","tabledeleterow","|","tableinsertcolbefore","tableinsertcolafter","tabledeletecol"],va={"border-collapse":"collapse",width:"100%"},ba={border:"1"},wa=function(e){return e.getParam("table_cell_advtab",!0,"boolean")},ya=function(e){return e.getParam("table_row_advtab",!0,"boolean")},xa=function(e){return e.getParam("table_advtab",!0,"boolean")},Ca=function(e){return e.getParam("table_style_by_css",!1,"boolean")},Ra=function(e){return e.getParam("table_cell_class_list",[],"array")},Sa=function(e){return e.getParam("table_row_class_list",[],"array")},Ta=function(e){return e.getParam("table_class_list",[],"array")},Na=function(e){return!1===e.getParam("table_responsive_width")},Da=function(e,t){return e.fire("newrow",{node:t})},Ea=function(e,t){return e.fire("newcell",{node:t})},Oa=function(e,t,n,r){e.fire("ObjectResizeStart",{target:t,width:n,height:r})},Aa=function(e,t,n,r){e.fire("ObjectResized",{target:t,width:n,height:r})},ka=function(f,e){var t,n=function(e){return"table"===mt.name(ia(e))},s=(t=f.getParam("table_clone_elements"),v(t)?S.some(t.split(/[ ,]/)):Array.isArray(t)?S.some(t):S.none()),r=function(u,a,c,l){return function(e,t){fa(e);var n=l(),r=le.fromDom(f.getDoc()),o=So(ha.directionAt),i=En(c,r,s);return a(e)?u(n,e,t,i,o).bind(function(e){return k(e.newRows(),function(e){Da(f,e.dom())}),k(e.newCells(),function(e){Ea(f,e.dom())}),e.cursor().map(function(e){var t=f.dom.createRng();return t.setStart(e.dom(),0),t.setEnd(e.dom(),0),t})}):S.none()}};return{deleteRow:r(oa.eraseRows,function(e){var t=No(e);return!1===n(f)||1<t.rows()},y,e),deleteColumn:r(oa.eraseColumns,function(e){var t=No(e);return!1===n(f)||1<t.columns()},y,e),insertRowsBefore:r(oa.insertRowsBefore,l,y,e),insertRowsAfter:r(oa.insertRowsAfter,l,y,e),insertColumnsBefore:r(oa.insertColumnsBefore,l,ro,e),insertColumnsAfter:r(oa.insertColumnsAfter,l,ro,e),mergeCells:r(oa.mergeCells,l,y,e),unmergeCells:r(oa.unmergeCells,l,y,e),pasteRowsBefore:r(oa.pasteRowsBefore,l,y,e),pasteRowsAfter:r(oa.pasteRowsAfter,l,y,e),pasteCells:r(oa.pasteCells,l,y,e)}},Pa=function(e,t,r){var n=Ht(e),o=Yt.generate(n);return Vi(o,t).map(function(e){var t=ri(o,r,!1).slice(e[0].row(),e[e.length-1].row()+e[e.length-1].rowspan()),n=Hi(t,r);return ui(n)})},Ia=tinymce.util.Tools.resolve("tinymce.util.Tools"),Ba=function(e,t,n){n&&e.formatter.apply("align"+n,{},t)},Ma=function(e,t,n){n&&e.formatter.apply("valign"+n,{},t)},Wa=function(t,n){Ia.each("left center right".split(" "),function(e){t.formatter.remove("align"+e,{},n)})},_a=function(t,n){Ia.each("top middle bottom".split(" "),function(e){t.formatter.remove("valign"+e,{},n)})},La=function(o,e,i){var t;return t=function(e,t){for(var n=0;n<t.length;n++){var r=o.getStyle(t[n],i);if(void 0===e&&(e=r),e!==r)return""}return e}(t,o.select("td,th",e))},qa=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);i["border-style"]=o.borderStyle,i["border-color"]=o.borderColor,i["background-color"]=o.backgroundColor,i.width=o.width?la(o.width):"",i.height=o.height?la(o.height):"",r.find("#style").value(n.serializeStyle(n.parseStyle(n.serializeStyle(i))))},Fa=function(e,t){var n=e.dom,r=t.control.rootControl,o=r.toJSON(),i=n.parseStyle(o.style);r.find("#borderStyle").value(i["border-style"]||""),r.find("#borderColor").value(i["border-color"]||""),r.find("#backgroundColor").value(i["background-color"]||""),r.find("#width").value(i.width||""),r.find("#height").value(i.height||"")},ja={createStyleForm:function(n){var e=function(){var e=n.getParam("color_picker_callback");if(e)return function(t){return e.call(n,function(e){t.control.value(e).fire("change")},t.control.value())}};return{title:"Advanced",type:"form",defaults:{onchange:R(qa,n)},items:[{label:"Style",name:"style",type:"textbox",onchange:R(Fa,n)},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border style",type:"listbox",name:"borderStyle",width:90,onselect:R(qa,n),values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]},{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}},buildListItems:function(e,r,t){var o=function(e,n){return n=n||[],Ia.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=o(e.menu):(t.value=e.value,r&&r(t)),n.push(t)}),n};return o(e,t||[])},updateStyleField:qa,extractAdvancedStyles:function(e,t){var n=e.parseStyle(e.getAttrib(t,"style")),r={};return n["border-style"]&&(r.borderStyle=n["border-style"]),n["border-color"]&&(r.borderColor=n["border-color"]),n["background-color"]&&(r.backgroundColor=n["background-color"]),r.style=e.serializeStyle(n),r},updateAdvancedFields:Fa,syncAdvancedStyleFields:function(e,t){t.control.rootControl.find("#style")[0].getEl().isEqualNode(document.activeElement)?Fa(e,t):qa(e,t)}},za=function(r,o,e){var i,u=r.dom;function a(e,t,n){(1===o.length||n)&&u.setAttrib(e,t,n)}function c(e,t,n){(1===o.length||n)&&u.setStyle(e,t,n)}wa(r)&&ja.syncAdvancedStyleFields(r,e),i=e.control.rootControl.toJSON(),r.undoManager.transact(function(){Ia.each(o,function(e){var t,n;a(e,"scope",i.scope),1===o.length?a(e,"style",i.style):(t=e,n=i.style,delete t.dataset.mceStyle,t.style.cssText+=";"+n),a(e,"class",i["class"]),c(e,"width",la(i.width)),c(e,"height",la(i.height)),i.type&&e.nodeName.toLowerCase()!==i.type&&(e=u.rename(e,i.type)),1===o.length&&(Wa(r,e),_a(r,e)),i.align&&Ba(r,e,i.align),i.valign&&Ma(r,e,i.valign)}),r.focus()})},Ha=function(t){var e,n,r,o=[];if(o=t.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=t.dom.getParent(t.selection.getStart(),"td,th"),!o.length&&e&&o.push(e),e=e||o[0]){var i,u,a,c;1<o.length?n={width:"",height:"",scope:"","class":"",align:"",valign:"",style:"",type:e.nodeName.toLowerCase()}:(u=e,a=(i=t).dom,c={width:a.getStyle(u,"width")||a.getAttrib(u,"width"),height:a.getStyle(u,"height")||a.getAttrib(u,"height"),scope:a.getAttrib(u,"scope"),"class":a.getAttrib(u,"class"),type:u.nodeName.toLowerCase(),style:"",align:"",valign:""},Ia.each("left center right".split(" "),function(e){i.formatter.matchNode(u,"align"+e)&&(c.align=e)}),Ia.each("top middle bottom".split(" "),function(e){i.formatter.matchNode(u,"valign"+e)&&(c.valign=e)}),wa(i)&&Ia.extend(c,ja.extractAdvancedStyles(a,u)),n=c),0<Ra(t).length&&(r={name:"class",type:"listbox",label:"Class",values:ja.buildListItems(Ra(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"td",classes:[e.value]})})})});var l={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width",onchange:R(ja.updateStyleField,t)},{label:"Height",name:"height",onchange:R(ja.updateStyleField,t)},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},r]};wa(t)?t.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:l},ja.createStyleForm(t)],onsubmit:R(za,t,o)}):t.windowManager.open({title:"Cell properties",data:n,body:l,onsubmit:R(za,t,o)})}};function Ua(f,s,d,e){var m=f.dom;function g(e,t,n){(1===s.length||n)&&m.setAttrib(e,t,n)}ya(f)&&ja.syncAdvancedStyleFields(f,e);var h=e.control.rootControl.toJSON();f.undoManager.transact(function(){Ia.each(s,function(e){var t,n,r,o,i,u,a,c,l;g(e,"scope",h.scope),g(e,"style",h.style),g(e,"class",h["class"]),t=e,n="height",r=la(h.height),(1===s.length||r)&&m.setStyle(t,n,r),h.type!==e.parentNode.nodeName.toLowerCase()&&(o=f.dom,i=e,u=h.type,a=o.getParent(i,"table"),c=i.parentNode,(l=o.select(u,a)[0])||(l=o.create(u),a.firstChild?"CAPTION"===a.firstChild.nodeName?o.insertAfter(l,a.firstChild):a.insertBefore(l,a.firstChild):a.appendChild(l)),l.appendChild(i),c.hasChildNodes()||o.remove(c)),h.align!==d.align&&(Wa(f,e),Ba(f,e,h.align))}),f.focus()})}var Va=function(t){var e,n,r,o,i,u,a,c,l,f,s=t.dom,d=[];e=s.getParent(t.selection.getStart(),"table"),n=s.getParent(t.selection.getStart(),"td,th"),Ia.each(e.rows,function(t){Ia.each(t.cells,function(e){if(s.getAttrib(e,"data-mce-selected")||e===n)return d.push(t),!1})}),(r=d[0])&&(1<d.length?i={height:"",scope:"",style:"","class":"",align:"",type:r.parentNode.nodeName.toLowerCase()}:(c=r,l=(a=t).dom,f={height:l.getStyle(c,"height")||l.getAttrib(c,"height"),scope:l.getAttrib(c,"scope"),"class":l.getAttrib(c,"class"),align:"",style:"",type:c.parentNode.nodeName.toLowerCase()},Ia.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),ya(a)&&Ia.extend(f,ja.extractAdvancedStyles(l,c)),i=f),0<Sa(t).length&&(o={name:"class",type:"listbox",label:"Class",values:ja.buildListItems(Sa(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"tr",classes:[e.value]})})})}),u={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},ya(t)?t.windowManager.open({title:"Row properties",data:i,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},ja.createStyleForm(t)],onsubmit:R(Ua,t,d,i)}):t.windowManager.open({title:"Row properties",data:i,body:u,onsubmit:R(Ua,t,d,i)}))},Ga=tinymce.util.Tools.resolve("tinymce.Env"),Ya={styles:{"border-collapse":"collapse",width:"100%"},attributes:{border:"1"},percentages:!0},Xa=function(e,t,n,r,o){void 0===o&&(o=Ya);var i=le.fromTag("table");en.setAll(i,o.styles),bt.setAll(i,o.attributes);var u=le.fromTag("tbody");rn.append(i,u);for(var a=[],c=0;c<e;c++){for(var l=le.fromTag("tr"),f=0;f<t;f++){var s=c<n||f<r?le.fromTag("th"):le.fromTag("td");f<r&&bt.set(s,"scope","row"),c<n&&bt.set(s,"scope","col"),rn.append(s,le.fromTag("br")),o.percentages&&en.set(s,"width",100/t+"%"),rn.append(l,s)}a.push(l)}return on.append(u,a),i},Ka=function(e){return e.dom().innerHTML},Ja=function(e){var t=le.fromTag("div"),n=le.fromDom(e.dom().cloneNode(!0));return rn.append(t,n),Ka(t)},$a=function(e,t){e.selection.select(t.dom(),!0),e.selection.collapse(!0)},Qa=function(o,e,t){var n,r,i=o.getParam("table_default_styles",va,"object"),u={styles:i,attributes:(r=o,r.getParam("table_default_attributes",ba,"object")),percentages:(n=i.width,v(n)&&-1!==n.indexOf("%")&&!Na(o))},a=Xa(t,e,0,0,u);bt.set(a,"data-mce-id","__mce");var c=Ja(a);return o.insertContent(c),Wt.descendant(ia(o),'table[data-mce-id="__mce"]').map(function(e){var t,n,r;return Na(o)&&en.set(e,"width",en.get(e,"width")),bt.remove(e,"data-mce-id"),t=o,k(St.descendants(e,"tr"),function(e){Da(t,e.dom()),k(St.descendants(e,"th,td"),function(e){Ea(t,e.dom())})}),n=o,r=e,Wt.descendant(r,"td,th").each(R($a,n)),e.dom()}).getOr(null)};function Za(e,t,n,r){if("TD"===t.tagName||"TH"===t.tagName)e.setStyle(t,n,r);else if(t.children)for(var o=0;o<t.children.length;o++)Za(e,t.children[o],n,r)}var ec=function(e,t,n){var r,o,i=e.dom;xa(e)&&ja.syncAdvancedStyleFields(e,n),!1===(o=n.control.rootControl.toJSON())["class"]&&delete o["class"],e.undoManager.transact(function(){t||(t=Qa(e,o.cols||1,o.rows||1)),function(e,t,n){var r,o=e.dom,i={},u={};if(i["class"]=n["class"],u.height=la(n.height),o.getAttrib(t,"width")&&!Ca(e)?i.width=(r=n.width)?r.replace(/px$/,""):"":u.width=la(n.width),Ca(e)?(u["border-width"]=la(n.border),u["border-spacing"]=la(n.cellspacing),Ia.extend(i,{"data-mce-border-color":n.borderColor,"data-mce-cell-padding":n.cellpadding,"data-mce-border":n.border})):Ia.extend(i,{border:n.border,cellpadding:n.cellpadding,cellspacing:n.cellspacing}),Ca(e)&&t.children)for(var a=0;a<t.children.length;a++)Za(o,t.children[a],{"border-width":la(n.border),"border-color":n.borderColor,padding:la(n.cellpadding)});n.style?Ia.extend(u,o.parseStyle(n.style)):u=Ia.extend({},o.parseStyle(o.getAttrib(t,"style")),u),i.style=o.serializeStyle(u),o.setAttribs(t,i)}(e,t,o),(r=i.select("caption",t)[0])&&!o.caption&&i.remove(r),!r&&o.caption&&((r=i.create("caption")).innerHTML=Ga.ie?"\xa0":'<br data-mce-bogus="1"/>',t.insertBefore(r,t.firstChild)),Wa(e,t),o.align&&Ba(e,t,o.align),e.focus(),e.addVisual()})},tc=function(t,e){var n,r,o,i,u,a,c,l,f,s,d=t.dom,m={};!0===e?(n=d.getParent(t.selection.getStart(),"table"))&&(c=n,l=(a=t).dom,f={width:l.getStyle(c,"width")||l.getAttrib(c,"width"),height:l.getStyle(c,"height")||l.getAttrib(c,"height"),cellspacing:l.getStyle(c,"border-spacing")||l.getAttrib(c,"cellspacing"),cellpadding:l.getAttrib(c,"data-mce-cell-padding")||l.getAttrib(c,"cellpadding")||La(a.dom,c,"padding"),border:l.getAttrib(c,"data-mce-border")||l.getAttrib(c,"border")||La(a.dom,c,"border"),borderColor:l.getAttrib(c,"data-mce-border-color"),caption:!!l.select("caption",c)[0],"class":l.getAttrib(c,"class")},Ia.each("left center right".split(" "),function(e){a.formatter.matchNode(c,"align"+e)&&(f.align=e)}),xa(a)&&Ia.extend(f,ja.extractAdvancedStyles(l,c)),m=f):(r={label:"Cols",name:"cols"},o={label:"Rows",name:"rows"}),0<Ta(t).length&&(m["class"]&&(m["class"]=m["class"].replace(/\s*mce\-item\-table\s*/g,"")),i={name:"class",type:"listbox",label:"Class",values:ja.buildListItems(Ta(t),function(e){e.value&&(e.textStyle=function(){return t.formatter.getCssText({block:"table",classes:[e.value]})})})}),u={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:(s=t,s.getParam("table_appearance_options",!0,"boolean")?[r,o,{label:"Width",name:"width",onchange:R(ja.updateStyleField,t)},{label:"Height",name:"height",onchange:R(ja.updateStyleField,t)},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[r,o,{label:"Width",name:"width",onchange:R(ja.updateStyleField,t)},{label:"Height",name:"height",onchange:R(ja.updateStyleField,t)}])},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},i]},xa(t)?t.windowManager.open({title:"Table properties",data:m,bodyType:"tabpanel",body:[{title:"General",type:"form",items:u},ja.createStyleForm(t)],onsubmit:R(ec,t,n)}):t.windowManager.open({title:"Table properties",data:m,body:u,onsubmit:R(ec,t,n)})},nc=Ia.each,rc=function(a,t,c,l,n){var r=ca(a),f=function(){return le.fromDom(a.dom.getParent(a.selection.getStart(),"th,td"))},s=function(e){return zt.table(e,r)},d=function(e){return{width:ua(e.dom()),height:ua(e.dom())}},o=function(t){var n=f();s(n).each(function(i){var e=Mr.forMenu(l,i,n),u=d(i);t(i,e).each(function(e){var t,n,r,o;t=a,n=u,o=d(r=i),n.width===o.width&&n.height===o.height||(Oa(t,r.dom(),n.width,n.height),Aa(t,r.dom(),o.width,o.height)),a.selection.setRng(e),a.focus(),c.clear(i),fa(i)})})},i=function(e){var o=f();return s(o).bind(function(e){var t=le.fromDom(a.getDoc()),n=Mr.forMenu(l,e,o),r=En(y,t,S.none());return Pa(e,n,r)})},u=function(u){n.get().each(function(e){var o=A(e,function(e){return gn(e)}),i=f();s(i).bind(function(t){var e=le.fromDom(a.getDoc()),n=On(e),r=Mr.pasteRows(l,t,i,o,n);u(t,r).each(function(e){a.selection.setRng(e),a.focus(),c.clear(t)})})})};nc({mceTableSplitCells:function(){o(t.unmergeCells)},mceTableMergeCells:function(){o(t.mergeCells)},mceTableInsertRowBefore:function(){o(t.insertRowsBefore)},mceTableInsertRowAfter:function(){o(t.insertRowsAfter)},mceTableInsertColBefore:function(){o(t.insertColumnsBefore)},mceTableInsertColAfter:function(){o(t.insertColumnsAfter)},mceTableDeleteCol:function(){o(t.deleteColumn)},mceTableDeleteRow:function(){o(t.deleteRow)},mceTableCutRow:function(e){n.set(i()),o(t.deleteRow)},mceTableCopyRow:function(e){n.set(i())},mceTablePasteRowBefore:function(e){u(t.pasteRowsBefore)},mceTablePasteRowAfter:function(e){u(t.pasteRowsAfter)},mceTableDelete:function(){var e=le.fromDom(a.dom.getParent(a.selection.getStart(),"th,td"));zt.table(e,r).filter(m(r)).each(function(e){var t=le.fromText("");rn.after(e,t),an.remove(e);var n=a.dom.createRng();n.setStart(t.dom(),0),n.setEnd(t.dom(),0),a.selection.setRng(n)})}},function(e,t){a.addCommand(t,e)}),nc({mceInsertTable:R(tc,a),mceTableProps:R(tc,a,!0),mceTableRowProps:R(Va,a),mceTableCellProps:R(Ha,a)},function(n,e){a.addCommand(e,function(e,t){n(t)})})},oc=function(e){var t=S.from(e.dom().documentElement).map(le.fromDom).getOr(e);return{parent:C(t),view:C(e),origin:C(ao(0,0))}},ic=function(e,t){return{parent:C(t),view:C(e),origin:C(ao(0,0))}};function uc(e){var n=X.apply(null,e),r=[];return{bind:function(e){if(e===undefined)throw"Event bind error: undefined handler";r.push(e)},unbind:function(t){r=P(r,function(e){return e!==t})},trigger:function(){var t=n.apply(null,arguments);k(r,function(e){e(t)})}}}var ac={create:function(e){return{registry:G(e,function(e){return{bind:e.bind,unbind:e.unbind}}),trigger:G(e,function(e){return e.trigger})}}},cc={mode:Ao(["compare","extract","mutate","sink"]),sink:Ao(["element","start","stop","destroy"]),api:Ao(["forceDrop","drop","move","delayDrop"])},lc={resolve:hi("ephox-dragster").resolve},fc=function(m,g){return function(e){if(m(e)){var t,n,r,o,i,u,a,c=le.fromDom(e.target),l=function(){e.stopPropagation()},f=function(){e.preventDefault()},s=x(f,l),d=(t=c,n=e.clientX,r=e.clientY,o=l,i=f,u=s,a=e,{target:C(t),x:C(n),y:C(r),stop:o,prevent:i,kill:u,raw:C(a)});g(d)}}},sc=function(e,t,n,r,o){var i=fc(n,r);return e.dom().addEventListener(t,i,o),{unbind:R(dc,e,t,i,o)}},dc=function(e,t,n,r){e.dom().removeEventListener(t,n,r)},mc=function(e,t,n,r){return sc(e,t,n,r,!1)},gc=function(e,t,n,r){return sc(e,t,n,r,!0)},hc=C(!0),pc={bind:function(e,t,n){return mc(e,t,hc,n)},capture:function(e,t,n){return gc(e,t,hc,n)}},vc=cc.mode({compare:function(e,t){return ao(t.left()-e.left(),t.top()-e.top())},extract:function(e){return S.some(ao(e.x(),e.y()))},sink:function(e,t){var n,r,o,i=(n=t,r=Xo({layerClass:lc.resolve("blocker")},n),o=le.fromTag("div"),bt.set(o,"role","presentation"),en.setAll(o,{position:"fixed",left:"0px",top:"0px",width:"100%",height:"100%"}),Ai.add(o,lc.resolve("blocker")),Ai.add(o,r.layerClass),{element:function(){return o},destroy:function(){an.remove(o)}}),u=pc.bind(i.element(),"mousedown",e.forceDrop),a=pc.bind(i.element(),"mouseup",e.drop),c=pc.bind(i.element(),"mousemove",e.move),l=pc.bind(i.element(),"mouseout",e.delayDrop);return cc.sink({element:i.element,start:function(e){rn.append(e,i.element())},stop:function(){an.remove(i.element())},destroy:function(){i.destroy(),a.unbind(),c.unbind(),l.unbind(),u.unbind()}})},mutate:function(e,t){e.mutate(t.left(),t.top())}});function bc(){var i=S.none(),u=ac.create({move:uc(["info"])});return{onEvent:function(e,o){o.extract(e).each(function(e){var t,n,r;(t=o,n=e,r=i.map(function(e){return t.compare(e,n)}),i=S.some(n),r).each(function(e){u.trigger.move(e)})})},reset:function(){i=S.none()},events:u.registry}}function wc(){var e={onEvent:function(e,t){},reset:y},t=bc(),n=e;return{on:function(){n.reset(),n=t},off:function(){n.reset(),n=e},isOn:function(){return n===t},onEvent:function(e,t){n.onEvent(e,t)},events:t.events}}var yc=function(t,n,e){var r,o,i,u=!1,a=ac.create({start:uc([]),stop:uc([])}),c=wc(),l=function(){d.stop(),c.isOn()&&(c.off(),a.trigger.stop())},f=(r=l,o=200,i=null,{cancel:function(){null!==i&&(clearTimeout(i),i=null)},throttle:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];null!==i&&clearTimeout(i),i=setTimeout(function(){r.apply(null,e),i=null},o)}});c.events.move.bind(function(e){n.mutate(t,e.info())});var s=function(t){return function(){var e=Array.prototype.slice.call(arguments,0);if(u)return t.apply(null,e)}},d=n.sink(cc.api({forceDrop:l,drop:s(l),move:s(function(e,t){f.cancel(),c.onEvent(e,n)}),delayDrop:s(f.throttle)}),e);return{element:d.element,go:function(e){d.start(e),c.on(),a.trigger.start()},on:function(){u=!0},off:function(){u=!1},destroy:function(){d.destroy()},events:a.registry}},xc={transform:function(e,t){var n=t!==undefined?t:{},r=n.mode!==undefined?n.mode:vc;return yc(e,r,t)}};function Cc(){var n,r=ac.create({drag:uc(["xDelta","yDelta","target"])}),o=S.none(),e={mutate:function(e,t){n.trigger.drag(e,t)},events:(n=ac.create({drag:uc(["xDelta","yDelta"])})).registry};return e.events.drag.bind(function(t){o.each(function(e){r.trigger.drag(t.xDelta(),t.yDelta(),e)})}),{assign:function(e){o=S.some(e)},get:function(){return o},mutate:e.mutate,events:r.registry}}var Rc={any:function(e){return Wt.first(e).isSome()},ancestor:function(e,t,n){return Wt.ancestor(e,t,n).isSome()},sibling:function(e,t){return Wt.sibling(e,t).isSome()},child:function(e,t){return Wt.child(e,t).isSome()},descendant:function(e,t){return Wt.descendant(e,t).isSome()},closest:function(e,t,n){return Wt.closest(e,t,n).isSome()}},Sc=pi.resolve("resizer-bar-dragging");function Tc(e,n){var r=Co.height,t=function(o,t,i){var n=Cc(),r=xc.transform(n,{}),u=S.none(),e=function(e,t){return S.from(bt.get(e,t))};n.events.drag.bind(function(n){e(n.target(),"data-row").each(function(e){var t=Ou.getInt(n.target(),"top");en.set(n.target(),"top",t+n.yDelta()+"px")}),e(n.target(),"data-column").each(function(e){var t=Ou.getInt(n.target(),"left");en.set(n.target(),"left",t+n.xDelta()+"px")})});var a=function(e,t){return Ou.getInt(e,t)-parseInt(bt.get(e,"data-initial-"+t),10)};r.events.stop.bind(function(){n.get().each(function(r){u.each(function(n){e(r,"data-row").each(function(e){var t=a(r,"top");bt.remove(r,"data-initial-top"),d.trigger.adjustHeight(n,t,parseInt(e,10))}),e(r,"data-column").each(function(e){var t=a(r,"left");bt.remove(r,"data-initial-left"),d.trigger.adjustWidth(n,t,parseInt(e,10))}),Li.refresh(o,n,i,t)})})});var c=function(e,t){d.trigger.startAdjust(),n.assign(e),bt.set(e,"data-initial-"+t,parseInt(en.get(e,t),10)),Ai.add(e,Sc),en.set(e,"opacity","0.2"),r.go(o.parent())},l=pc.bind(o.parent(),"mousedown",function(e){Li.isRowBar(e.target())&&c(e.target(),"top"),Li.isColBar(e.target())&&c(e.target(),"left")}),f=function(e){return $e.eq(e,o.view())},s=pc.bind(o.view(),"mouseover",function(e){"table"===mt.name(e.target())||Rc.closest(e.target(),"table",f)?(u="table"===mt.name(e.target())?S.some(e.target()):Wt.ancestor(e.target(),"table",f)).each(function(e){Li.refresh(o,e,i,t)}):xt.inBody(e.target())&&Li.destroy(o)}),d=ac.create({adjustHeight:uc(["table","delta","row"]),adjustWidth:uc(["table","delta","column"]),startAdjust:uc([])});return{destroy:function(){l.unbind(),s.unbind(),r.destroy(),Li.destroy(o)},refresh:function(e){Li.refresh(o,e,i,t)},on:r.on,off:r.off,hideBars:R(Li.hide,o),showBars:R(Li.show,o),events:d.registry}}(e,n,r),o=ac.create({beforeResize:uc(["table"]),afterResize:uc(["table"]),startDrag:uc([])});return t.events.adjustHeight.bind(function(e){o.trigger.beforeResize(e.table());var t=r.delta(e.delta(),e.table());Yu(e.table(),t,e.row(),r),o.trigger.afterResize(e.table())}),t.events.startAdjust.bind(function(e){o.trigger.startDrag()}),t.events.adjustWidth.bind(function(e){o.trigger.beforeResize(e.table());var t=n.delta(e.delta(),e.table());Gu(e.table(),t,e.column(),n),o.trigger.afterResize(e.table())}),{on:t.on,off:t.off,hideBars:t.hideBars,showBars:t.showBars,destroy:t.destroy,events:o.registry}}var Nc=function(e,t){return e.inline?ic(ia(e),(n=le.fromTag("div"),en.setAll(n,{position:"static",height:"0",width:"0",padding:"0",margin:"0",border:"0"}),rn.append(xt.body(),n),n)):oc(le.fromDom(e.getDoc()));var n},Dc=function(e,t){e.inline&&an.remove(t.parent())},Ec=function(u){var a,c,o=S.none(),i=S.none(),l=S.none(),f=/(\d+(\.\d+)?)%/,s=function(e){return"TABLE"===e.nodeName};return u.on("init",function(){var e,t=So(ha.directionAt),n=Nc(u);if(l=S.some(n),("table"===(e=u.getParam("object_resizing",!0))||e)&&u.getParam("table_resize_bars",!0,"boolean")){var r=Tc(n,t);r.on(),r.events.startDrag.bind(function(e){o=S.some(u.selection.getRng())}),r.events.beforeResize.bind(function(e){var t=e.table().dom();Oa(u,t,ua(t),aa(t))}),r.events.afterResize.bind(function(e){var t=e.table(),n=t.dom();fa(t),o.each(function(e){u.selection.setRng(e),u.focus()}),Aa(u,n,ua(n),aa(n)),u.undoManager.add()}),i=S.some(r)}}),u.on("ObjectResizeStart",function(e){var t,n=e.target;s(n)&&(a=e.width,t=n,c=u.dom.getStyle(t,"width")||u.dom.getAttrib(t,"width"))}),u.on("ObjectResized",function(e){var t=e.target;if(s(t)){var n=t;if(f.test(c)){var r=parseFloat(f.exec(c)[1]),o=e.width*r/a;u.dom.setStyle(n,"width",o+"%")}else{var i=[];Ia.each(n.rows,function(e){Ia.each(e.cells,function(e){var t=u.dom.getStyle(e,"width",!0);i.push({cell:e,width:t})})}),Ia.each(i,function(e){u.dom.setStyle(e.cell,"width",e.width),u.dom.setAttrib(e.cell,"width",null)})}}}),{lazyResize:function(){return i},lazyWire:function(){return l.getOr(oc(le.fromDom(u.getBody())))},destroy:function(){i.each(function(e){e.destroy()}),l.each(function(e){Dc(u,e)})}}},Oc=function(e){return{fold:e}},Ac=function(o){return Oc(function(e,t,n,r){return e(o)})},kc=function(o){return Oc(function(e,t,n,r){return t(o)})},Pc=function(o,i){return Oc(function(e,t,n,r){return n(o,i)})},Ic=function(o){return Oc(function(e,t,n,r){return r(o)})},Bc=function(n,e){return zt.table(n,e).bind(function(e){var t=zt.cells(e);return W(t,function(e){return $e.eq(n,e)}).map(function(e){return{index:C(e),all:C(t)}})})},Mc=function(t,e){return Bc(t,e).fold(function(){return Ac(t)},function(e){return e.index()+1<e.all().length?Pc(t,e.all()[e.index()+1]):Ic(t)})},Wc=function(t,e){return Bc(t,e).fold(function(){return Ac()},function(e){return 0<=e.index()-1?Pc(t,e.all()[e.index()-1]):kc(t)})},_c=Nr([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),Lc={before:_c.before,on:_c.on,after:_c.after,cata:function(e,t,n,r){return e.fold(t,n,r)},getStart:function(e){return e.fold(u,u,u)}},qc=Nr([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),Fc=X("start","soffset","finish","foffset"),jc={domRange:qc.domRange,relative:qc.relative,exact:qc.exact,exactFromRange:function(e){return qc.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:Fc,getWin:function(e){var t=e.match({domRange:function(e){return le.fromDom(e.startContainer)},relative:function(e,t){return Lc.getStart(e)},exact:function(e,t,n,r){return e}});return ot.defaultView(t)}},zc=function(e,t,n,r){var o=ot.owner(e).dom().createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},Hc=function(e,t,n,r){var o=zc(e,t,n,r),i=$e.eq(e,n)&&t===r;return o.collapsed&&!i},Uc=function(e,t){e.selectNodeContents(t.dom())},Vc=function(e){e.deleteContents()},Gc=function(e){return{left:C(e.left),top:C(e.top),right:C(e.right),bottom:C(e.bottom),width:C(e.width),height:C(e.height)}},Yc={create:function(e){return e.document.createRange()},replaceWith:function(e,t){Vc(e),e.insertNode(t.dom())},selectNodeContents:function(e,t){var n=e.document.createRange();return Uc(n,t),n},selectNodeContentsUsing:Uc,relativeToNative:function(e,t,n){var r,o,i=e.document.createRange();return r=i,t.fold(function(e){r.setStartBefore(e.dom())},function(e,t){r.setStart(e.dom(),t)},function(e){r.setStartAfter(e.dom())}),o=i,n.fold(function(e){o.setEndBefore(e.dom())},function(e,t){o.setEnd(e.dom(),t)},function(e){o.setEndAfter(e.dom())}),i},exactToNative:function(e,t,n,r,o){var i=e.document.createRange();return i.setStart(t.dom(),n),i.setEnd(r.dom(),o),i},deleteContents:Vc,cloneFragment:function(e){var t=e.cloneContents();return le.fromDom(t)},getFirstRect:function(e){var t=e.getClientRects(),n=0<t.length?t[0]:e.getBoundingClientRect();return 0<n.width||0<n.height?S.some(n).map(Gc):S.none()},getBounds:function(e){var t=e.getBoundingClientRect();return 0<t.width||0<t.height?S.some(t).map(Gc):S.none()},isWithin:function(e,t){return t.compareBoundaryPoints(e.END_TO_START,e)<1&&-1<t.compareBoundaryPoints(e.START_TO_END,e)},toString:function(e){return e.toString()}},Xc=Nr([{ltr:["start","soffset","finish","foffset"]},{rtl:["start","soffset","finish","foffset"]}]),Kc=function(e,t,n){return t(le.fromDom(n.startContainer),n.startOffset,le.fromDom(n.endContainer),n.endOffset)},Jc=function(e,t){var o,n,r,i=(o=e,t.match({domRange:function(e){return{ltr:C(e),rtl:S.none}},relative:function(e,t){return{ltr:Ce(function(){return Yc.relativeToNative(o,e,t)}),rtl:Ce(function(){return S.some(Yc.relativeToNative(o,t,e))})}},exact:function(e,t,n,r){return{ltr:Ce(function(){return Yc.exactToNative(o,e,t,n,r)}),rtl:Ce(function(){return S.some(Yc.exactToNative(o,n,r,e,t))})}}}));return(r=(n=i).ltr()).collapsed?n.rtl().filter(function(e){return!1===e.collapsed}).map(function(e){return Xc.rtl(le.fromDom(e.endContainer),e.endOffset,le.fromDom(e.startContainer),e.startOffset)}).getOrThunk(function(){return Kc(0,Xc.ltr,r)}):Kc(0,Xc.ltr,r)},$c={ltr:Xc.ltr,rtl:Xc.rtl,diagnose:Jc,asLtrRange:function(i,e){return Jc(i,e).match({ltr:function(e,t,n,r){var o=i.document.createRange();return o.setStart(e.dom(),t),o.setEnd(n.dom(),r),o},rtl:function(e,t,n,r){var o=i.document.createRange();return o.setStart(n.dom(),r),o.setEnd(e.dom(),t),o}})}},Qc=function(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom},Zc=function(e,t,n,r,o){if(0===o)return 0;if(t===r)return o-1;for(var i=r,u=1;u<o;u++){var a=e(u),c=Math.abs(t-a.left);if(n<=a.bottom){if(n<a.top||i<c)return u-1;i=c}}return 0},el={locate:function(l,f,s,d){var e=l.dom().createRange();e.selectNode(f.dom());var t=e.getClientRects();return Jo(t,function(e){return Qc(e,s,d)?S.some(e):S.none()}).map(function(e){return n=l,t=s,o=d,i=e,u=function(e){var t=n.dom().createRange();return t.setStart(r.dom(),e),t.collapse(!0),t},a=vn.get(r=f).length,c=Zc(function(e){return u(e).getBoundingClientRect()},t,o,i.right,a),u(c);var n,r,t,o,i,u,a,c})}},tl=function(t,e,n,r){var o=t.dom().createRange(),i=ot.children(e);return Jo(i,function(e){return o.selectNode(e.dom()),Qc(o.getBoundingClientRect(),n,r)?nl(t,e,n,r):S.none()})},nl=function(e,t,n,r){return(mt.isText(t)?el.locate:tl)(e,t,n,r)},rl=function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return nl(e,t,u,a)},ol=function(e,t){return t-e.left<e.right-t},il=function(e,t,n){var r=e.dom().createRange();return r.selectNode(t.dom()),r.collapse(n),r},ul=function(t,e,n){var r=t.dom().createRange();r.selectNode(e.dom());var o=r.getBoundingClientRect(),i=ol(o,n);return(!0===i?Rn.first:Rn.last)(e).map(function(e){return il(t,e,i)})},al=function(e,t,n){var r=t.dom().getBoundingClientRect(),o=ol(r,n);return S.some(il(e,t,o))},cl=function(e,t,n){return(0===ot.children(t).length?al:ul)(e,t,n)},ll=document.caretPositionFromPoint?function(n,e,t){return S.from(n.dom().caretPositionFromPoint(e,t)).bind(function(e){if(null===e.offsetNode)return S.none();var t=n.dom().createRange();return t.setStart(e.offsetNode,e.offset),t.collapse(),S.some(t)})}:document.caretRangeFromPoint?function(e,t,n){return S.from(e.dom().caretRangeFromPoint(t,n))}:function(n,r,o){return le.fromPoint(n,r,o).bind(function(e){var t=function(){return cl(n,e,r)};return 0===ot.children(e).length?t():function(e,t,n,r){var o=e.dom().createRange();o.selectNode(t.dom());var i=o.getBoundingClientRect(),u=Math.max(i.left,Math.min(i.right,n)),a=Math.max(i.top,Math.min(i.bottom,r));return rl(e,t,u,a)}(n,e,r,o).orThunk(t)})},fl=function(e,t,n){var r=le.fromDom(e.document);return ll(r,t,n).map(function(e){return jc.range(le.fromDom(e.startContainer),e.startOffset,le.fromDom(e.endContainer),e.endOffset)})},sl=function(e,t){var n=mt.name(e);return"input"===n?Lc.after(e):E(["br","img"],n)?0===t?Lc.before(e):Lc.after(e):Lc.on(e,t)},dl=function(e,t){var n=e.fold(Lc.before,sl,Lc.after),r=t.fold(Lc.before,sl,Lc.after);return jc.relative(n,r)},ml=function(e,t,n,r){var o=sl(e,t),i=sl(n,r);return jc.relative(o,i)},gl=function(e){return e.match({domRange:function(e){var t=le.fromDom(e.startContainer),n=le.fromDom(e.endContainer);return ml(t,e.startOffset,n,e.endOffset)},relative:dl,exact:ml})},hl=dl,pl=ml,vl=function(e,t){S.from(e.getSelection()).each(function(e){e.removeAllRanges(),e.addRange(t)})},bl=function(e,t,n,r,o){var i=Yc.exactToNative(e,t,n,r,o);vl(e,i)},wl=function(s,e){return $c.diagnose(s,e).match({ltr:function(e,t,n,r){bl(s,e,t,n,r)},rtl:function(e,t,n,r){var o,i,u,a,c,l=s.getSelection();if(l.setBaseAndExtent)l.setBaseAndExtent(e.dom(),t,n.dom(),r);else if(l.extend)try{i=e,u=t,a=n,c=r,(o=l).collapse(i.dom(),u),o.extend(a.dom(),c)}catch(f){bl(s,n,r,e,t)}else bl(s,n,r,e,t)}})},yl=function(e){var t=le.fromDom(e.anchorNode),n=le.fromDom(e.focusNode);return Hc(t,e.anchorOffset,n,e.focusOffset)?S.some(jc.range(le.fromDom(e.anchorNode),e.anchorOffset,le.fromDom(e.focusNode),e.focusOffset)):function(e){if(0<e.rangeCount){var t=e.getRangeAt(0),n=e.getRangeAt(e.rangeCount-1);return S.some(jc.range(le.fromDom(t.startContainer),t.startOffset,le.fromDom(n.endContainer),n.endOffset))}return S.none()}(e)},xl=function(e){return S.from(e.getSelection()).filter(function(e){return 0<e.rangeCount}).bind(yl)},Cl=function(e,t,n,r,o){var i=pl(t,n,r,o);wl(e,i)},Rl=function(e){return xl(e).map(function(e){return jc.exact(e.start(),e.soffset(),e.finish(),e.foffset())})},Sl=function(e,t,n){var r=hl(t,n);wl(e,r)},Tl=function(e){var o=jc.getWin(e).dom(),t=function(e,t,n,r){return Yc.exactToNative(o,e,t,n,r)},n=gl(e);return $c.diagnose(o,n).match({ltr:t,rtl:t})},Nl=function(e,t){var n=Yc.selectNodeContents(e,t);vl(e,n)},Dl=function(e){e.getSelection().removeAllRanges()},El=function(e,t){var n=$c.asLtrRange(e,t);return Yc.getFirstRect(n)},Ol=function(e,t,n){return fl(e,t,n)},Al=tinymce.util.Tools.resolve("tinymce.util.VK"),kl=function(e,t,n,r){return Ml(e,t,Mc(n),r)},Pl=function(e,t,n,r){return Ml(e,t,Wc(n),r)},Il=function(e,t){var n=jc.exact(t,0,t,0);return Tl(n)},Bl=function(e,t){var n,r=St.descendants(t,"tr");return(n=r,0===n.length?S.none():S.some(n[n.length-1])).bind(function(e){return Wt.descendant(e,"td,th").map(function(e){return Il(0,e)})})},Ml=function(r,e,t,o,n){return t.fold(S.none,S.none,function(e,t){return Rn.first(t).map(function(e){return Il(0,e)})},function(n){return zt.table(n,e).bind(function(e){var t=Mr.noMenu(n);return r.undoManager.transact(function(){o.insertRowsAfter(e,t)}),Bl(0,e)})})},Wl=["table","li","dl"],_l=function(t,n,r,o){if(t.keyCode===Al.TAB){var i=ia(n),u=function(e){var t=mt.name(e);return $e.eq(e,i)||E(Wl,t)},e=n.selection.getRng();if(e.collapsed){var a=le.fromDom(e.startContainer);zt.cell(a,u).each(function(e){t.preventDefault(),(t.shiftKey?Pl:kl)(n,u,e,r,o).each(function(e){n.selection.setRng(e)})})}}},Ll={response:X("selection","kill")},ql=function(t){return function(e){return e===t}},Fl=ql(38),jl=ql(40),zl={ltr:{isBackward:ql(37),isForward:ql(39)},rtl:{isBackward:ql(39),isForward:ql(37)},isUp:Fl,isDown:jl,isNavigation:function(e){return 37<=e&&e<=40}},Hl=function(e,t){var n=$c.asLtrRange(e,t);return{start:C(le.fromDom(n.startContainer)),soffset:C(n.startOffset),finish:C(le.fromDom(n.endContainer)),foffset:C(n.endOffset)}},Ul=function(e,t,n,r){return{start:C(Lc.on(e,t)),finish:C(Lc.on(n,r))}},Vl=(Xe.detect().browser.isSafari(),function(e){var t=e!==undefined?e.dom():document,n=t.body.scrollLeft||t.documentElement.scrollLeft,r=t.body.scrollTop||t.documentElement.scrollTop;return ao(n,r)}),Gl=Vl,Yl=function(e,t,n){(n!==undefined?n.dom():document).defaultView.scrollBy(e,t)};function Xl(i){return{elementFromPoint:function(e,t){return le.fromPoint(le.fromDom(i.document),e,t)},getRect:function(e){return e.dom().getBoundingClientRect()},getRangedRect:function(e,t,n,r){var o=jc.exact(e,t,n,r);return El(i,o).map(function(e){return G(e,a)})},getSelection:function(){return Rl(i).map(function(e){return Hl(i,e)})},fromSitus:function(e){var t=jc.relative(e.start(),e.finish());return Hl(i,t)},situsFromPoint:function(e,t){return Ol(i,e,t).map(function(e){return{start:C(Lc.on(e.start(),e.soffset())),finish:C(Lc.on(e.finish(),e.foffset()))}})},clearSelection:function(){Dl(i)},setSelection:function(e){Cl(i,e.start(),e.soffset(),e.finish(),e.foffset())},setRelativeSelection:function(e,t){Sl(i,e,t)},selectContents:function(e){Nl(i,e)},getInnerHeight:function(){return i.innerHeight},getScrollY:function(){return Gl(le.fromDom(i.document)).top()},scrollBy:function(e,t){Yl(e,t,le.fromDom(i.document))}}}var Kl=function(n,e,r,t,o){return $e.eq(r,t)?S.none():pr(r,t,e).bind(function(e){var t=e.boxes().getOr([]);return 0<t.length?(o(n,t,e.start(),e.finish()),S.some(Ll.response(S.some(Ul(r,0,r,yn(r))),!0))):S.none()})},Jl={sync:function(n,r,e,t,o,i,u){return $e.eq(e,o)&&t===i?S.none():Wt.closest(e,"td,th",r).bind(function(t){return Wt.closest(o,"td,th",r).bind(function(e){return Kl(n,r,t,e,u)})})},detect:Kl,update:function(e,t,n,r,o){return br(r,e,t,o.firstSelectedSelector(),o.lastSelectedSelector()).map(function(e){return o.clear(n),o.selectRange(n,e.boxes(),e.start(),e.finish()),e.boxes()})}},$l=ee(["left","top","right","bottom"],[]),Ql={nu:$l,moveUp:function(e,t){return $l({left:e.left(),top:e.top()-t,right:e.right(),bottom:e.bottom()-t})},moveDown:function(e,t){return $l({left:e.left(),top:e.top()+t,right:e.right(),bottom:e.bottom()+t})},moveBottomTo:function(e,t){var n=e.bottom()-e.top();return $l({left:e.left(),top:t-n,right:e.right(),bottom:t})},moveTopTo:function(e,t){var n=e.bottom()-e.top();return $l({left:e.left(),top:t,right:e.right(),bottom:t+n})},getTop:function(e){return e.top()},getBottom:function(e){return e.bottom()},translate:function(e,t,n){return $l({left:e.left()+t,top:e.top()+n,right:e.right()+t,bottom:e.bottom()+n})},toString:function(e){return"("+e.left()+", "+e.top()+") -> ("+e.right()+", "+e.bottom()+")"}},Zl=function(e){return Ql.nu({left:e.left,top:e.top,right:e.right,bottom:e.bottom})},ef=function(e,t){return S.some(e.getRect(t))},tf=function(e,t,n){return mt.isElement(t)?ef(e,t).map(Zl):mt.isText(t)?(r=e,o=t,i=n,0<=i&&i<yn(o)?r.getRangedRect(o,i,o,i+1):0<i?r.getRangedRect(o,i-1,o,i):S.none()).map(Zl):S.none();var r,o,i},nf=function(e,t){return mt.isElement(t)?ef(e,t).map(Zl):mt.isText(t)?e.getRangedRect(t,0,t,yn(t)).map(Zl):S.none()},rf=X("item","mode"),of=function(e,t,n,r){var o=r!==undefined?r:uf;return e.property().parent(t).map(function(e){return rf(e,o)})},uf=function(e,t,n,r){var o=r!==undefined?r:af;return n.sibling(e,t).map(function(e){return rf(e,o)})},af=function(e,t,n,r){var o=r!==undefined?r:af,i=e.property().children(t);return n.first(i).map(function(e){return rf(e,o)})},cf=[{current:of,next:uf,fallback:S.none()},{current:uf,next:af,fallback:S.some(of)},{current:af,next:af,fallback:S.some(uf)}],lf=function(t,n,r,o,e){return e=e!==undefined?e:cf,M(e,function(e){return e.current===r}).bind(function(e){return e.current(t,n,o,e.next).orThunk(function(){return e.fallback.bind(function(e){return lf(t,n,e,o)})})})},ff={backtrack:of,sidestep:uf,advance:af,go:lf},sf={left:function(){return{sibling:function(e,t){return e.query().prevSibling(t)},first:function(e){return 0<e.length?S.some(e[e.length-1]):S.none()}}},right:function(){return{sibling:function(e,t){return e.query().nextSibling(t)},first:function(e){return 0<e.length?S.some(e[0]):S.none()}}}},df=function(t,e,n,r,o,i){return ff.go(t,e,r,o).bind(function(e){return i(e.item())?S.none():n(e.item())?S.some(e.item()):df(t,e.item(),n,e.mode(),o,i)})},mf=function(e,t,n,r){return df(e,t,n,ff.sidestep,sf.left(),r)},gf=function(e,t,n,r){return df(e,t,n,ff.sidestep,sf.right(),r)},hf=function(e,t){return 0===e.property().children(t).length},pf=function(e,t,n,r){return mf(e,t,n,r)},vf=function(e,t,n,r){return gf(e,t,n,r)},bf={before:function(e,t,n){return pf(e,t,R(hf,e),n)},after:function(e,t,n){return vf(e,t,R(hf,e),n)},seekLeft:pf,seekRight:vf,walkers:function(){return{left:sf.left,right:sf.right}},walk:function(e,t,n,r,o){return ff.go(e,t,n,r,o)},backtrack:ff.backtrack,sidestep:ff.sidestep,advance:ff.advance},wf=Pn(),yf={gather:function(e,t,n){return bf.gather(wf,e,t,n)},before:function(e,t){return bf.before(wf,e,t)},after:function(e,t){return bf.after(wf,e,t)},seekLeft:function(e,t,n){return bf.seekLeft(wf,e,t,n)},seekRight:function(e,t,n){return bf.seekRight(wf,e,t,n)},walkers:function(){return bf.walkers()},walk:function(e,t,n,r){return bf.walk(wf,e,t,n,r)}},xf=Nr([{none:[]},{retry:["caret"]}]),Cf=function(t,e,r){return Bt.closest(e,Ho).fold(C(!1),function(e){return nf(t,e).exists(function(e){return n=e,(t=r).left()<n.left()||Math.abs(n.right()-t.left())<1||t.left()>n.right();var t,n})})},Rf={point:Ql.getTop,adjuster:function(e,t,n,r,o){var i=Ql.moveUp(o,5);return Math.abs(n.top()-r.top())<1?xf.retry(i):n.bottom()<o.top()?xf.retry(i):n.bottom()===o.top()?xf.retry(Ql.moveUp(o,1)):Cf(e,t,o)?xf.retry(Ql.translate(i,5,0)):xf.none()},move:Ql.moveUp,gather:yf.before},Sf={point:Ql.getBottom,adjuster:function(e,t,n,r,o){var i=Ql.moveDown(o,5);return Math.abs(n.bottom()-r.bottom())<1?xf.retry(i):n.top()>o.bottom()?xf.retry(i):n.top()===o.bottom()?xf.retry(Ql.moveDown(o,1)):Cf(e,t,o)?xf.retry(Ql.translate(i,5,0)):xf.none()},move:Ql.moveDown,gather:yf.after},Tf=function(n,r,o,i,u){return 0===u?S.some(i):(c=n,l=i.left(),f=r.point(i),c.elementFromPoint(l,f).filter(function(e){return"table"===mt.name(e)}).isSome()?(t=i,a=u-1,Tf(n,e=r,o,e.move(t,5),a)):n.situsFromPoint(i.left(),r.point(i)).bind(function(e){return e.start().fold(S.none,function(t,e){return nf(n,t,e).bind(function(e){return r.adjuster(n,t,e,o,i).fold(S.none,function(e){return Tf(n,r,o,e,u-1)})}).orThunk(function(){return S.some(i)})},S.none)}));var e,t,a,c,l,f},Nf=function(t,n,e){var r,o,i,u=t.move(e,5),a=Tf(n,t,e,u,100).getOr(u);return(r=t,o=a,i=n,r.point(o)>i.getInnerHeight()?S.some(r.point(o)-i.getInnerHeight()):r.point(o)<0?S.some(-r.point(o)):S.none()).fold(function(){return n.situsFromPoint(a.left(),t.point(a))},function(e){return n.scrollBy(0,e),n.situsFromPoint(a.left(),t.point(a)-e)})},Df={tryUp:R(Nf,Rf),tryDown:R(Nf,Sf),ieTryUp:function(e,t){return e.situsFromPoint(t.left(),t.top()-5)},ieTryDown:function(e,t){return e.situsFromPoint(t.left(),t.bottom()+5)},getJumpSize:C(5)},Ef=Nr([{none:["message"]},{success:[]},{failedUp:["cell"]},{failedDown:["cell"]}]),Of=function(e){return Wt.closest(e,"tr")},Af={verify:function(a,e,t,n,r,c,o){return Wt.closest(n,"td,th",o).bind(function(u){return Wt.closest(e,"td,th",o).map(function(i){return $e.eq(u,i)?$e.eq(n,u)&&yn(u)===r?c(i):Ef.none("in same cell"):Qn.sharedOne(Of,[u,i]).fold(function(){return t=i,n=u,r=(e=a).getRect(t),(o=e.getRect(n)).right>r.left&&o.left<r.right?Ef.success():c(i);var e,t,n,r,o},function(e){return c(i)})})}).getOr(Ef.none("default"))},cata:function(e,t,n,r,o){return e.fold(t,n,r,o)},adt:Ef},kf={point:X("element","offset"),delta:X("element","deltaOffset"),range:X("element","start","finish"),points:X("begin","end"),text:X("element","text")},Pf=(X("ancestor","descendants","element","index"),X("parent","children","element","index")),If=function(e,t){return W(e,R($e.eq,t))},Bf=function(r){return ot.parent(r).bind(function(t){var n=ot.children(t);return If(n,r).map(function(e){return Pf(t,n,r,e)})})},Mf=function(e){return"br"===mt.name(e)},Wf=function(e,t,n){return t(e,n).bind(function(e){return mt.isText(e)&&0===vn.get(e).trim().length?Wf(e,t,n):S.some(e)})},_f=function(t,e,n,r){return(o=e,i=n,ot.child(o,i).filter(Mf).orThunk(function(){return ot.child(o,i-1).filter(Mf)})).bind(function(e){return r.traverse(e).fold(function(){return Wf(e,r.gather,t).map(r.relative)},function(e){return Bf(e).map(function(e){return Lc.on(e.parent(),e.index())})})});var o,i},Lf=function(e,t,n,r){var o,i,u;return(Mf(t)?(o=e,i=t,(u=r).traverse(i).orThunk(function(){return Wf(i,u.gather,o)}).map(u.relative)):_f(e,t,n,r)).map(function(e){return{start:C(e),finish:C(e)}})},qf=function(e){return Af.cata(e,function(e){return S.none()},function(){return S.none()},function(e){return S.some(kf.point(e,0))},function(e){return S.some(kf.point(e,yn(e)))})},Ff=Xe.detect(),jf=function(r,o,i,u,a,c){return 0===c?S.none():Uf(r,o,i,u,a).bind(function(e){var t=r.fromSitus(e),n=Af.verify(r,i,u,t.finish(),t.foffset(),a.failure,o);return Af.cata(n,function(){return S.none()},function(){return S.some(e)},function(e){return $e.eq(i,e)&&0===u?zf(r,i,u,Ql.moveUp,a):jf(r,o,e,0,a,c-1)},function(e){return $e.eq(i,e)&&u===yn(e)?zf(r,i,u,Ql.moveDown,a):jf(r,o,e,yn(e),a,c-1)})})},zf=function(t,e,n,r,o){return tf(t,e,n).bind(function(e){return Hf(t,o,r(e,Df.getJumpSize()))})},Hf=function(e,t,n){return Ff.browser.isChrome()||Ff.browser.isSafari()||Ff.browser.isFirefox()||Ff.browser.isEdge()?t.otherRetry(e,n):Ff.browser.isIE()?t.ieRetry(e,n):S.none()},Uf=function(t,e,n,r,o){return tf(t,n,r).bind(function(e){return Hf(t,o,e)})},Vf=function(t,n,r){return(o=t,i=n,u=r,o.getSelection().bind(function(r){return Lf(i,r.finish(),r.foffset(),u).fold(function(){return S.some(kf.point(r.finish(),r.foffset()))},function(e){var t=o.fromSitus(e),n=Af.verify(o,r.finish(),r.foffset(),t.finish(),t.foffset(),u.failure,i);return qf(n)})})).bind(function(e){return jf(t,n,e.element(),e.offset(),r,20).map(t.fromSitus)});var o,i,u},Gf=function(e,t,n){return Bt.ancestor(e,t,n).isSome()},Yf=Xe.detect(),Xf=function(r,o,i,e,u){return Wt.closest(e,"td,th",o).bind(function(n){return Wt.closest(n,"table",o).bind(function(e){return t=e,Gf(u,function(e){return ot.parent(e).exists(function(e){return $e.eq(e,t)})})?Vf(r,o,i).bind(function(t){return Wt.closest(t.finish(),"td,th",o).map(function(e){return{start:C(n),finish:C(e),range:C(t)}})}):S.none();var t})})},Kf=function(e,t,n,r,o,i){return Yf.browser.isIE()?S.none():i(r,t).orThunk(function(){return Xf(e,t,n,r,o).map(function(e){var t=e.range();return Ll.response(S.some(Ul(t.start(),t.soffset(),t.finish(),t.foffset())),!0)})})},Jf=function(e,t,n,r,o,i,u){return Xf(e,n,r,o,i).bind(function(e){return Jl.detect(t,n,e.start(),e.finish(),u)})},$f=function(e,r){return Wt.closest(e,"tr",r).bind(function(n){return Wt.closest(n,"table",r).bind(function(e){var t=St.descendants(e,"tr");return $e.eq(n,t[0])?yf.seekLeft(e,function(e){return Rn.last(e).isSome()},r).map(function(e){var t=yn(e);return Ll.response(S.some(Ul(e,t,e,t)),!0)}):S.none()})})},Qf=function(e,r){return Wt.closest(e,"tr",r).bind(function(n){return Wt.closest(n,"table",r).bind(function(e){var t=St.descendants(e,"tr");return $e.eq(n,t[t.length-1])?yf.seekRight(e,function(e){return Rn.first(e).isSome()},r).map(function(e){return Ll.response(S.some(Ul(e,0,e,0)),!0)}):S.none()})})},Zf=function(e,t){return Wt.closest(e,"td,th",t)},es={down:{traverse:ot.nextSibling,gather:yf.after,relative:Lc.before,otherRetry:Df.tryDown,ieRetry:Df.ieTryDown,failure:Af.adt.failedDown},up:{traverse:ot.prevSibling,gather:yf.before,relative:Lc.before,otherRetry:Df.tryUp,ieRetry:Df.ieTryUp,failure:Af.adt.failedUp}},ts=X("rows","cols"),ns={mouse:function(e,t,n,r){var o,i,u,a,c,l,f=Xl(e),s=(o=f,i=t,u=n,a=r,c=S.none(),l=function(){c=S.none()},{mousedown:function(e){a.clear(i),c=Zf(e.target(),u)},mouseover:function(e){c.each(function(r){a.clear(i),Zf(e.target(),u).each(function(n){pr(r,n,u).each(function(e){var t=e.boxes().getOr([]);(1<t.length||1===t.length&&!$e.eq(r,n))&&(a.selectRange(i,t,e.start(),e.finish()),o.selectContents(n))})})})},mouseup:function(){c.each(l)}});return{mousedown:s.mousedown,mouseover:s.mouseover,mouseup:s.mouseup}},keyboard:function(e,c,l,f){var s=Xl(e),d=function(){return f.clear(c),S.none()};return{keydown:function(e,t,n,r,o,i){var u=e.raw().which,a=!0===e.raw().shiftKey;return vr(c,f.selectedSelector()).fold(function(){return zl.isDown(u)&&a?R(Jf,s,c,l,es.down,r,t,f.selectRange):zl.isUp(u)&&a?R(Jf,s,c,l,es.up,r,t,f.selectRange):zl.isDown(u)?R(Kf,s,l,es.down,r,t,Qf):zl.isUp(u)?R(Kf,s,l,es.up,r,t,$f):S.none},function(t){var e=function(e){return function(){return Jo(e,function(e){return Jl.update(e.rows(),e.cols(),c,t,f)}).fold(function(){return wr(c,f.firstSelectedSelector(),f.lastSelectedSelector()).map(function(e){var t=zl.isDown(u)||i.isForward(u)?Lc.after:Lc.before;return s.setRelativeSelection(Lc.on(e.first(),0),t(e.table())),f.clear(c),Ll.response(S.none(),!0)})},function(e){return S.some(Ll.response(S.none(),!0))})}};return zl.isDown(u)&&a?e([ts(1,0)]):zl.isUp(u)&&a?e([ts(-1,0)]):i.isBackward(u)&&a?e([ts(0,-1),ts(-1,0)]):i.isForward(u)&&a?e([ts(0,1),ts(1,0)]):zl.isNavigation(u)&&!1===a?d:S.none})()},keyup:function(t,n,r,o,i){return vr(c,f.selectedSelector()).fold(function(){var e=t.raw().which;return 0==(!0===t.raw().shiftKey)?S.none():zl.isNavigation(e)?Jl.sync(c,l,n,r,o,i,f.selectRange):S.none()},S.none)}}}},rs=function(t,e){k(e,function(e){Ai.remove(t,e)})},os=function(t){return function(e){Ai.add(e,t)}},is=function(t){return function(e){rs(e,t)}},us={byClass:function(o){var i=os(o.selected()),n=is([o.selected(),o.lastSelected(),o.firstSelected()]),u=function(e){var t=St.descendants(e,o.selectedSelector());k(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),k(t,i),Ai.add(n,o.firstSelected()),Ai.add(r,o.lastSelected())},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}},byAttr:function(o){var n=function(e){bt.remove(e,o.selected()),bt.remove(e,o.firstSelected()),bt.remove(e,o.lastSelected())},i=function(e){bt.set(e,o.selected(),"1")},u=function(e){var t=St.descendants(e,o.selectedSelector());k(t,n)};return{clear:u,selectRange:function(e,t,n,r){u(e),k(t,i),bt.set(n,o.firstSelected(),"1"),bt.set(r,o.lastSelected(),"1")},selectedSelector:o.selectedSelector,firstSelectedSelector:o.firstSelectedSelector,lastSelectedSelector:o.lastSelectedSelector}}},as=function(e){return!1===Ai.has(le.fromDom(e.target),"ephox-snooker-resizer-bar")};function cs(h,p){var v=ee(["mousedown","mouseover","mouseup","keyup","keydown"],[]),b=S.none(),w=us.byAttr(Tr);return h.on("init",function(e){var r=h.getWin(),o=ia(h),t=ca(h),n=ns.mouse(r,o,t,w),a=ns.keyboard(r,o,t,w),c=function(e,t){!0===e.raw().shiftKey&&(t.kill()&&e.kill(),t.selection().each(function(e){var t=jc.relative(e.start(),e.finish()),n=$c.asLtrRange(r,t);h.selection.setRng(n)}))},i=function(e){var t=f(e);if(t.raw().shiftKey&&zl.isNavigation(t.raw().which)){var n=h.selection.getRng(),r=le.fromDom(n.startContainer),o=le.fromDom(n.endContainer);a.keyup(t,r,n.startOffset,o,n.endOffset).each(function(e){c(t,e)})}},u=function(e){var t=f(e);p().each(function(e){e.hideBars()});var n=h.selection.getRng(),r=le.fromDom(h.selection.getStart()),o=le.fromDom(n.startContainer),i=le.fromDom(n.endContainer),u=ha.directionAt(r).isRtl()?zl.rtl:zl.ltr;a.keydown(t,o,n.startOffset,i,n.endOffset,u).each(function(e){c(t,e)}),p().each(function(e){e.showBars()})},l=function(e){return e.hasOwnProperty("x")&&e.hasOwnProperty("y")},f=function(e){var t=le.fromDom(e.target),n=function(){e.stopPropagation()},r=function(){e.preventDefault()},o=x(r,n);return{target:C(t),x:C(l(e)?e.x:null),y:C(l(e)?e.y:null),stop:n,prevent:r,kill:o,raw:C(e)}},s=function(e){return 0===e.button},d=function(e){s(e)&&as(e)&&n.mousedown(f(e))},m=function(e){var t;(t=e).buttons!==undefined&&0==(1&t.buttons)||!as(e)||n.mouseover(f(e))},g=function(e){s(e)&&as(e)&&n.mouseup(f(e))};h.on("mousedown",d),h.on("mouseover",m),h.on("mouseup",g),h.on("keyup",i),h.on("keydown",u),h.on("nodechange",function(){var e=h.selection,t=le.fromDom(e.getStart()),n=le.fromDom(e.getEnd());Qn.sharedOne(zt.table,[t,n]).fold(function(){w.clear(o)},y)}),b=S.some(v({mousedown:d,mouseover:m,mouseup:g,keyup:i,keydown:u}))}),{clear:w.clear,destroy:function(){b.each(function(e){})}}}var ls=Ia.each,fs=function(t){var n=[];function e(e){return function(){t.execCommand(e)}}ls("inserttable tableprops deletetable | cell row column".split(" "),function(e){"|"===e?n.push({text:"-"}):n.push(t.menuItems[e])}),t.addButton("table",{type:"menubutton",title:"Table",menu:n}),t.addButton("tableprops",{title:"Table properties",onclick:e("mceTableProps"),icon:"table"}),t.addButton("tabledelete",{title:"Delete table",onclick:e("mceTableDelete")}),t.addButton("tablecellprops",{title:"Cell properties",onclick:e("mceTableCellProps")}),t.addButton("tablemergecells",{title:"Merge cells",onclick:e("mceTableMergeCells")}),t.addButton("tablesplitcells",{title:"Split cell",onclick:e("mceTableSplitCells")}),t.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:e("mceTableInsertRowBefore")}),t.addButton("tableinsertrowafter",{title:"Insert row after",onclick:e("mceTableInsertRowAfter")}),t.addButton("tabledeleterow",{title:"Delete row",onclick:e("mceTableDeleteRow")}),t.addButton("tablerowprops",{title:"Row properties",onclick:e("mceTableRowProps")}),t.addButton("tablecutrow",{title:"Cut row",onclick:e("mceTableCutRow")}),t.addButton("tablecopyrow",{title:"Copy row",onclick:e("mceTableCopyRow")}),t.addButton("tablepasterowbefore",{title:"Paste row before",onclick:e("mceTablePasteRowBefore")}),t.addButton("tablepasterowafter",{title:"Paste row after",onclick:e("mceTablePasteRowAfter")}),t.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:e("mceTableInsertColBefore")}),t.addButton("tableinsertcolafter",{title:"Insert column after",onclick:e("mceTableInsertColAfter")}),t.addButton("tabledeletecol",{title:"Delete column",onclick:e("mceTableDeleteCol")})},ss=function(t){var e,n=""===(e=t.getParam("table_toolbar",pa))||!1===e?[]:v(e)?e.split(/[ ,]/):b(e)?e:[];0<n.length&&t.addContextToolbar(function(e){return t.dom.is(e,"table")&&t.getBody().contains(e)},n.join(" "))},ds=function(o,n){var r=S.none(),i=[],u=[],a=[],c=[],l=function(e){e.disabled(!0)},f=function(e){e.disabled(!1)},e=function(){var t=this;i.push(t),r.fold(function(){l(t)},function(e){f(t)})},t=function(){var t=this;u.push(t),r.fold(function(){l(t)},function(e){f(t)})};o.on("init",function(){o.on("nodechange",function(e){var t=S.from(o.dom.getParent(o.selection.getStart(),"th,td"));(r=t.bind(function(e){var t=le.fromDom(e);return zt.table(t).map(function(e){return Mr.forMenu(n,e,t)})})).fold(function(){k(i,l),k(u,l),k(a,l),k(c,l)},function(t){k(i,f),k(u,f),k(a,function(e){e.disabled(t.mergable().isNone())}),k(c,function(e){e.disabled(t.unmergable().isNone())})})})});var s=function(e,t,n,r){var o,i,u,a,c,l=r.getEl().getElementsByTagName("table")[0],f=r.isRtl()||"tl-tr"===r.parent().rel;for(l.nextSibling.innerHTML=t+1+" x "+(n+1),f&&(t=9-t),i=0;i<10;i++)for(o=0;o<10;o++)a=l.rows[i].childNodes[o].firstChild,c=(f?t<=o:o<=t)&&i<=n,e.dom.toggleClass(a,"mce-active",c),c&&(u=a);return u.parentNode},d=!1===o.getParam("table_grid",!0,"boolean")?{text:"Table",icon:"table",context:"table",onclick:m("mceInsertTable")}:{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),o.execCommand("mceInsertTable"))},onshow:function(){s(o,0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");o.dom.removeClass(e,"mce-active"),o.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;t<10;t++){e+="<tr>";for(var n=0;n<10;n++)e+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,r=e.target;"A"===r.tagName.toUpperCase()&&(t=parseInt(r.getAttribute("data-mce-x"),10),n=parseInt(r.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"===this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(s(o,t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"===e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),o.undoManager.transact(function(){Qa(o,t.lastX+1,t.lastY+1)}),o.addVisual())}}]};function m(e){return function(){o.execCommand(e)}}var g={text:"Table properties",context:"table",onPostRender:e,onclick:m("mceTableProps")},h={text:"Delete table",context:"table",onPostRender:e,cmd:"mceTableDelete"},p={text:"Row",context:"table",menu:[{text:"Insert row before",onclick:m("mceTableInsertRowBefore"),onPostRender:t},{text:"Insert row after",onclick:m("mceTableInsertRowAfter"),onPostRender:t},{text:"Delete row",onclick:m("mceTableDeleteRow"),onPostRender:t},{text:"Row properties",onclick:m("mceTableRowProps"),onPostRender:t},{text:"-"},{text:"Cut row",onclick:m("mceTableCutRow"),onPostRender:t},{text:"Copy row",onclick:m("mceTableCopyRow"),onPostRender:t},{text:"Paste row before",onclick:m("mceTablePasteRowBefore"),onPostRender:t},{text:"Paste row after",onclick:m("mceTablePasteRowAfter"),onPostRender:t}]},v={text:"Column",context:"table",menu:[{text:"Insert column before",onclick:m("mceTableInsertColBefore"),onPostRender:t},{text:"Insert column after",onclick:m("mceTableInsertColAfter"),onPostRender:t},{text:"Delete column",onclick:m("mceTableDeleteCol"),onPostRender:t}]},b={separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:m("mceTableCellProps"),onPostRender:t},{text:"Merge cells",onclick:m("mceTableMergeCells"),onPostRender:function(){var t=this;a.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.mergable().isNone())})}},{text:"Split cell",onclick:m("mceTableSplitCells"),onPostRender:function(){var t=this;c.push(t),r.fold(function(){l(t)},function(e){t.disabled(e.unmergable().isNone())})}}]};o.addMenuItem("inserttable",d),o.addMenuItem("tableprops",g),o.addMenuItem("deletetable",h),o.addMenuItem("row",p),o.addMenuItem("column",v),o.addMenuItem("cell",b)},ms=function(n,r){return{insertTable:function(e,t){return Qa(n,e,t)},setClipboardRows:function(e){return t=r,n=A(e,le.fromDom),void t.set(S.from(n));var t,n},getClipboardRows:function(){return r.get().fold(function(){},function(e){return A(e,function(e){return e.dom()})})}}};i.add("table",function(t){var n,r=Ec(t),e=cs(t,r.lazyResize),o=ka(t,r.lazyWire),i=(n=t,{get:function(){var e=ia(n);return yr(e,Tr.selectedSelector()).fold(function(){return n.selection.getStart()===undefined?Er.none():Er.single(n.selection)},function(e){return Er.multiple(e)})}}),u=Do(S.none());return rc(t,o,e,i,u),Wr(t,i,o,e),ds(t,i),fs(t),ss(t),t.on("PreInit",function(){t.serializer.addTempAttr(Tr.firstSelected()),t.serializer.addTempAttr(Tr.lastSelected())}),t.getParam("table_tab_navigation",!0,"boolean")&&t.on("keydown",function(e){_l(e,t,o,r.lazyWire)}),t.on("remove",function(){r.destroy(),e.destroy()}),ms(t,u)})}();
mce/visualblocks/plugin.js CHANGED
@@ -25,7 +25,7 @@ var visualblocks = (function () {
25
  var fireVisualBlocks = function (editor, state) {
26
  editor.fire('VisualBlocks', { state: state });
27
  };
28
- var $_8ve51drljfuvizyc = { fireVisualBlocks: fireVisualBlocks };
29
 
30
  var isEnabledByDefault = function (editor) {
31
  return editor.getParam('visualblocks_default_state', false);
@@ -33,7 +33,7 @@ var visualblocks = (function () {
33
  var getContentCss = function (editor) {
34
  return editor.settings.visualblocks_content_css;
35
  };
36
- var $_3mx2zgrmjfuvizyc = {
37
  isEnabledByDefault: isEnabledByDefault,
38
  getContentCss: getContentCss
39
  };
@@ -57,24 +57,24 @@ var visualblocks = (function () {
57
  doc.getElementsByTagName('head')[0].appendChild(linkElm);
58
  }
59
  };
60
- var $_c3ie7zrnjfuvizyd = { load: load };
61
 
62
  var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {
63
  var dom = editor.dom;
64
- var contentCss = $_3mx2zgrmjfuvizyc.getContentCss(editor);
65
- $_c3ie7zrnjfuvizyd.load(editor.getDoc(), contentCss ? contentCss : pluginUrl + '/css/visualblocks.css');
66
  dom.toggleClass(editor.getBody(), 'mce-visualblocks');
67
  enabledState.set(!enabledState.get());
68
- $_8ve51drljfuvizyc.fireVisualBlocks(editor, enabledState.get());
69
  };
70
- var $_g5w5f0rkjfuvizyb = { toggleVisualBlocks: toggleVisualBlocks };
71
 
72
  var register = function (editor, pluginUrl, enabledState) {
73
  editor.addCommand('mceVisualBlocks', function () {
74
- $_g5w5f0rkjfuvizyb.toggleVisualBlocks(editor, pluginUrl, enabledState);
75
  });
76
  };
77
- var $_1xej9srjjfuvizya = { register: register };
78
 
79
  var setup = function (editor, pluginUrl, enabledState) {
80
  editor.on('PreviewFormats AfterPreviewFormats', function (e) {
@@ -83,15 +83,15 @@ var visualblocks = (function () {
83
  }
84
  });
85
  editor.on('init', function () {
86
- if ($_3mx2zgrmjfuvizyc.isEnabledByDefault(editor)) {
87
- $_g5w5f0rkjfuvizyb.toggleVisualBlocks(editor, pluginUrl, enabledState);
88
  }
89
  });
90
  editor.on('remove', function () {
91
  editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');
92
  });
93
  };
94
- var $_2btmdwrqjfuvizyg = { setup: setup };
95
 
96
  var toggleActiveState = function (editor, enabledState) {
97
  return function (e) {
@@ -118,13 +118,13 @@ var visualblocks = (function () {
118
  prependToContext: true
119
  });
120
  };
121
- var $_cll8zkrrjfuvizyh = { register: register$1 };
122
 
123
  global.add('visualblocks', function (editor, pluginUrl) {
124
  var enabledState = Cell(false);
125
- $_1xej9srjjfuvizya.register(editor, pluginUrl, enabledState);
126
- $_cll8zkrrjfuvizyh.register(editor, enabledState);
127
- $_2btmdwrqjfuvizyg.setup(editor, pluginUrl, enabledState);
128
  });
129
  function Plugin () {
130
  }
25
  var fireVisualBlocks = function (editor, state) {
26
  editor.fire('VisualBlocks', { state: state });
27
  };
28
+ var $_cfd0xesjjjgwefha = { fireVisualBlocks: fireVisualBlocks };
29
 
30
  var isEnabledByDefault = function (editor) {
31
  return editor.getParam('visualblocks_default_state', false);
33
  var getContentCss = function (editor) {
34
  return editor.settings.visualblocks_content_css;
35
  };
36
+ var $_99gi40skjjgwefhb = {
37
  isEnabledByDefault: isEnabledByDefault,
38
  getContentCss: getContentCss
39
  };
57
  doc.getElementsByTagName('head')[0].appendChild(linkElm);
58
  }
59
  };
60
+ var $_1im807sljjgwefhc = { load: load };
61
 
62
  var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {
63
  var dom = editor.dom;
64
+ var contentCss = $_99gi40skjjgwefhb.getContentCss(editor);
65
+ $_1im807sljjgwefhc.load(editor.getDoc(), contentCss ? contentCss : pluginUrl + '/css/visualblocks.css');
66
  dom.toggleClass(editor.getBody(), 'mce-visualblocks');
67
  enabledState.set(!enabledState.get());
68
+ $_cfd0xesjjjgwefha.fireVisualBlocks(editor, enabledState.get());
69
  };
70
+ var $_apq7q0sijjgwefh9 = { toggleVisualBlocks: toggleVisualBlocks };
71
 
72
  var register = function (editor, pluginUrl, enabledState) {
73
  editor.addCommand('mceVisualBlocks', function () {
74
+ $_apq7q0sijjgwefh9.toggleVisualBlocks(editor, pluginUrl, enabledState);
75
  });
76
  };
77
+ var $_8z3ztoshjjgwefh8 = { register: register };
78
 
79
  var setup = function (editor, pluginUrl, enabledState) {
80
  editor.on('PreviewFormats AfterPreviewFormats', function (e) {
83
  }
84
  });
85
  editor.on('init', function () {
86
+ if ($_99gi40skjjgwefhb.isEnabledByDefault(editor)) {
87
+ $_apq7q0sijjgwefh9.toggleVisualBlocks(editor, pluginUrl, enabledState);
88
  }
89
  });
90
  editor.on('remove', function () {
91
  editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');
92
  });
93
  };
94
+ var $_39i156sojjgwefhe = { setup: setup };
95
 
96
  var toggleActiveState = function (editor, enabledState) {
97
  return function (e) {
118
  prependToContext: true
119
  });
120
  };
121
+ var $_6iz4uwspjjgwefhf = { register: register$1 };
122
 
123
  global.add('visualblocks', function (editor, pluginUrl) {
124
  var enabledState = Cell(false);
125
+ $_8z3ztoshjjgwefh8.register(editor, pluginUrl, enabledState);
126
+ $_6iz4uwspjjgwefhf.register(editor, enabledState);
127
+ $_39i156sojjgwefhe.setup(editor, pluginUrl, enabledState);
128
  });
129
  function Plugin () {
130
  }
mce/visualchars/plugin.js CHANGED
@@ -28,12 +28,12 @@ var visualchars = (function () {
28
  };
29
  return { isEnabled: isEnabled };
30
  };
31
- var $_ac6vamrvjfuvizyy = { get: get };
32
 
33
  var fireVisualChars = function (editor, state) {
34
  return editor.fire('VisualChars', { state: state });
35
  };
36
- var $_bp2yiryjfuvizz0 = { fireVisualChars: fireVisualChars };
37
 
38
  var charMap = {
39
  '\xA0': 'nbsp',
@@ -56,7 +56,7 @@ var visualchars = (function () {
56
  }
57
  return selector;
58
  };
59
- var $_d3i4l8s0jfuvizzb = {
60
  charMap: charMap,
61
  regExp: charMapToRegExp(charMap),
62
  regExpGlobal: charMapToRegExp(charMap, true),
@@ -65,101 +65,23 @@ var visualchars = (function () {
65
  charMapToSelector: charMapToSelector
66
  };
67
 
68
- var noop = function () {
69
- var x = [];
70
- for (var _i = 0; _i < arguments.length; _i++) {
71
- x[_i] = arguments[_i];
72
- }
73
- };
74
- var noarg = function (f) {
75
- return function () {
76
- var x = [];
77
- for (var _i = 0; _i < arguments.length; _i++) {
78
- x[_i] = arguments[_i];
79
- }
80
- return f();
81
- };
82
- };
83
- var compose = function (fa, fb) {
84
- return function () {
85
- var x = [];
86
- for (var _i = 0; _i < arguments.length; _i++) {
87
- x[_i] = arguments[_i];
88
- }
89
- return fa(fb.apply(null, arguments));
90
- };
91
- };
92
  var constant = function (value) {
93
  return function () {
94
  return value;
95
  };
96
  };
97
- var identity = function (x) {
98
- return x;
99
- };
100
- var tripleEquals = function (a, b) {
101
- return a === b;
102
- };
103
- var curry = function (f) {
104
- var x = [];
105
- for (var _i = 1; _i < arguments.length; _i++) {
106
- x[_i - 1] = arguments[_i];
107
- }
108
- var args = new Array(arguments.length - 1);
109
- for (var i = 1; i < arguments.length; i++)
110
- args[i - 1] = arguments[i];
111
- return function () {
112
- var x = [];
113
- for (var _i = 0; _i < arguments.length; _i++) {
114
- x[_i] = arguments[_i];
115
- }
116
- var newArgs = new Array(arguments.length);
117
- for (var j = 0; j < newArgs.length; j++)
118
- newArgs[j] = arguments[j];
119
- var all = args.concat(newArgs);
120
- return f.apply(null, all);
121
- };
122
- };
123
- var not = function (f) {
124
- return function () {
125
- var x = [];
126
- for (var _i = 0; _i < arguments.length; _i++) {
127
- x[_i] = arguments[_i];
128
- }
129
- return !f.apply(null, arguments);
130
- };
131
- };
132
- var die = function (msg) {
133
- return function () {
134
- throw new Error(msg);
135
- };
136
- };
137
- var apply = function (f) {
138
- return f();
139
- };
140
- var call = function (f) {
141
- f();
142
- };
143
  var never = constant(false);
144
  var always = constant(true);
145
- var $_33vunks4jfuvizzw = {
146
- noop: noop,
147
- noarg: noarg,
148
- compose: compose,
149
- constant: constant,
150
- identity: identity,
151
- tripleEquals: tripleEquals,
152
- curry: curry,
153
- not: not,
154
- die: die,
155
- apply: apply,
156
- call: call,
157
- never: never,
158
- always: always
159
- };
160
-
161
- var never$1 = $_33vunks4jfuvizzw.never;
162
- var always$1 = $_33vunks4jfuvizzw.always;
163
  var none = function () {
164
  return NONE;
165
  };
@@ -167,13 +89,19 @@ var visualchars = (function () {
167
  var eq = function (o) {
168
  return o.isNone();
169
  };
170
- var call = function (thunk) {
171
  return thunk();
172
  };
173
  var id = function (n) {
174
  return n;
175
  };
176
- var noop = function () {
 
 
 
 
 
 
177
  };
178
  var me = {
179
  fold: function (n, s) {
@@ -183,15 +111,17 @@ var visualchars = (function () {
183
  isSome: never$1,
184
  isNone: always$1,
185
  getOr: id,
186
- getOrThunk: call,
187
  getOrDie: function (msg) {
188
  throw new Error(msg || 'error: getOrDie called on none.');
189
  },
 
 
190
  or: id,
191
- orThunk: call,
192
  map: none,
193
  ap: none,
194
- each: noop,
195
  bind: none,
196
  flatten: none,
197
  exists: never$1,
@@ -202,7 +132,7 @@ var visualchars = (function () {
202
  toArray: function () {
203
  return [];
204
  },
205
- toString: $_33vunks4jfuvizzw.constant('none()')
206
  };
207
  if (Object.freeze)
208
  Object.freeze(me);
@@ -233,6 +163,8 @@ var visualchars = (function () {
233
  getOr: constant_a,
234
  getOrThunk: constant_a,
235
  getOrDie: constant_a,
 
 
236
  or: self,
237
  orThunk: self,
238
  map: map,
@@ -292,52 +224,14 @@ var visualchars = (function () {
292
  return typeOf(value) === type;
293
  };
294
  };
295
- var $_c4ua8qs5jfuvj001 = {
296
- isString: isType('string'),
297
- isObject: isType('object'),
298
- isArray: isType('array'),
299
- isNull: isType('null'),
300
- isBoolean: isType('boolean'),
301
- isUndefined: isType('undefined'),
302
- isFunction: isType('function'),
303
- isNumber: isType('number')
304
- };
305
-
306
- var rawIndexOf = function () {
307
- var pIndexOf = Array.prototype.indexOf;
308
- var fastIndex = function (xs, x) {
309
- return pIndexOf.call(xs, x);
310
- };
311
- var slowIndex = function (xs, x) {
312
- return slowIndexOf(xs, x);
313
- };
314
- return pIndexOf === undefined ? slowIndex : fastIndex;
315
- }();
316
- var indexOf = function (xs, x) {
317
- var r = rawIndexOf(xs, x);
318
- return r === -1 ? Option.none() : Option.some(r);
319
- };
320
- var contains = function (xs, x) {
321
- return rawIndexOf(xs, x) > -1;
322
- };
323
- var exists = function (xs, pred) {
324
- return findIndex(xs, pred).isSome();
325
- };
326
- var range = function (num, f) {
327
- var r = [];
328
- for (var i = 0; i < num; i++) {
329
- r.push(f(i));
330
- }
331
- return r;
332
- };
333
- var chunk = function (array, size) {
334
- var r = [];
335
- for (var i = 0; i < array.length; i += size) {
336
- var s = array.slice(i, i + size);
337
- r.push(s);
338
- }
339
- return r;
340
- };
341
  var map = function (xs, f) {
342
  var len = xs.length;
343
  var r = new Array(len);
@@ -353,189 +247,29 @@ var visualchars = (function () {
353
  f(x, i, xs);
354
  }
355
  };
356
- var eachr = function (xs, f) {
357
- for (var i = xs.length - 1; i >= 0; i--) {
358
- var x = xs[i];
359
- f(x, i, xs);
360
- }
361
- };
362
- var partition = function (xs, pred) {
363
- var pass = [];
364
- var fail = [];
365
- for (var i = 0, len = xs.length; i < len; i++) {
366
- var x = xs[i];
367
- var arr = pred(x, i, xs) ? pass : fail;
368
- arr.push(x);
369
- }
370
- return {
371
- pass: pass,
372
- fail: fail
373
- };
374
- };
375
- var filter = function (xs, pred) {
376
- var r = [];
377
- for (var i = 0, len = xs.length; i < len; i++) {
378
- var x = xs[i];
379
- if (pred(x, i, xs)) {
380
- r.push(x);
381
- }
382
- }
383
- return r;
384
- };
385
- var groupBy = function (xs, f) {
386
- if (xs.length === 0) {
387
- return [];
388
- } else {
389
- var wasType = f(xs[0]);
390
- var r = [];
391
- var group = [];
392
- for (var i = 0, len = xs.length; i < len; i++) {
393
- var x = xs[i];
394
- var type = f(x);
395
- if (type !== wasType) {
396
- r.push(group);
397
- group = [];
398
- }
399
- wasType = type;
400
- group.push(x);
401
- }
402
- if (group.length !== 0) {
403
- r.push(group);
404
- }
405
- return r;
406
- }
407
- };
408
- var foldr = function (xs, f, acc) {
409
- eachr(xs, function (x) {
410
- acc = f(acc, x);
411
- });
412
- return acc;
413
- };
414
- var foldl = function (xs, f, acc) {
415
- each(xs, function (x) {
416
- acc = f(acc, x);
417
- });
418
- return acc;
419
- };
420
- var find = function (xs, pred) {
421
- for (var i = 0, len = xs.length; i < len; i++) {
422
- var x = xs[i];
423
- if (pred(x, i, xs)) {
424
- return Option.some(x);
425
- }
426
- }
427
- return Option.none();
428
- };
429
- var findIndex = function (xs, pred) {
430
- for (var i = 0, len = xs.length; i < len; i++) {
431
- var x = xs[i];
432
- if (pred(x, i, xs)) {
433
- return Option.some(i);
434
- }
435
- }
436
- return Option.none();
437
- };
438
- var slowIndexOf = function (xs, x) {
439
- for (var i = 0, len = xs.length; i < len; ++i) {
440
- if (xs[i] === x) {
441
- return i;
442
- }
443
- }
444
- return -1;
445
- };
446
- var push = Array.prototype.push;
447
- var flatten = function (xs) {
448
- var r = [];
449
- for (var i = 0, len = xs.length; i < len; ++i) {
450
- if (!Array.prototype.isPrototypeOf(xs[i]))
451
- throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
452
- push.apply(r, xs[i]);
453
- }
454
- return r;
455
- };
456
- var bind = function (xs, f) {
457
- var output = map(xs, f);
458
- return flatten(output);
459
- };
460
- var forall = function (xs, pred) {
461
- for (var i = 0, len = xs.length; i < len; ++i) {
462
- var x = xs[i];
463
- if (pred(x, i, xs) !== true) {
464
- return false;
465
- }
466
- }
467
- return true;
468
- };
469
- var equal = function (a1, a2) {
470
- return a1.length === a2.length && forall(a1, function (x, i) {
471
- return x === a2[i];
472
- });
473
- };
474
  var slice = Array.prototype.slice;
475
- var reverse = function (xs) {
476
- var r = slice.call(xs, 0);
477
- r.reverse();
478
- return r;
479
- };
480
- var difference = function (a1, a2) {
481
- return filter(a1, function (x) {
482
- return !contains(a2, x);
483
- });
484
- };
485
- var mapToObject = function (xs, f) {
486
- var r = {};
487
- for (var i = 0, len = xs.length; i < len; i++) {
488
- var x = xs[i];
489
- r[String(x)] = f(x, i);
490
- }
491
- return r;
492
- };
493
- var pure = function (x) {
494
- return [x];
495
- };
496
- var sort = function (xs, comparator) {
497
- var copy = slice.call(xs, 0);
498
- copy.sort(comparator);
499
- return copy;
500
- };
501
- var head = function (xs) {
502
- return xs.length === 0 ? Option.none() : Option.some(xs[0]);
503
- };
504
- var last = function (xs) {
505
- return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
506
- };
507
- var from$1 = $_c4ua8qs5jfuvj001.isFunction(Array.from) ? Array.from : function (x) {
508
  return slice.call(x);
509
  };
510
- var $_8kpzfus2jfuvizzn = {
511
- map: map,
512
- each: each,
513
- eachr: eachr,
514
- partition: partition,
515
- filter: filter,
516
- groupBy: groupBy,
517
- indexOf: indexOf,
518
- foldr: foldr,
519
- foldl: foldl,
520
- find: find,
521
- findIndex: findIndex,
522
- flatten: flatten,
523
- bind: bind,
524
- forall: forall,
525
- exists: exists,
526
- contains: contains,
527
- equal: equal,
528
- reverse: reverse,
529
- chunk: chunk,
530
- difference: difference,
531
- mapToObject: mapToObject,
532
- pure: pure,
533
- sort: sort,
534
- range: range,
535
- head: head,
536
- last: last,
537
- from: from$1
538
- };
539
 
540
  var fromHtml = function (html, scope) {
541
  var doc = scope || document;
@@ -560,12 +294,13 @@ var visualchars = (function () {
560
  var fromDom = function (node) {
561
  if (node === null || node === undefined)
562
  throw new Error('Node cannot be null or undefined');
563
- return { dom: $_33vunks4jfuvizzw.constant(node) };
564
  };
565
- var fromPoint = function (doc, x, y) {
566
- return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom);
 
567
  };
568
- var $_6p5m48s6jfuvj003 = {
569
  fromHtml: fromHtml,
570
  fromTag: fromTag,
571
  fromText: fromText,
@@ -573,19 +308,19 @@ var visualchars = (function () {
573
  fromPoint: fromPoint
574
  };
575
 
576
- var $_2edk7os8jfuvj00a = {
577
- ATTRIBUTE: 2,
578
- CDATA_SECTION: 4,
579
- COMMENT: 8,
580
- DOCUMENT: 9,
581
- DOCUMENT_TYPE: 10,
582
- DOCUMENT_FRAGMENT: 11,
583
- ELEMENT: 1,
584
- TEXT: 3,
585
- PROCESSING_INSTRUCTION: 7,
586
- ENTITY_REFERENCE: 5,
587
- ENTITY: 6,
588
- NOTATION: 12
589
  };
590
 
591
  var name = function (element) {
@@ -604,12 +339,12 @@ var visualchars = (function () {
604
  };
605
  };
606
  var isComment = function (element) {
607
- return type(element) === $_2edk7os8jfuvj00a.COMMENT || name(element) === '#comment';
608
  };
609
- var isElement = isType$1($_2edk7os8jfuvj00a.ELEMENT);
610
- var isText = isType$1($_2edk7os8jfuvj00a.TEXT);
611
- var isDocument = isType$1($_2edk7os8jfuvj00a.DOCUMENT);
612
- var $_e2678os7jfuvj009 = {
613
  name: name,
614
  type: type,
615
  value: value,
@@ -620,18 +355,18 @@ var visualchars = (function () {
620
  };
621
 
622
  var wrapCharWithSpan = function (value) {
623
- return '<span data-mce-bogus="1" class="mce-' + $_d3i4l8s0jfuvizzb.charMap[value] + '">' + value + '</span>';
624
  };
625
- var $_fee3jys9jfuvj00a = { wrapCharWithSpan: wrapCharWithSpan };
626
 
627
  var isMatch = function (n) {
628
- return $_e2678os7jfuvj009.isText(n) && $_e2678os7jfuvj009.value(n) !== undefined && $_d3i4l8s0jfuvizzb.regExp.test($_e2678os7jfuvj009.value(n));
629
  };
630
  var filterDescendants = function (scope, predicate) {
631
  var result = [];
632
  var dom = scope.dom();
633
- var children = $_8kpzfus2jfuvizzn.map(dom.childNodes, $_6p5m48s6jfuvj003.fromDom);
634
- $_8kpzfus2jfuvizzn.each(children, function (x) {
635
  if (predicate(x)) {
636
  result = result.concat([x]);
637
  }
@@ -648,9 +383,9 @@ var visualchars = (function () {
648
  }
649
  };
650
  var replaceWithSpans = function (html) {
651
- return html.replace($_d3i4l8s0jfuvizzb.regExpGlobal, $_fee3jys9jfuvj00a.wrapCharWithSpan);
652
  };
653
- var $_4ukjx9s1jfuvizzd = {
654
  isMatch: isMatch,
655
  filterDescendants: filterDescendants,
656
  findParentElm: findParentElm,
@@ -659,9 +394,9 @@ var visualchars = (function () {
659
 
660
  var show = function (editor, rootElm) {
661
  var node, div;
662
- var nodeList = $_4ukjx9s1jfuvizzd.filterDescendants($_6p5m48s6jfuvj003.fromDom(rootElm), $_4ukjx9s1jfuvizzd.isMatch);
663
- $_8kpzfus2jfuvizzn.each(nodeList, function (n) {
664
- var withSpans = $_4ukjx9s1jfuvizzd.replaceWithSpans($_e2678os7jfuvj009.value(n));
665
  div = editor.dom.create('div', null, withSpans);
666
  while (node = div.lastChild) {
667
  editor.dom.insertAfter(node, n.dom());
@@ -670,21 +405,21 @@ var visualchars = (function () {
670
  });
671
  };
672
  var hide = function (editor, body) {
673
- var nodeList = editor.dom.select($_d3i4l8s0jfuvizzb.selector, body);
674
- $_8kpzfus2jfuvizzn.each(nodeList, function (node) {
675
  editor.dom.remove(node, 1);
676
  });
677
  };
678
  var toggle = function (editor) {
679
  var body = editor.getBody();
680
  var bookmark = editor.selection.getBookmark();
681
- var parentNode = $_4ukjx9s1jfuvizzd.findParentElm(editor.selection.getNode(), body);
682
  parentNode = parentNode !== undefined ? parentNode : body;
683
  hide(editor, parentNode);
684
  show(editor, parentNode);
685
  editor.selection.moveToBookmark(bookmark);
686
  };
687
- var $_2iuj5arzjfuvizz1 = {
688
  show: show,
689
  hide: hide,
690
  toggle: toggle
@@ -695,39 +430,39 @@ var visualchars = (function () {
695
  var selection = editor.selection;
696
  var bookmark;
697
  toggleState.set(!toggleState.get());
698
- $_bp2yiryjfuvizz0.fireVisualChars(editor, toggleState.get());
699
  bookmark = selection.getBookmark();
700
  if (toggleState.get() === true) {
701
- $_2iuj5arzjfuvizz1.show(editor, body);
702
  } else {
703
- $_2iuj5arzjfuvizz1.hide(editor, body);
704
  }
705
  selection.moveToBookmark(bookmark);
706
  };
707
- var $_ban5ktrxjfuvizyz = { toggleVisualChars: toggleVisualChars };
708
 
709
  var register = function (editor, toggleState) {
710
  editor.addCommand('mceVisualChars', function () {
711
- $_ban5ktrxjfuvizyz.toggleVisualChars(editor, toggleState);
712
  });
713
  };
714
- var $_abgb1urwjfuvizyy = { register: register };
715
 
716
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');
717
 
718
  var setup = function (editor, toggleState) {
719
  var debouncedToggle = global$1.debounce(function () {
720
- $_2iuj5arzjfuvizz1.toggle(editor);
721
  }, 300);
722
  if (editor.settings.forced_root_block !== false) {
723
  editor.on('keydown', function (e) {
724
  if (toggleState.get() === true) {
725
- e.keyCode === 13 ? $_2iuj5arzjfuvizz1.toggle(editor) : debouncedToggle();
726
  }
727
  });
728
  }
729
  };
730
- var $_d4sen5sajfuvj00b = { setup: setup };
731
 
732
  var toggleActiveState = function (editor) {
733
  return function (e) {
@@ -756,10 +491,10 @@ var visualchars = (function () {
756
 
757
  global.add('visualchars', function (editor) {
758
  var toggleState = Cell(false);
759
- $_abgb1urwjfuvizyy.register(editor, toggleState);
760
  register$1(editor);
761
- $_d4sen5sajfuvj00b.setup(editor, toggleState);
762
- return $_ac6vamrvjfuvizyy.get(toggleState);
763
  });
764
  function Plugin () {
765
  }
28
  };
29
  return { isEnabled: isEnabled };
30
  };
31
+ var $_bzyi9mstjjgwefi0 = { get: get };
32
 
33
  var fireVisualChars = function (editor, state) {
34
  return editor.fire('VisualChars', { state: state });
35
  };
36
+ var $_esznvlswjjgwefi3 = { fireVisualChars: fireVisualChars };
37
 
38
  var charMap = {
39
  '\xA0': 'nbsp',
56
  }
57
  return selector;
58
  };
59
+ var $_9y0plgsyjjgwefib = {
60
  charMap: charMap,
61
  regExp: charMapToRegExp(charMap),
62
  regExpGlobal: charMapToRegExp(charMap, true),
65
  charMapToSelector: charMapToSelector
66
  };
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  var constant = function (value) {
69
  return function () {
70
  return value;
71
  };
72
  };
73
+
74
+
75
+
76
+
77
+
78
+
79
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  var never = constant(false);
81
  var always = constant(true);
82
+
83
+ var never$1 = never;
84
+ var always$1 = always;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  var none = function () {
86
  return NONE;
87
  };
89
  var eq = function (o) {
90
  return o.isNone();
91
  };
92
+ var call$$1 = function (thunk) {
93
  return thunk();
94
  };
95
  var id = function (n) {
96
  return n;
97
  };
98
+ var noop$$1 = function () {
99
+ };
100
+ var nul = function () {
101
+ return null;
102
+ };
103
+ var undef = function () {
104
+ return undefined;
105
  };
106
  var me = {
107
  fold: function (n, s) {
111
  isSome: never$1,
112
  isNone: always$1,
113
  getOr: id,
114
+ getOrThunk: call$$1,
115
  getOrDie: function (msg) {
116
  throw new Error(msg || 'error: getOrDie called on none.');
117
  },
118
+ getOrNull: nul,
119
+ getOrUndefined: undef,
120
  or: id,
121
+ orThunk: call$$1,
122
  map: none,
123
  ap: none,
124
+ each: noop$$1,
125
  bind: none,
126
  flatten: none,
127
  exists: never$1,
132
  toArray: function () {
133
  return [];
134
  },
135
+ toString: constant('none()')
136
  };
137
  if (Object.freeze)
138
  Object.freeze(me);
163
  getOr: constant_a,
164
  getOrThunk: constant_a,
165
  getOrDie: constant_a,
166
+ getOrNull: constant_a,
167
+ getOrUndefined: constant_a,
168
  or: self,
169
  orThunk: self,
170
  map: map,
224
  return typeOf(value) === type;
225
  };
226
  };
227
+
228
+
229
+
230
+
231
+
232
+
233
+ var isFunction = isType('function');
234
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  var map = function (xs, f) {
236
  var len = xs.length;
237
  var r = new Array(len);
247
  f(x, i, xs);
248
  }
249
  };
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
  var slice = Array.prototype.slice;
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+ var from$1 = isFunction(Array.from) ? Array.from : function (x) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  return slice.call(x);
272
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
273
 
274
  var fromHtml = function (html, scope) {
275
  var doc = scope || document;
294
  var fromDom = function (node) {
295
  if (node === null || node === undefined)
296
  throw new Error('Node cannot be null or undefined');
297
+ return { dom: constant(node) };
298
  };
299
+ var fromPoint = function (docElm, x, y) {
300
+ var doc = docElm.dom();
301
+ return Option.from(doc.elementFromPoint(x, y)).map(fromDom);
302
  };
303
+ var Element$$1 = {
304
  fromHtml: fromHtml,
305
  fromTag: fromTag,
306
  fromText: fromText,
308
  fromPoint: fromPoint
309
  };
310
 
311
+ var $_galabmt7jjgwefjh = {
312
+ ATTRIBUTE: Node.ATTRIBUTE_NODE,
313
+ CDATA_SECTION: Node.CDATA_SECTION_NODE,
314
+ COMMENT: Node.COMMENT_NODE,
315
+ DOCUMENT: Node.DOCUMENT_NODE,
316
+ DOCUMENT_TYPE: Node.DOCUMENT_TYPE_NODE,
317
+ DOCUMENT_FRAGMENT: Node.DOCUMENT_FRAGMENT_NODE,
318
+ ELEMENT: Node.ELEMENT_NODE,
319
+ TEXT: Node.TEXT_NODE,
320
+ PROCESSING_INSTRUCTION: Node.PROCESSING_INSTRUCTION_NODE,
321
+ ENTITY_REFERENCE: Node.ENTITY_REFERENCE_NODE,
322
+ ENTITY: Node.ENTITY_NODE,
323
+ NOTATION: Node.NOTATION_NODE
324
  };
325
 
326
  var name = function (element) {
339
  };
340
  };
341
  var isComment = function (element) {
342
+ return type(element) === $_galabmt7jjgwefjh.COMMENT || name(element) === '#comment';
343
  };
344
+ var isElement = isType$1($_galabmt7jjgwefjh.ELEMENT);
345
+ var isText = isType$1($_galabmt7jjgwefjh.TEXT);
346
+ var isDocument = isType$1($_galabmt7jjgwefjh.DOCUMENT);
347
+ var $_139fcwt6jjgwefjf = {
348
  name: name,
349
  type: type,
350
  value: value,
355
  };
356
 
357
  var wrapCharWithSpan = function (value) {
358
+ return '<span data-mce-bogus="1" class="mce-' + $_9y0plgsyjjgwefib.charMap[value] + '">' + value + '</span>';
359
  };
360
+ var $_cymkmit8jjgwefji = { wrapCharWithSpan: wrapCharWithSpan };
361
 
362
  var isMatch = function (n) {
363
+ return $_139fcwt6jjgwefjf.isText(n) && $_139fcwt6jjgwefjf.value(n) !== undefined && $_9y0plgsyjjgwefib.regExp.test($_139fcwt6jjgwefjf.value(n));
364
  };
365
  var filterDescendants = function (scope, predicate) {
366
  var result = [];
367
  var dom = scope.dom();
368
+ var children = map(dom.childNodes, Element$$1.fromDom);
369
+ each(children, function (x) {
370
  if (predicate(x)) {
371
  result = result.concat([x]);
372
  }
383
  }
384
  };
385
  var replaceWithSpans = function (html) {
386
+ return html.replace($_9y0plgsyjjgwefib.regExpGlobal, $_cymkmit8jjgwefji.wrapCharWithSpan);
387
  };
388
+ var $_focch4szjjgwefic = {
389
  isMatch: isMatch,
390
  filterDescendants: filterDescendants,
391
  findParentElm: findParentElm,
394
 
395
  var show = function (editor, rootElm) {
396
  var node, div;
397
+ var nodeList = $_focch4szjjgwefic.filterDescendants(Element$$1.fromDom(rootElm), $_focch4szjjgwefic.isMatch);
398
+ each(nodeList, function (n) {
399
+ var withSpans = $_focch4szjjgwefic.replaceWithSpans($_139fcwt6jjgwefjf.value(n));
400
  div = editor.dom.create('div', null, withSpans);
401
  while (node = div.lastChild) {
402
  editor.dom.insertAfter(node, n.dom());
405
  });
406
  };
407
  var hide = function (editor, body) {
408
+ var nodeList = editor.dom.select($_9y0plgsyjjgwefib.selector, body);
409
+ each(nodeList, function (node) {
410
  editor.dom.remove(node, 1);
411
  });
412
  };
413
  var toggle = function (editor) {
414
  var body = editor.getBody();
415
  var bookmark = editor.selection.getBookmark();
416
+ var parentNode = $_focch4szjjgwefic.findParentElm(editor.selection.getNode(), body);
417
  parentNode = parentNode !== undefined ? parentNode : body;
418
  hide(editor, parentNode);
419
  show(editor, parentNode);
420
  editor.selection.moveToBookmark(bookmark);
421
  };
422
+ var $_wmo7hsxjjgwefi4 = {
423
  show: show,
424
  hide: hide,
425
  toggle: toggle
430
  var selection = editor.selection;
431
  var bookmark;
432
  toggleState.set(!toggleState.get());
433
+ $_esznvlswjjgwefi3.fireVisualChars(editor, toggleState.get());
434
  bookmark = selection.getBookmark();
435
  if (toggleState.get() === true) {
436
+ $_wmo7hsxjjgwefi4.show(editor, body);
437
  } else {
438
+ $_wmo7hsxjjgwefi4.hide(editor, body);
439
  }
440
  selection.moveToBookmark(bookmark);
441
  };
442
+ var $_f6l8oisvjjgwefi2 = { toggleVisualChars: toggleVisualChars };
443
 
444
  var register = function (editor, toggleState) {
445
  editor.addCommand('mceVisualChars', function () {
446
+ $_f6l8oisvjjgwefi2.toggleVisualChars(editor, toggleState);
447
  });
448
  };
449
+ var $_bc5gevsujjgwefi1 = { register: register };
450
 
451
  var global$1 = tinymce.util.Tools.resolve('tinymce.util.Delay');
452
 
453
  var setup = function (editor, toggleState) {
454
  var debouncedToggle = global$1.debounce(function () {
455
+ $_wmo7hsxjjgwefi4.toggle(editor);
456
  }, 300);
457
  if (editor.settings.forced_root_block !== false) {
458
  editor.on('keydown', function (e) {
459
  if (toggleState.get() === true) {
460
+ e.keyCode === 13 ? $_wmo7hsxjjgwefi4.toggle(editor) : debouncedToggle();
461
  }
462
  });
463
  }
464
  };
465
+ var $_cgjud5t9jjgwefjk = { setup: setup };
466
 
467
  var toggleActiveState = function (editor) {
468
  return function (e) {
491
 
492
  global.add('visualchars', function (editor) {
493
  var toggleState = Cell(false);
494
+ $_bc5gevsujjgwefi1.register(editor, toggleState);
495
  register$1(editor);
496
+ $_cgjud5t9jjgwefjk.setup(editor, toggleState);
497
+ return $_bzyi9mstjjgwefi0.get(toggleState);
498
  });
499
  function Plugin () {
500
  }
mce/visualchars/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){"use strict";var n,e,t,r,o=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return o(t())}}},u=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){return{isEnabled:function(){return n.get()}}},c=function(n,e){return n.fire("VisualChars",{state:e})},a={"\xa0":"nbsp","\xad":"shy"},f=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},l=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},s={charMap:a,regExp:f(a),regExpGlobal:f(a,!0),selector:l(a),charMapToRegExp:f,charMapToSelector:l},d=function(n){return function(){return n}},m={noop:function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e]},noarg:function(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return t()}},compose:function(t,r){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return t(r.apply(null,arguments))}},constant:d,identity:function(n){return n},tripleEquals:function(n,e){return n===e},curry:function(u){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];for(var i=new Array(arguments.length-1),t=1;t<arguments.length;t++)i[t-1]=arguments[t];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];for(var t=new Array(arguments.length),r=0;r<t.length;r++)t[r]=arguments[r];var o=i.concat(t);return u.apply(null,o)}},not:function(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(null,arguments)}},die:function(n){return function(){throw new Error(n)}},apply:function(n){return n()},call:function(n){n()},never:d(!1),always:d(!0)},p=m.never,v=m.always,h=function(){return g},g=(r={fold:function(n,e){return n()},is:p,isSome:p,isNone:v,getOr:t=function(n){return n},getOrThunk:e=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},or:t,orThunk:e,map:h,ap:h,each:function(){},bind:h,flatten:h,exists:p,forall:v,filter:h,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:m.constant("none()")},Object.freeze&&Object.freeze(r),r),y=function(t){var n=function(){return t},e=function(){return o},r=function(n){return n(t)},o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:v,isNone:p,getOr:n,getOrThunk:n,getOrDie:n,or:e,orThunk:e,map:function(n){return y(n(t))},ap:function(n){return n.fold(h,function(n){return y(n(t))})},each:function(n){n(t)},bind:r,flatten:n,exists:r,forall:r,filter:function(n){return n(t)?o:g},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(p,function(n){return e(t,n)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},b={some:y,none:h,from:function(n){return null===n||n===undefined?g:y(n)}},T=function(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"===e&&Array.prototype.isPrototypeOf(n)?"array":"object"===e&&String.prototype.isPrototypeOf(n)?"string":e}(n)===e}},w={isString:T("string"),isObject:T("object"),isArray:T("array"),isNull:T("null"),isBoolean:T("boolean"),isUndefined:T("undefined"),isFunction:T("function"),isNumber:T("number")},x=(Array.prototype.indexOf,undefined,function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o,n)}return r}),E=function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)},N=(Array.prototype.push,Array.prototype.slice,w.isFunction(Array.from)&&Array.from,x),k=E,A=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:m.constant(n)}},O={fromHtml:function(n,e){var t=(e||document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw console.error("HTML does not have a single root node",n),"HTML must have a single root node";return A(t.childNodes[0])},fromTag:function(n,e){var t=(e||document).createElement(n);return A(t)},fromText:function(n,e){var t=(e||document).createTextNode(n);return A(t)},fromDom:A,fromPoint:function(n,e,t){return b.from(n.dom().elementFromPoint(e,t)).map(A)}},C=8,M=9,S=3,D=function(n){return n.dom().nodeName.toLowerCase()},P=function(n){return n.dom().nodeType},B=function(e){return function(n){return P(n)===e}},j=B(1),V=B(S),q=B(M),H={name:D,type:P,value:function(n){return n.dom().nodeValue},isElement:j,isText:V,isDocument:q,isComment:function(n){return P(n)===C||"#comment"===D(n)}},L=function(n){return'<span data-mce-bogus="1" class="mce-'+s.charMap[n]+'">'+n+"</span>"},R=function(n,e){var t=[],r=n.dom(),o=N(r.childNodes,O.fromDom);return k(o,function(n){e(n)&&(t=t.concat([n])),t=t.concat(R(n,e))}),t},_={isMatch:function(n){return H.isText(n)&&H.value(n)!==undefined&&s.regExp.test(H.value(n))},filterDescendants:R,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(s.regExpGlobal,L)}},F=function(t,n){var r,o,e=_.filterDescendants(O.fromDom(n),_.isMatch);k(e,function(n){var e=_.replaceWithSpans(H.value(n));for(o=t.dom.create("div",null,e);r=o.lastChild;)t.dom.insertAfter(r,n.dom());t.dom.remove(n.dom())})},z=function(e,n){var t=e.dom.select(s.selector,n);k(t,function(n){e.dom.remove(n,1)})},G=F,W=z,I=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=_.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,z(n,r),F(n,r),n.selection.moveToBookmark(t)},U=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),c(n,e.get()),t=o.getBookmark(),!0===e.get()?G(n,r):W(n,r),o.moveToBookmark(t)},J=function(n,e){n.addCommand("mceVisualChars",function(){U(n,e)})},K=tinymce.util.Tools.resolve("tinymce.util.Delay"),Q=function(e,t){var r=K.debounce(function(){I(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?I(e):r())})},X=function(t){return function(n){var e=n.control;t.on("VisualChars",function(n){e.active(n.state)})}};u.add("visualchars",function(n){var e,t=o(!1);return J(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:X(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:X(e),selectable:!0,context:"view",prependToContext:!0}),Q(n,t),i(t)})}();
1
+ !function(){"use strict";var n,e,t,r,o,u=function(n){var e=n,t=function(){return e};return{get:t,set:function(n){e=n},clone:function(){return u(t())}}},i=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=function(n){return{isEnabled:function(){return n.get()}}},a=function(n,e){return n.fire("VisualChars",{state:e})},f={"\xa0":"nbsp","\xad":"shy"},l=function(n,e){var t,r="";for(t in n)r+=t;return new RegExp("["+r+"]",e?"g":"")},d=function(n){var e,t="";for(e in n)t&&(t+=","),t+="span.mce-"+n[e];return t},s={charMap:f,regExp:l(f),regExpGlobal:l(f,!0),selector:d(f),charMapToRegExp:l,charMapToSelector:d},m=function(n){return function(){return n}},N=m(!1),E=m(!0),T=N,O=E,v=function(){return g},g=(r={fold:function(n,e){return n()},is:T,isSome:T,isNone:O,getOr:t=function(n){return n},getOrThunk:e=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:t,orThunk:e,map:v,ap:v,each:function(){},bind:v,flatten:v,exists:T,forall:O,filter:v,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:m("none()")},Object.freeze&&Object.freeze(r),r),h=function(t){var n=function(){return t},e=function(){return o},r=function(n){return n(t)},o={fold:function(n,e){return e(t)},is:function(n){return t===n},isSome:O,isNone:T,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:e,orThunk:e,map:function(n){return h(n(t))},ap:function(n){return n.fold(v,function(n){return h(n(t))})},each:function(n){n(t)},bind:r,flatten:n,exists:r,forall:r,filter:function(n){return n(t)?o:g},equals:function(n){return n.is(t)},equals_:function(n,e){return n.fold(T,function(n){return e(t,n)})},toArray:function(){return[t]},toString:function(){return"some("+t+")"}};return o},p=function(n){return null===n||n===undefined?g:h(n)},C=(o="function",function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"===e&&Array.prototype.isPrototypeOf(n)?"array":"object"===e&&String.prototype.isPrototypeOf(n)?"string":e}(n)===o}),D=function(n,e){for(var t=0,r=n.length;t<r;t++)e(n[t],t,n)},M=(Array.prototype.slice,C(Array.from)&&Array.from,function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:m(n)}}),y={fromHtml:function(n,e){var t=(e||document).createElement("div");if(t.innerHTML=n,!t.hasChildNodes()||1<t.childNodes.length)throw console.error("HTML does not have a single root node",n),"HTML must have a single root node";return M(t.childNodes[0])},fromTag:function(n,e){var t=(e||document).createElement(n);return M(t)},fromText:function(n,e){var t=(e||document).createTextNode(n);return M(t)},fromDom:M,fromPoint:function(n,e,t){var r=n.dom();return p(r.elementFromPoint(e,t)).map(M)}},_={ATTRIBUTE:Node.ATTRIBUTE_NODE,CDATA_SECTION:Node.CDATA_SECTION_NODE,COMMENT:Node.COMMENT_NODE,DOCUMENT:Node.DOCUMENT_NODE,DOCUMENT_TYPE:Node.DOCUMENT_TYPE_NODE,DOCUMENT_FRAGMENT:Node.DOCUMENT_FRAGMENT_NODE,ELEMENT:Node.ELEMENT_NODE,TEXT:Node.TEXT_NODE,PROCESSING_INSTRUCTION:Node.PROCESSING_INSTRUCTION_NODE,ENTITY_REFERENCE:Node.ENTITY_REFERENCE_NODE,ENTITY:Node.ENTITY_NODE,NOTATION:Node.NOTATION_NODE},A=function(n){return n.dom().nodeName.toLowerCase()},S=function(n){return n.dom().nodeType},b=function(e){return function(n){return S(n)===e}},I=b(_.ELEMENT),R=b(_.TEXT),k=b(_.DOCUMENT),x={name:A,type:S,value:function(n){return n.dom().nodeValue},isElement:I,isText:R,isDocument:k,isComment:function(n){return S(n)===_.COMMENT||"#comment"===A(n)}},P=function(n){return'<span data-mce-bogus="1" class="mce-'+s.charMap[n]+'">'+n+"</span>"},U=function(n,e){var t=[],r=function(n,e){for(var t=n.length,r=new Array(t),o=0;o<t;o++){var u=n[o];r[o]=e(u,o,n)}return r}(n.dom().childNodes,y.fromDom);return D(r,function(n){e(n)&&(t=t.concat([n])),t=t.concat(U(n,e))}),t},w={isMatch:function(n){return x.isText(n)&&x.value(n)!==undefined&&s.regExp.test(x.value(n))},filterDescendants:U,findParentElm:function(n,e){for(;n.parentNode;){if(n.parentNode===e)return n;n=n.parentNode}},replaceWithSpans:function(n){return n.replace(s.regExpGlobal,P)}},B=function(t,n){var r,o,e=w.filterDescendants(y.fromDom(n),w.isMatch);D(e,function(n){var e=w.replaceWithSpans(x.value(n));for(o=t.dom.create("div",null,e);r=o.lastChild;)t.dom.insertAfter(r,n.dom());t.dom.remove(n.dom())})},L=function(e,n){var t=e.dom.select(s.selector,n);D(t,function(n){e.dom.remove(n,1)})},G=B,V=L,Y=function(n){var e=n.getBody(),t=n.selection.getBookmark(),r=w.findParentElm(n.selection.getNode(),e);r=r!==undefined?r:e,L(n,r),B(n,r),n.selection.moveToBookmark(t)},F=function(n,e){var t,r=n.getBody(),o=n.selection;e.set(!e.get()),a(n,e.get()),t=o.getBookmark(),!0===e.get()?G(n,r):V(n,r),o.moveToBookmark(t)},j=function(n,e){n.addCommand("mceVisualChars",function(){F(n,e)})},q=tinymce.util.Tools.resolve("tinymce.util.Delay"),H=function(e,t){var r=q.debounce(function(){Y(e)},300);!1!==e.settings.forced_root_block&&e.on("keydown",function(n){!0===t.get()&&(13===n.keyCode?Y(e):r())})},X=function(t){return function(n){var e=n.control;t.on("VisualChars",function(n){e.active(n.state)})}};i.add("visualchars",function(n){var e,t=u(!1);return j(n,t),(e=n).addButton("visualchars",{active:!1,title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:X(e)}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:X(e),selectable:!0,context:"view",prependToContext:!0}),H(n,t),c(t)})}();
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
- Requires at least: 4.9.6
5
  Tested up to: 4.9
6
- Stable tag: 4.7.11
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -37,6 +37,12 @@ Best is to install directly from WordPress. If manual installation is required,
37
 
38
  == Changelog ==
39
 
 
 
 
 
 
 
40
  = 4.7.11 =
41
  * Updated for WordPress 4.9.6 and TinyMCE 4.7.11.
42
 
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
+ Requires at least: 4.9.8
5
  Tested up to: 4.9
6
+ Stable tag: 4.8.0
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
37
 
38
  == Changelog ==
39
 
40
+ = 4.8.0 =
41
+ * Updated for WordPress 4.9.8 and TinyMCE 4.8.0.
42
+
43
+ = 4.7.13 =
44
+ * Updated the table and anchor plugins to 4.7.13 (2018-05-16). Fixes a bug in the table plugin in Edge.
45
+
46
  = 4.7.11 =
47
  * Updated for WordPress 4.9.6 and TinyMCE 4.7.11.
48
 
tadv_admin.php CHANGED
@@ -17,6 +17,7 @@ if ( ! current_user_can( 'manage_options' ) ) {
17
 
18
  $message = '';
19
 
 
20
  $imgpath = TADV_URL . 'images/';
21
  $tadv_options_updated = false;
22
  $settings = $admin_settings = array();
17
 
18
  $message = '';
19
 
20
+ $this->set_paths();
21
  $imgpath = TADV_URL . 'images/';
22
  $tadv_options_updated = false;
23
  $settings = $admin_settings = array();
tinymce-advanced.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
- Version: 4.7.11
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
@@ -32,7 +32,7 @@ if ( ! class_exists('Tinymce_Advanced') ) :
32
  class Tinymce_Advanced {
33
 
34
  private $required_version = '4.9.6';
35
- private $plugin_version = '4.7.11';
36
 
37
  private $user_settings;
38
  private $admin_settings;
@@ -207,11 +207,13 @@ class Tinymce_Advanced {
207
 
208
  // When using a plugin that changes the paths dinamically, set these earlier than 'plugins_loaded' 50.
209
  public function set_paths() {
210
- if ( ! defined( 'TADV_URL' ) )
211
  define( 'TADV_URL', plugin_dir_url( __FILE__ ) );
 
212
 
213
- if ( ! defined( 'TADV_PATH' ) )
214
  define( 'TADV_PATH', plugin_dir_path( __FILE__ ) );
 
215
  }
216
 
217
  public function load_textdomain() {
@@ -220,6 +222,7 @@ class Tinymce_Advanced {
220
 
221
  public function enqueue_scripts( $page ) {
222
  if ( 'settings_page_tinymce-advanced' == $page ) {
 
223
  wp_enqueue_script( 'tadv-js', TADV_URL . 'js/tadv.js', array( 'jquery-ui-sortable' ), '4.0', true );
224
  wp_enqueue_style( 'tadv-mce-skin', includes_url( 'js/tinymce/skins/lightgray/skin.min.css' ), array(), '4.0' );
225
  wp_enqueue_style( 'tadv-css', TADV_URL . 'css/tadv-styles.css', array( 'editor-buttons' ), '4.0' );
@@ -657,6 +660,7 @@ class Tinymce_Advanced {
657
 
658
  $this->plugins = array_intersect( $this->plugins, $this->get_all_plugins() );
659
 
 
660
  $plugpath = TADV_URL . 'mce/';
661
  $mce_plugins = (array) $mce_plugins;
662
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
@@ -852,6 +856,7 @@ class Tinymce_Advanced {
852
  define( 'TADV_ADMIN_PAGE', true );
853
  }
854
 
 
855
  include_once( TADV_PATH . 'tadv_admin.php' );
856
  }
857
 
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
+ Version: 4.8.0
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
32
  class Tinymce_Advanced {
33
 
34
  private $required_version = '4.9.6';
35
+ private $plugin_version = '4.7.13';
36
 
37
  private $user_settings;
38
  private $admin_settings;
207
 
208
  // When using a plugin that changes the paths dinamically, set these earlier than 'plugins_loaded' 50.
209
  public function set_paths() {
210
+ if ( ! defined( 'TADV_URL' ) ) {
211
  define( 'TADV_URL', plugin_dir_url( __FILE__ ) );
212
+ }
213
 
214
+ if ( ! defined( 'TADV_PATH' ) ) {
215
  define( 'TADV_PATH', plugin_dir_path( __FILE__ ) );
216
+ }
217
  }
218
 
219
  public function load_textdomain() {
222
 
223
  public function enqueue_scripts( $page ) {
224
  if ( 'settings_page_tinymce-advanced' == $page ) {
225
+ $this->set_paths();
226
  wp_enqueue_script( 'tadv-js', TADV_URL . 'js/tadv.js', array( 'jquery-ui-sortable' ), '4.0', true );
227
  wp_enqueue_style( 'tadv-mce-skin', includes_url( 'js/tinymce/skins/lightgray/skin.min.css' ), array(), '4.0' );
228
  wp_enqueue_style( 'tadv-css', TADV_URL . 'css/tadv-styles.css', array( 'editor-buttons' ), '4.0' );
660
 
661
  $this->plugins = array_intersect( $this->plugins, $this->get_all_plugins() );
662
 
663
+ $this->set_paths();
664
  $plugpath = TADV_URL . 'mce/';
665
  $mce_plugins = (array) $mce_plugins;
666
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
856
  define( 'TADV_ADMIN_PAGE', true );
857
  }
858
 
859
+ $this->set_paths();
860
  include_once( TADV_PATH . 'tadv_admin.php' );
861
  }
862