opentiny 6.9.22 → 6.9.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugins/table/plugin.js +163 -42
- package/plugins/table/plugin.min.js +1 -1
package/package.json
CHANGED
package/plugins/table/plugin.js
CHANGED
|
@@ -948,9 +948,9 @@
|
|
|
948
948
|
var global$1 = tinymce.util.Tools.resolve('tinymce.Env');
|
|
949
949
|
|
|
950
950
|
const defaultTableToolbar = 'tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol';
|
|
951
|
-
const defaultTableCellInputs = 'width celltype scope halign valign class';
|
|
952
|
-
const defaultTableRowInputs = 'type align
|
|
953
|
-
const defaultTableInputs = 'width height cellspacing cellpadding border caption align class';
|
|
951
|
+
const defaultTableCellInputs = 'width height celltype scope halign valign backgroundcolor class';
|
|
952
|
+
const defaultTableRowInputs = 'type align backgroundcolor class';
|
|
953
|
+
const defaultTableInputs = 'width height cellspacing cellpadding border backgroundcolor caption align class';
|
|
954
954
|
const defaultCellBorderWidths = range(5, i => {
|
|
955
955
|
const size = `${ i + 1 }px`;
|
|
956
956
|
return {
|
|
@@ -1067,6 +1067,26 @@
|
|
|
1067
1067
|
processor: 'string',
|
|
1068
1068
|
default: defaultTableToolbar
|
|
1069
1069
|
});
|
|
1070
|
+
registerOption('table_contextmenu', {
|
|
1071
|
+
processor: 'string[]',
|
|
1072
|
+
default: []
|
|
1073
|
+
});
|
|
1074
|
+
registerOption('table_contextmenu_flatten', {
|
|
1075
|
+
processor: 'boolean',
|
|
1076
|
+
default: false
|
|
1077
|
+
});
|
|
1078
|
+
registerOption('table_row_contextmenu', {
|
|
1079
|
+
processor: 'string[]',
|
|
1080
|
+
default: []
|
|
1081
|
+
});
|
|
1082
|
+
registerOption('table_column_contextmenu', {
|
|
1083
|
+
processor: 'string[]',
|
|
1084
|
+
default: []
|
|
1085
|
+
});
|
|
1086
|
+
registerOption('table_cell_contextmenu', {
|
|
1087
|
+
processor: 'string[]',
|
|
1088
|
+
default: []
|
|
1089
|
+
});
|
|
1070
1090
|
registerOption('table_background_color_map', {
|
|
1071
1091
|
processor: 'object[]',
|
|
1072
1092
|
default: []
|
|
@@ -1091,6 +1111,11 @@
|
|
|
1091
1111
|
const getRowClassList = option('table_row_class_list');
|
|
1092
1112
|
const getTableClassList = option('table_class_list');
|
|
1093
1113
|
const getToolbar = option('table_toolbar');
|
|
1114
|
+
const getTableContextMenu = option('table_contextmenu');
|
|
1115
|
+
const getTableContextMenuFlatten = option('table_contextmenu_flatten');
|
|
1116
|
+
const getTableRowContextMenu = option('table_row_contextmenu');
|
|
1117
|
+
const getTableColumnContextMenu = option('table_column_contextmenu');
|
|
1118
|
+
const getTableCellContextMenu = option('table_cell_contextmenu');
|
|
1094
1119
|
const getTableBackgroundColorMap = option('table_background_color_map');
|
|
1095
1120
|
const getTableBorderColorMap = option('table_border_color_map');
|
|
1096
1121
|
const isPixelsForced = editor => getTableSizingMode(editor) === 'fixed';
|
|
@@ -1105,6 +1130,11 @@
|
|
|
1105
1130
|
const defaultAttributes = options.get('table_default_attributes');
|
|
1106
1131
|
return options.isSet('table_default_attributes') ? defaultAttributes : determineDefaultAttributes(editor, defaultAttributes);
|
|
1107
1132
|
};
|
|
1133
|
+
const isTableContextMenuSet = editor => editor.options.isSet('table_contextmenu');
|
|
1134
|
+
const isTableContextMenuFlatten = editor => getTableContextMenuFlatten(editor);
|
|
1135
|
+
const isTableRowContextMenuSet = editor => editor.options.isSet('table_row_contextmenu');
|
|
1136
|
+
const isTableColumnContextMenuSet = editor => editor.options.isSet('table_column_contextmenu');
|
|
1137
|
+
const isTableCellContextMenuSet = editor => editor.options.isSet('table_cell_contextmenu');
|
|
1108
1138
|
|
|
1109
1139
|
const isWithin = (bounds, detail) => {
|
|
1110
1140
|
return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow;
|
|
@@ -1676,6 +1706,48 @@
|
|
|
1676
1706
|
return isNotEmpty(item.value) ? [item] : [];
|
|
1677
1707
|
}
|
|
1678
1708
|
});
|
|
1709
|
+
const filterContextMenu = (menu, allowed) => {
|
|
1710
|
+
if (allowed.length === 0) {
|
|
1711
|
+
return '';
|
|
1712
|
+
}
|
|
1713
|
+
const allowedSet = new Set(allowed);
|
|
1714
|
+
const filteredGroups = menu.split('|').map(group => group.trim()).map(group => group.length === 0 ? [] : group.split(/\s+/).filter(item => allowedSet.has(item))).filter(items => items.length > 0).map(items => items.join(' '));
|
|
1715
|
+
return filteredGroups.join(' | ');
|
|
1716
|
+
};
|
|
1717
|
+
const flattenContextMenu = (menu, replacements) => {
|
|
1718
|
+
const groups = menu.split('|').map(group => group.trim()).filter(group => group.length > 0);
|
|
1719
|
+
const flattened = [];
|
|
1720
|
+
const addGroup = items => {
|
|
1721
|
+
if (items.length > 0) {
|
|
1722
|
+
flattened.push(items.join(' '));
|
|
1723
|
+
}
|
|
1724
|
+
};
|
|
1725
|
+
each(groups, group => {
|
|
1726
|
+
const tokens = group.split(/\s+/).filter(token => token.length > 0);
|
|
1727
|
+
let current = [];
|
|
1728
|
+
each(tokens, token => {
|
|
1729
|
+
const replacement = replacements[token];
|
|
1730
|
+
if (replacement === undefined) {
|
|
1731
|
+
current.push(token);
|
|
1732
|
+
} else if (replacement.length === 0) {
|
|
1733
|
+
return;
|
|
1734
|
+
} else {
|
|
1735
|
+
const replacementGroups = replacement.split('|').map(repGroup => repGroup.trim()).filter(repGroup => repGroup.length > 0);
|
|
1736
|
+
if (replacementGroups.length === 1) {
|
|
1737
|
+
current = current.concat(replacementGroups[0].split(/\s+/).filter(item => item.length > 0));
|
|
1738
|
+
} else {
|
|
1739
|
+
addGroup(current);
|
|
1740
|
+
current = [];
|
|
1741
|
+
each(replacementGroups, repGroup => {
|
|
1742
|
+
addGroup(repGroup.split(/\s+/).filter(item => item.length > 0));
|
|
1743
|
+
});
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
});
|
|
1747
|
+
addGroup(current);
|
|
1748
|
+
});
|
|
1749
|
+
return flattened.join(' | ');
|
|
1750
|
+
};
|
|
1679
1751
|
const generateMenuItemsCallback = (editor, items, format, onAction) => callback => callback(buildMenuItems(editor, items, format, onAction));
|
|
1680
1752
|
const buildColorMenu = (editor, colorList, style) => {
|
|
1681
1753
|
const colorMap = map(colorList, entry => ({
|
|
@@ -1720,6 +1792,18 @@
|
|
|
1720
1792
|
label: 'Width',
|
|
1721
1793
|
tooltip: 'Cell width in pixels or percentage (e.g., 50px or 10%).'
|
|
1722
1794
|
},
|
|
1795
|
+
{
|
|
1796
|
+
name: 'height',
|
|
1797
|
+
type: 'input',
|
|
1798
|
+
label: 'Height',
|
|
1799
|
+
tooltip: 'Row height in pixels (e.g., 20px). If the height change does not apply to the row, remove the table height in Table Properties and try again.'
|
|
1800
|
+
},
|
|
1801
|
+
{
|
|
1802
|
+
name: 'backgroundcolor',
|
|
1803
|
+
type: 'colorinput',
|
|
1804
|
+
label: 'Background color',
|
|
1805
|
+
tooltip: 'Background color of the cell.'
|
|
1806
|
+
},
|
|
1723
1807
|
{
|
|
1724
1808
|
name: 'celltype',
|
|
1725
1809
|
type: 'listbox',
|
|
@@ -1817,16 +1901,6 @@
|
|
|
1817
1901
|
return `Color of the outer border of the ${ dialogName }.`;
|
|
1818
1902
|
}
|
|
1819
1903
|
};
|
|
1820
|
-
const getBackgroundColourTooltip = dialogName => {
|
|
1821
|
-
switch (dialogName) {
|
|
1822
|
-
case 'table':
|
|
1823
|
-
return 'Changes the background color of all cells in the table, except for those set individually through Cell Properties or Row Properties.';
|
|
1824
|
-
case 'row':
|
|
1825
|
-
return 'Changes the background color of all cells in the row, except for those set individually through Cell Properties.';
|
|
1826
|
-
case 'cell':
|
|
1827
|
-
return `Background color of the cell.`;
|
|
1828
|
-
}
|
|
1829
|
-
};
|
|
1830
1904
|
const getBorderWidthTooltip = dialogName => {
|
|
1831
1905
|
switch (dialogName) {
|
|
1832
1906
|
case 'table':
|
|
@@ -1856,12 +1930,6 @@
|
|
|
1856
1930
|
type: 'colorinput',
|
|
1857
1931
|
label: 'Border color',
|
|
1858
1932
|
tooltip: getBorderColorTooltip(dialogName)
|
|
1859
|
-
},
|
|
1860
|
-
{
|
|
1861
|
-
name: 'backgroundcolor',
|
|
1862
|
-
type: 'colorinput',
|
|
1863
|
-
label: 'Background color',
|
|
1864
|
-
tooltip: getBackgroundColourTooltip(dialogName)
|
|
1865
1933
|
}
|
|
1866
1934
|
];
|
|
1867
1935
|
const borderWidth = {
|
|
@@ -1872,7 +1940,7 @@
|
|
|
1872
1940
|
};
|
|
1873
1941
|
const items = dialogName === 'cell' ? [borderWidth].concat(advTabItems) : advTabItems;
|
|
1874
1942
|
return {
|
|
1875
|
-
title: '
|
|
1943
|
+
title: 'Border',
|
|
1876
1944
|
name: 'advanced',
|
|
1877
1945
|
items
|
|
1878
1946
|
};
|
|
@@ -2199,7 +2267,6 @@
|
|
|
2199
2267
|
const extractDataFromRowElement = (editor, elm, hasAdvancedRowTab) => {
|
|
2200
2268
|
const dom = editor.dom;
|
|
2201
2269
|
return {
|
|
2202
|
-
height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),
|
|
2203
2270
|
class: dom.getAttrib(elm, 'class', ''),
|
|
2204
2271
|
type: getRowType(elm),
|
|
2205
2272
|
align: getHAlignment(editor, elm),
|
|
@@ -2209,9 +2276,11 @@
|
|
|
2209
2276
|
const extractDataFromCellElement = (editor, cell, hasAdvancedCellTab, column) => {
|
|
2210
2277
|
const dom = editor.dom;
|
|
2211
2278
|
const colElm = column.getOr(cell);
|
|
2279
|
+
const rowElm = cell.parentElement;
|
|
2212
2280
|
const getStyle = (element, style) => dom.getStyle(element, style) || dom.getAttrib(element, style);
|
|
2213
2281
|
return {
|
|
2214
2282
|
width: getStyle(colElm, 'width'),
|
|
2283
|
+
height: rowElm ? dom.getStyle(rowElm, 'height') || dom.getAttrib(rowElm, 'height') : '',
|
|
2215
2284
|
scope: dom.getAttrib(cell, 'scope'),
|
|
2216
2285
|
celltype: getNodeName(cell),
|
|
2217
2286
|
class: dom.getAttrib(cell, 'class', ''),
|
|
@@ -2265,6 +2334,7 @@
|
|
|
2265
2334
|
};
|
|
2266
2335
|
const applyStyleData$1 = (editor, cells, data, wasChanged) => {
|
|
2267
2336
|
const isSingleCell = cells.length === 1;
|
|
2337
|
+
const rowsSeen = new Set();
|
|
2268
2338
|
each(cells, item => {
|
|
2269
2339
|
const cellElm = item.element;
|
|
2270
2340
|
const shouldOverrideCurrentValue = isSingleCell ? always : wasChanged;
|
|
@@ -2274,6 +2344,16 @@
|
|
|
2274
2344
|
if (hasAdvancedCellTab(editor)) {
|
|
2275
2345
|
updateAdvancedProps$1(modifier, data, shouldOverrideCurrentValue);
|
|
2276
2346
|
}
|
|
2347
|
+
if (shouldOverrideCurrentValue('height')) {
|
|
2348
|
+
const rowElm = cellElm.parentElement;
|
|
2349
|
+
if (rowElm !== null && !rowsSeen.has(rowElm)) {
|
|
2350
|
+
rowsSeen.add(rowElm);
|
|
2351
|
+
editor.dom.setStyle(rowElm, 'height', addPxSuffix(data.height));
|
|
2352
|
+
if (wasChanged('height')) {
|
|
2353
|
+
Array.from(rowElm.cells).forEach(cell => editor.dom.setStyle(cell, 'height', null));
|
|
2354
|
+
}
|
|
2355
|
+
}
|
|
2356
|
+
}
|
|
2277
2357
|
if (wasChanged('halign')) {
|
|
2278
2358
|
setAlign(editor, cellElm, data.halign);
|
|
2279
2359
|
}
|
|
@@ -2419,10 +2499,10 @@
|
|
|
2419
2499
|
]
|
|
2420
2500
|
},
|
|
2421
2501
|
{
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
tooltip: '
|
|
2502
|
+
name: 'backgroundcolor',
|
|
2503
|
+
type: 'colorinput',
|
|
2504
|
+
label: 'Background color',
|
|
2505
|
+
tooltip: 'Changes the background color of all cells in the row, except for those set individually through Cell Properties.'
|
|
2426
2506
|
}
|
|
2427
2507
|
];
|
|
2428
2508
|
const getItems$1 = editor => {
|
|
@@ -2440,9 +2520,6 @@
|
|
|
2440
2520
|
if (shouldUpdate('class') && data.class !== 'mce-no-match') {
|
|
2441
2521
|
modifier.setAttrib('class', data.class);
|
|
2442
2522
|
}
|
|
2443
|
-
if (shouldUpdate('height')) {
|
|
2444
|
-
modifier.setStyle('height', addPxSuffix(data.height));
|
|
2445
|
-
}
|
|
2446
2523
|
};
|
|
2447
2524
|
const updateAdvancedProps = (modifier, data, shouldUpdate) => {
|
|
2448
2525
|
if (shouldUpdate('backgroundcolor')) {
|
|
@@ -2459,17 +2536,11 @@
|
|
|
2459
2536
|
const isSingleRow = rows.length === 1;
|
|
2460
2537
|
const shouldOverrideCurrentValue = isSingleRow ? always : wasChanged;
|
|
2461
2538
|
each(rows, rowElm => {
|
|
2462
|
-
const rowCells = children$1(SugarElement.fromDom(rowElm), 'td,th');
|
|
2463
2539
|
const modifier = DomModifier.normal(editor, rowElm);
|
|
2464
2540
|
updateSimpleProps(modifier, data, shouldOverrideCurrentValue);
|
|
2465
2541
|
if (hasAdvancedRowTab(editor)) {
|
|
2466
2542
|
updateAdvancedProps(modifier, data, shouldOverrideCurrentValue);
|
|
2467
2543
|
}
|
|
2468
|
-
if (wasChanged('height')) {
|
|
2469
|
-
each(rowCells, cell => {
|
|
2470
|
-
editor.dom.setStyle(cell.dom, 'height', null);
|
|
2471
|
-
});
|
|
2472
|
-
}
|
|
2473
2544
|
if (wasChanged('align')) {
|
|
2474
2545
|
setAlign(editor, rowElm, data.align);
|
|
2475
2546
|
}
|
|
@@ -2602,6 +2673,12 @@
|
|
|
2602
2673
|
label: 'Border width',
|
|
2603
2674
|
tooltip: 'Width of the border for the entire table and individual cells.'
|
|
2604
2675
|
},
|
|
2676
|
+
{
|
|
2677
|
+
name: 'backgroundcolor',
|
|
2678
|
+
type: 'colorinput',
|
|
2679
|
+
label: 'Background color',
|
|
2680
|
+
tooltip: 'Changes the background color of all cells in the table, except for those set individually through Cell Properties or Row Properties.'
|
|
2681
|
+
},
|
|
2605
2682
|
{
|
|
2606
2683
|
type: 'label',
|
|
2607
2684
|
label: 'Caption',
|
|
@@ -3023,12 +3100,40 @@
|
|
|
3023
3100
|
editor.off('NodeChange', nodeChanged);
|
|
3024
3101
|
};
|
|
3025
3102
|
};
|
|
3103
|
+
const getFilteredRowMenuItems = editor => {
|
|
3104
|
+
const rowMenuItems = 'tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter';
|
|
3105
|
+
return isTableRowContextMenuSet(editor) ? filterContextMenu(rowMenuItems, getTableRowContextMenu(editor)) : rowMenuItems;
|
|
3106
|
+
};
|
|
3107
|
+
const getFilteredColumnMenuItems = editor => {
|
|
3108
|
+
const columnMenuItems = 'tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter';
|
|
3109
|
+
return isTableColumnContextMenuSet(editor) ? filterContextMenu(columnMenuItems, getTableColumnContextMenu(editor)) : columnMenuItems;
|
|
3110
|
+
};
|
|
3111
|
+
const getFilteredCellMenuItems = editor => {
|
|
3112
|
+
const cellMenuItems = 'tablecellprops tablemergecells tablesplitcells';
|
|
3113
|
+
return isTableCellContextMenuSet(editor) ? filterContextMenu(cellMenuItems, getTableCellContextMenu(editor)) : cellMenuItems;
|
|
3114
|
+
};
|
|
3115
|
+
const getTableMenuItems = editor => {
|
|
3116
|
+
const menu = 'inserttable | cell row column | advtablesort | tableprops deletetable';
|
|
3117
|
+
const filteredMenu = isTableContextMenuSet(editor) ? filterContextMenu(menu, [
|
|
3118
|
+
'inserttable',
|
|
3119
|
+
...getTableContextMenu(editor)
|
|
3120
|
+
]) : menu;
|
|
3121
|
+
if (isTableContextMenuFlatten(editor) && filteredMenu.length > 0) {
|
|
3122
|
+
return flattenContextMenu(filteredMenu, {
|
|
3123
|
+
cell: getFilteredCellMenuItems(editor),
|
|
3124
|
+
row: getFilteredRowMenuItems(editor),
|
|
3125
|
+
column: getFilteredColumnMenuItems(editor)
|
|
3126
|
+
});
|
|
3127
|
+
} else {
|
|
3128
|
+
return filteredMenu;
|
|
3129
|
+
}
|
|
3130
|
+
};
|
|
3026
3131
|
const addButtons = (editor, selectionTargets) => {
|
|
3027
3132
|
editor.ui.registry.addMenuButton('table', {
|
|
3028
3133
|
tooltip: 'Table',
|
|
3029
3134
|
icon: 'table',
|
|
3030
3135
|
onSetup: onSetupEditable$1(editor),
|
|
3031
|
-
fetch: callback => callback(
|
|
3136
|
+
fetch: callback => callback(getTableMenuItems(editor))
|
|
3032
3137
|
});
|
|
3033
3138
|
const cmd = command => () => editor.execCommand(command);
|
|
3034
3139
|
const addButtonIfRegistered = (name, spec) => {
|
|
@@ -3444,37 +3549,53 @@
|
|
|
3444
3549
|
onSetup: selectionTargets.onSetupTable,
|
|
3445
3550
|
command: 'mceTableDelete'
|
|
3446
3551
|
});
|
|
3447
|
-
|
|
3552
|
+
const rowMenuItems = 'tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter';
|
|
3553
|
+
const filteredRowMenuItems = isTableRowContextMenuSet(editor) ? filterContextMenu(rowMenuItems, getTableRowContextMenu(editor)) : rowMenuItems;
|
|
3554
|
+
if (contains(hasRowMenuItems, true) && filteredRowMenuItems.length > 0) {
|
|
3448
3555
|
editor.ui.registry.addNestedMenuItem('row', {
|
|
3449
3556
|
type: 'nestedmenuitem',
|
|
3450
3557
|
text: 'Row',
|
|
3451
|
-
getSubmenuItems: constant(
|
|
3558
|
+
getSubmenuItems: constant(filteredRowMenuItems)
|
|
3452
3559
|
});
|
|
3453
3560
|
}
|
|
3454
|
-
|
|
3561
|
+
const columnMenuItems = 'tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter';
|
|
3562
|
+
const filteredColumnMenuItems = isTableColumnContextMenuSet(editor) ? filterContextMenu(columnMenuItems, getTableColumnContextMenu(editor)) : columnMenuItems;
|
|
3563
|
+
if (contains(hasColumnMenuItems, true) && filteredColumnMenuItems.length > 0) {
|
|
3455
3564
|
editor.ui.registry.addNestedMenuItem('column', {
|
|
3456
3565
|
type: 'nestedmenuitem',
|
|
3457
3566
|
text: 'Column',
|
|
3458
|
-
getSubmenuItems: constant(
|
|
3567
|
+
getSubmenuItems: constant(filteredColumnMenuItems)
|
|
3459
3568
|
});
|
|
3460
3569
|
}
|
|
3461
|
-
|
|
3570
|
+
const cellMenuItems = 'tablecellprops tablemergecells tablesplitcells';
|
|
3571
|
+
const filteredCellMenuItems = isTableCellContextMenuSet(editor) ? filterContextMenu(cellMenuItems, getTableCellContextMenu(editor)) : cellMenuItems;
|
|
3572
|
+
if (contains(hasCellMenuItems, true) && filteredCellMenuItems.length > 0) {
|
|
3462
3573
|
editor.ui.registry.addNestedMenuItem('cell', {
|
|
3463
3574
|
type: 'nestedmenuitem',
|
|
3464
3575
|
text: 'Cell',
|
|
3465
|
-
getSubmenuItems: constant(
|
|
3576
|
+
getSubmenuItems: constant(filteredCellMenuItems)
|
|
3466
3577
|
});
|
|
3467
3578
|
}
|
|
3468
3579
|
editor.ui.registry.addContextMenu('table', {
|
|
3469
3580
|
update: () => {
|
|
3470
3581
|
selectionTargets.resetTargets();
|
|
3471
|
-
|
|
3582
|
+
const menu = selectionTargets.targets().fold(constant(''), targets => {
|
|
3472
3583
|
if (name(targets.element) === 'caption') {
|
|
3473
3584
|
return 'tableprops deletetable';
|
|
3474
3585
|
} else {
|
|
3475
3586
|
return 'cell row column | advtablesort | tableprops deletetable';
|
|
3476
3587
|
}
|
|
3477
3588
|
});
|
|
3589
|
+
const filteredMenu = isTableContextMenuSet(editor) ? filterContextMenu(menu, getTableContextMenu(editor)) : menu;
|
|
3590
|
+
if (isTableContextMenuFlatten(editor) && filteredMenu.length > 0) {
|
|
3591
|
+
return flattenContextMenu(filteredMenu, {
|
|
3592
|
+
cell: filteredCellMenuItems,
|
|
3593
|
+
row: filteredRowMenuItems,
|
|
3594
|
+
column: filteredColumnMenuItems
|
|
3595
|
+
});
|
|
3596
|
+
} else {
|
|
3597
|
+
return filteredMenu;
|
|
3598
|
+
}
|
|
3478
3599
|
}
|
|
3479
3600
|
});
|
|
3480
3601
|
const tableClassList = filterNoneItem(getTableClassList(editor));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TinyMCE version 7.0.0 (TBD)
|
|
3
3
|
*/
|
|
4
|
-
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=l=e,(n=String).prototype.isPrototypeOf(o)||(null===(r=l.constructor)||void 0===r?void 0:r.name)===n.name)?"string":t;var o,l,n,r})(t)===e,o=e=>t=>typeof t===e,l=t("string"),n=t("array"),r=o("boolean"),a=e=>undefined===e;const s=e=>!(e=>null==e)(e),c=o("function"),i=o("number"),d=()=>{},m=e=>()=>e,u=e=>e,p=(e,t)=>e===t;function b(e,...t){return(...o)=>{const l=t.concat(o);return e.apply(null,l)}}const g=e=>{e()},h=m(!1),f=m(!0);class y{constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}y.singletonNone=new y(!1);const w=Object.keys,S=Object.hasOwnProperty,C=(e,t)=>{const o=w(e);for(let l=0,n=o.length;l<n;l++){const n=o[l];t(e[n],n)}},v=(e,t)=>{const o={};var l;return((e,t,o,l)=>{C(e,(e,n)=>{(t(e,n)?o:l)(e,n)})})(e,t,(l=o,(e,t)=>{l[t]=e}),d),o},x=e=>w(e).length,T=(e,t)=>A(e,t)?y.from(e[t]):y.none(),A=(e,t)=>S.call(e,t),R=(e,t)=>A(e,t)&&void 0!==e[t]&&null!==e[t],O=Array.prototype.indexOf,_=Array.prototype.push,D=(e,t)=>((e,t)=>O.call(e,t))(e,t)>-1,N=(e,t)=>{for(let o=0,l=e.length;o<l;o++)if(t(e[o],o))return!0;return!1},I=(e,t)=>{const o=[];for(let l=0;l<e;l++)o.push(t(l));return o},M=(e,t)=>{const o=e.length,l=new Array(o);for(let n=0;n<o;n++){const o=e[n];l[n]=t(o,n)}return l},P=(e,t)=>{for(let o=0,l=e.length;o<l;o++)t(e[o],o)},k=(e,t)=>{const o=[];for(let l=0,n=e.length;l<n;l++){const n=e[l];t(n,l)&&o.push(n)}return o},E=(e,t,o)=>(P(e,(e,l)=>{o=t(o,e,l)}),o),B=(e,t)=>((e,t,o)=>{for(let l=0,n=e.length;l<n;l++){const n=e[l];if(t(n,l))return y.some(n);if(o(n,l))break}return y.none()})(e,t,h),F=(e,t)=>(e=>{const t=[];for(let o=0,l=e.length;o<l;++o){if(!n(e[o]))throw new Error("Arr.flatten item "+o+" was not an array, input: "+e);_.apply(t,e[o])}return t})(M(e,t)),q=(e,t)=>{for(let o=0,l=e.length;o<l;++o)if(!0!==t(e[o],o))return!1;return!0},L=(e,t)=>t>=0&&t<e.length?y.some(e[t]):y.none(),H=(e,t)=>{for(let o=0;o<e.length;o++){const l=t(e[o],o);if(l.isSome())return l}return y.none()},j=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},V={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return j(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return j(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return j(o)},fromDom:j,fromPoint:(e,t,o)=>y.from(e.dom.elementFromPoint(t,o)).map(j)},$=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},W=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,z=(e,t)=>e.dom===t.dom,U=$;"undefined"!=typeof window?window:Function("return this;")();const G=e=>e.dom.nodeName.toLowerCase(),K=e=>e.dom.nodeType,J=e=>t=>K(t)===e,Q=J(1),X=J(3),Y=J(9),Z=J(11),ee=e=>t=>Q(t)&&G(t)===e,te=e=>Y(e)?e:V.fromDom(e.dom.ownerDocument),oe=e=>y.from(e.dom.parentNode).map(V.fromDom),le=e=>y.from(e.dom.nextSibling).map(V.fromDom),ne=e=>M(e.dom.childNodes,V.fromDom),re=c(Element.prototype.attachShadow)&&c(Node.prototype.getRootNode)?e=>V.fromDom(e.dom.getRootNode()):te,ae=e=>V.fromDom(e.dom.host),se=e=>{const t=X(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=re(e);return Z(o=t)&&s(o.dom.host)?y.some(t):y.none();var o})(V.fromDom(t)).fold(()=>o.body.contains(t),(l=se,n=ae,e=>l(n(e))));var l,n};var ce=(e,t,o,l,n)=>e(o,l)?y.some(o):c(n)&&n(o)?y.none():t(o,l,n);const ie=(e,t,o)=>{let l=e.dom;const n=c(o)?o:h;for(;l.parentNode;){l=l.parentNode;const e=V.fromDom(l);if(t(e))return y.some(e);if(n(e))break}return y.none()},de=(e,t,o)=>ie(e,e=>$(e,t),o),me=(e,t)=>(e=>B(e.dom.childNodes,e=>{return o=V.fromDom(e),$(o,t);var o}).map(V.fromDom))(e),ue=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return W(o)?y.none():y.from(o.querySelector(e)).map(V.fromDom)})(t,e),pe=(e,t,o)=>ce((e,t)=>$(e,t),de,e,t,o),be=(e,t=!1)=>{return se(e)?e.dom.isContentEditable:(o=e,pe(o,"[contenteditable]")).fold(m(t),e=>"true"===ge(e));var o},ge=e=>e.dom.contentEditable,he=e=>t=>z(t,(e=>V.fromDom(e.getBody()))(e)),fe=e=>/^\d+(\.\d+)?$/.test(e)?e+"px":e,ye=e=>V.fromDom(e.selection.getStart()),we=(e,t)=>{let o=[];return P(ne(e),e=>{t(e)&&(o=o.concat([e])),o=o.concat(we(e,t))}),o},Se=(e,t)=>(e=>k(ne(e),e=>$(e,t)))(e),Ce=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return W(o)?[]:M(o.querySelectorAll(e),V.fromDom)})(t,e),ve=(e,t,o)=>{if(!(l(o)||r(o)||i(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},xe=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Te=(e,t)=>y.from(xe(e,t)),Ae=(e,t)=>{e.dom.removeAttribute(t)},Re=(e,t,o=p)=>e.exists(e=>o(e,t)),Oe=(e,t,o)=>e.isSome()&&t.isSome()?y.some(o(e.getOrDie(),t.getOrDie())):y.none(),_e=(e,t)=>((e,t)=>""===t||e.length>=t.length&&e.substr(0,0+t.length)===t)(e,t),De=(Ne=/^\s+|\s+$/g,e=>e.replace(Ne,""));var Ne;const Ie=e=>e.length>0,Me=(e,t=10)=>{const o=parseInt(e,t);return isNaN(o)?y.none():y.some(o)},Pe=e=>void 0!==e.style&&c(e.style.getPropertyValue),ke=(e,t)=>{const o=e.dom,l=window.getComputedStyle(o).getPropertyValue(t);return""!==l||se(e)?l:Ee(o,t)},Ee=(e,t)=>Pe(e)?e.style.getPropertyValue(t):"",Be=(e,t)=>{const o=e.dom,l=Ee(o,t);return y.from(l).filter(e=>e.length>0)},Fe=(e,t,o=0)=>Te(e,t).map(e=>parseInt(e,10)).getOr(o),qe=(e,t)=>Le(e,t,f),Le=(e,t,o)=>F(ne(e),e=>$(e,t)?o(e)?[e]:[]:Le(e,t,o)),He=["tfoot","thead","tbody","colgroup"],je=(e,t,o)=>({element:e,rowspan:t,colspan:o}),Ve=(e,t,o)=>({element:e,cells:t,section:o}),$e=(e,t)=>pe(e,"table",t),We=e=>qe(e,"tr"),ze=e=>$e(e).fold(m([]),e=>Se(e,"colgroup")),Ue=e=>oe(e).map(e=>{const t=G(e);return(e=>D(He,e))(t)?t:"tbody"}).getOr("tbody"),Ge=e=>Te(e,"data-snooker-locked-cols").bind(e=>y.from(e.match(/\d+/g))).map(e=>((e,t)=>{const o={};for(let l=0,n=e.length;l<n;l++){const n=e[l];o[String(n)]=t(n,l)}return o})(e,f)),Ke=(e,t)=>e+","+t,Je=e=>{const t={},o=[];var l;const n=(l=e,L(l,0)).map(e=>e.element).bind($e).bind(Ge).getOr({});let r=0,a=0,s=0;const{pass:c,fail:i}=((e,t)=>{const o=[],l=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];(t(r)?o:l).push(r)}return{pass:o,fail:l}})(e,e=>"colgroup"===e.section);P(i,e=>{const l=[];P(e.cells,e=>{let o=0;for(;void 0!==t[Ke(s,o)];)o++;const r=R(n,o.toString()),c=((e,t,o,l,n,r)=>({element:e,rowspan:t,colspan:o,row:l,column:n,isLocked:r}))(e.element,e.rowspan,e.colspan,s,o,r);for(let l=0;l<e.colspan;l++)for(let n=0;n<e.rowspan;n++){const e=o+l,r=Ke(s+n,e);t[r]=c,a=Math.max(a,e+1)}l.push(c)}),r++,o.push(Ve(e.element,l,e.section)),s++});const{columns:d,colgroups:m}=(e=>L(e,e.length-1))(c).map(e=>{const t=(e=>{const t={};let o=0;return P(e.cells,e=>{const l=e.colspan;I(l,n=>{const r=o+n;t[r]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,l,r)}),o+=l}),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,((e,t)=>{const o=[];return C(e,(e,l)=>{o.push(t(e,l))}),o})(t,u));return{colgroups:[o],columns:t}}).getOrThunk(()=>({colgroups:[],columns:{}})),p=((e,t)=>({rows:e,columns:t}))(r,a);return{grid:p,access:t,all:o,columns:d,colgroups:m}},Qe=e=>{const t=(e=>{const t=We(e);return((e,t)=>M(e,e=>{if("colgroup"===G(e)){const t=M((e=>$(e,"colgroup")?Se(e,"col"):F(ze(e),e=>Se(e,"col")))(e),e=>{const t=Fe(e,"span",1);return je(e,1,t)});return Ve(e,t,"colgroup")}{const o=M((e=>qe(e,"th,td"))(e),e=>{const t=Fe(e,"rowspan",1),o=Fe(e,"colspan",1);return je(e,t,o)});return Ve(e,o,t(e))}}))([...ze(e),...t],Ue)})(e);return Je(t)},Xe=(e,t,o)=>y.from(e.access[Ke(t,o)]),Ye=(e,t,o)=>{const l=((e,t)=>{const o=F(e.all,e=>e.cells);return k(o,t)})(e,e=>o(t,e.element));return l.length>0?y.some(l[0]):y.none()},Ze=(e,t)=>y.from(e.columns[t]);var et=tinymce.util.Tools.resolve("tinymce.util.Tools");const tt=(e,t,o)=>{const l=e.select("td,th",t);let n;for(let t=0;t<l.length;t++){const r=e.getStyle(l[t],o);if(a(n)&&(n=r),n!==r)return""}return n},ot=(e,t,o)=>{et.each("left center right".split(" "),l=>{l!==o&&e.formatter.remove("align"+l,{},t)}),o&&e.formatter.apply("align"+o,{},t)},lt=(e,t,o)=>{e.dispatch("TableModified",{...o,table:t})},nt=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?y.none():y.some(t)})(e).getOr(t))(ke(e,t),o),rt=e=>((e,t)=>{const o=e.dom,l=o.getBoundingClientRect().width||o.offsetWidth;return"border-box"===t?l:((e,t,o,l)=>t-nt(e,`padding-${o}`,0)-nt(e,`padding-${l}`,0)-nt(e,`border-${o}-width`,0)-nt(e,`border-${l}-width`,0))(e,l,"left","right")})(e,"content-box");var at=tinymce.util.Tools.resolve("tinymce.Env");const st=I(5,e=>{const t=`${e+1}px`;return{title:t,value:t}}),ct=M(["None","Solid","Dotted","Dashed","Double","Groove","Ridge","Inset","Outset","Hidden"],e=>({title:e,value:e.toLowerCase()})),it="100%",dt=e=>{var t;const o=e.dom,l=null!==(t=o.getParent(e.selection.getStart(),o.isBlock))&&void 0!==t?t:e.getBody();return rt(V.fromDom(l))+"px"},mt=e=>t=>t.options.get(e),ut=mt("table_sizing_mode"),pt=mt("table_border_widths"),bt=mt("table_border_styles"),gt=mt("table_cell_advtab"),ht=mt("table_row_advtab"),ft=mt("table_advtab"),yt=mt("table_cell_inputs"),wt=mt("table_row_inputs"),St=mt("table_inputs"),Ct=mt("table_grid"),vt=mt("table_style_by_css"),xt=mt("table_cell_class_list"),Tt=mt("table_row_class_list"),At=mt("table_class_list"),Rt=mt("table_toolbar"),Ot=mt("table_background_color_map"),_t=mt("table_border_color_map"),Dt=e=>"fixed"===ut(e),Nt=e=>"responsive"===ut(e),It=e=>{const t=e.options,o=t.get("table_default_styles");return t.isSet("table_default_styles")?o:((e,t)=>Nt(e)||!vt(e)?t:Dt(e)?{...t,width:dt(e)}:{...t,width:it})(e,o)},Mt=e=>{const t=e.options,o=t.get("table_default_attributes");return t.isSet("table_default_attributes")?o:((e,t)=>Nt(e)||vt(e)?t:Dt(e)?{...t,width:dt(e)}:{...t,width:it})(e,o)},Pt=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,kt=(e,t,o)=>((e,t,o)=>{const l=Ye(e,t,z),n=Ye(e,o,z);return l.bind(e=>n.map(t=>{return o=e,l=t,{startRow:Math.min(o.row,l.row),startCol:Math.min(o.column,l.column),finishRow:Math.max(o.row+o.rowspan-1,l.row+l.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,l.column+l.colspan-1)};var o,l}))})(e,t,o).bind(t=>((e,t)=>{let o=!0;const l=b(Pt,t);for(let n=t.startRow;n<=t.finishRow;n++)for(let r=t.startCol;r<=t.finishCol;r++)o=o&&Xe(e,n,r).exists(l);return o?y.some(t):y.none()})(e,t)),Et=Qe,Bt=(e,t)=>{oe(e).each(o=>{o.dom.insertBefore(t.dom,e.dom)})},Ft=(e,t)=>{le(e).fold(()=>{oe(e).each(e=>{qt(e,t)})},e=>{Bt(e,t)})},qt=(e,t)=>{e.dom.appendChild(t.dom)},Lt=(e,t)=>{P(t,(o,l)=>{const n=0===l?e:t[l-1];Ft(n,o)})},Ht=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},jt=(e=>{const t=t=>e(t)?y.from(t.dom.nodeValue):y.none();return{get:o=>{if(!e(o))throw new Error("Can only get text value of a text node");return t(o).getOr("")},getOption:t,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(X);var Vt=["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"];const $t=(e,t,o,l)=>{const n=t(e,o);return r=(o,l)=>{const n=t(e,l);return Wt(e,o,n)},a=n,((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(l,(e,t)=>{a=r(a,e)}),a;var r,a},Wt=(e,t,o)=>t.bind(t=>o.filter(b(e.eq,t))),zt={up:m({selector:de,closest:pe,predicate:ie,all:(e,t)=>{const o=c(t)?t:h;let l=e.dom;const n=[];for(;null!==l.parentNode&&void 0!==l.parentNode;){const e=l.parentNode,t=V.fromDom(e);if(n.push(t),!0===o(t))break;l=e}return n}}),down:m({selector:Ce,predicate:we}),styles:m({get:ke,getRaw:Be,set:(e,t,o)=>{((e,t,o)=>{if(!l(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Pe(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},remove:(e,t)=>{((e,t)=>{Pe(e)&&e.style.removeProperty(t)})(e.dom,t),Re(Te(e,"style").map(De),"")&&Ae(e,"style")}}),attrs:m({get:xe,set:(e,t,o)=>{ve(e.dom,t,o)},remove:Ae,copyTo:(e,t)=>{((e,t)=>{const o=e.dom;C(t,(e,t)=>{ve(o,t,e)})})(t,E(e.dom.attributes,(e,t)=>(e[t.name]=t.value,e),{}))}}),insert:m({before:Bt,after:Ft,afterAll:Lt,append:qt,appendAll:(e,t)=>{P(t,t=>{qt(e,t)})},prepend:(e,t)=>{(e=>(e=>{const t=e.dom.childNodes;return y.from(t[0]).map(V.fromDom)})(e))(e).fold(()=>{qt(e,t)},o=>{e.dom.insertBefore(t.dom,o.dom)})},wrap:(e,t)=>{Bt(e,t),qt(t,e)}}),remove:m({unwrap:e=>{const t=ne(e);t.length>0&&Lt(e,t),Ht(e)},remove:Ht}),create:m({nu:V.fromTag,clone:e=>V.fromDom(e.dom.cloneNode(!1)),text:V.fromText}),query:m({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:e=>y.from(e.dom.previousSibling).map(V.fromDom),nextSibling:le}),property:m({children:ne,name:G,parent:oe,document:e=>te(e).dom,isText:X,isComment:e=>8===K(e)||"#comment"===G(e),isElement:Q,isSpecial:e=>{const t=G(e);return D(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>Q(e)?Te(e,"lang"):y.none(),getText:e=>jt.get(e),setText:(e,t)=>jt.set(e,t),isBoundary:e=>!!Q(e)&&("body"===G(e)||D(Vt,G(e))),isEmptyTag:e=>!!Q(e)&&D(["br","img","hr","input"],G(e)),isNonEditable:e=>Q(e)&&"false"===xe(e,"contenteditable")}),eq:z,is:U},Ut=e=>de(e,"table"),Gt=(e,t,o)=>ue(e,t).bind(t=>ue(e,o).bind(e=>{return(o=Ut,l=[t,e],((e,t,o)=>o.length>0?((e,t,o,l)=>l(e,t,o[0],o.slice(1)))(e,t,o,$t):y.none())(zt,(e,t)=>o(t),l)).map(o=>({first:t,last:e,table:o}));var o,l})),Kt=e=>M(e,V.fromDom),Jt="data-mce-selected",Qt="data-mce-first-selected",Xt="data-mce-last-selected",Yt={selected:Jt,selectedSelector:"td["+Jt+"],th["+Jt+"]",firstSelected:Qt,firstSelectedSelector:"td["+Qt+"],th["+Qt+"]",lastSelected:Xt,lastSelectedSelector:"td["+Xt+"],th["+Xt+"]"},Zt=e=>(t,o)=>{const l=G(t),n="col"===l||"colgroup"===l?$e(r=t).bind(e=>((e,t)=>((e,t)=>{const o=Ce(e,t);return o.length>0?y.some(o):y.none()})(e,t))(e,Yt.firstSelectedSelector)).fold(m(r),e=>e[0]):t;var r;return pe(n,e,o)},eo=Zt("th,td,caption"),to=Zt("th,td"),oo=e=>Kt(e.model.table.getSelectedCells()),lo=(e,t)=>{const o=to(e),l=o.bind(e=>$e(e)).map(e=>We(e));return Oe(o,l,(e,o)=>k(o,o=>N(Kt(o.dom.cells),o=>"1"===xe(o,t)||z(o,e)))).getOr([])},no=[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}],ro=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,ao=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,so=e=>{return(t=e,_e(t,"#")?(e=>e.substring(1))(t):t).toUpperCase();var t},co=e=>{const t=e.toString(16);return(1===t.length?"0"+t:t).toUpperCase()},io=e=>{return t=co(e.red)+co(e.green)+co(e.blue),{value:so(t)};var t},mo=/^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/i,uo=/^\s*rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?(?:\.\d+)?)\s*\)\s*$/i,po=(e,t,o,l)=>({red:e,green:t,blue:o,alpha:l}),bo=(e,t,o,l)=>{const n=parseInt(e,10),r=parseInt(t,10),a=parseInt(o,10),s=parseFloat(l);return po(n,r,a,s)},go=e=>{if("transparent"===e)return y.some(po(0,0,0,0));const t=mo.exec(e);if(null!==t)return y.some(bo(t[1],t[2],t[3],"1"));const o=uo.exec(e);return null!==o?y.some(bo(o[1],o[2],o[3],o[4])):y.none()},ho=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},fo=(e,t,o)=>l=>{const n=(e=>{const t=ho(y.none()),o=()=>t.get().each(e);return{clear:()=>{o(),t.set(y.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{o(),t.set(y.some(e))}}})(e=>e.unbind()),r=!Ie(o),a=()=>{const a=oo(e),s=l=>e.formatter.match(t,{value:o},l.dom,r);r?(l.setActive(!N(a,s)),n.set(e.formatter.formatChanged(t,e=>l.setActive(!e),!0))):(l.setActive(q(a,s)),n.set(e.formatter.formatChanged(t,l.setActive,!1,{value:o})))};return e.initialized?a():e.on("init",a),n.clear},yo=e=>R(e,"menu"),wo=e=>M(e,e=>{const t=e.text||e.title||"";return yo(e)?{text:t,items:wo(e.menu)}:{text:t,value:e.value}}),So=e=>e.length?y.some(wo([{text:"Select...",value:"mce-no-match"},...e])):y.none(),Co=(e,t,o,l)=>M(t,t=>{const n=t.text||t.title;return yo(t)?{type:"nestedmenuitem",text:n,getSubmenuItems:()=>Co(e,t.menu,o,l)}:{text:n,type:"togglemenuitem",onAction:()=>l(t.value),onSetup:fo(e,o,t.value)}}),vo=(e,t)=>o=>{e.execCommand("mceTableApplyCellStyle",!1,{[t]:o})},xo=e=>F(e,e=>yo(e)?[{...e,menu:xo(e.menu)}]:Ie(e.value)?[e]:[]),To=(e,t,o,l)=>n=>n(Co(e,t,o,l)),Ao=(e,t,o)=>{const l=M(t,e=>{return{text:e.title,value:"#"+(o=e.value,(t=o,(e=>ro.test(e)||ao.test(e))(t)?y.some({value:so(t)}):y.none()).orThunk(()=>go(o).map(io)).getOrThunk(()=>{const e=document.createElement("canvas");e.height=1,e.width=1;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height),t.fillStyle="#FFFFFF",t.fillStyle=o,t.fillRect(0,0,1,1);const l=t.getImageData(0,0,1,1).data,n=l[0],r=l[1],a=l[2],s=l[3];return io(po(n,r,a,s))})).value,type:"choiceitem"};var t,o});return[{type:"fancymenuitem",fancytype:"colorswatch",initData:{colors:l.length>0?l:void 0,allowCustomColors:!1},onAction:t=>{const l="remove"===t.value?"":t.value;e.execCommand("mceTableApplyCellStyle",!1,{[o]:l})}}]},Ro=e=>()=>{const t="header"===e.queryCommandValue("mceTableRowType")?"body":"header";e.execCommand("mceTableRowType",!1,{type:t})},Oo=e=>()=>{const t="th"===e.queryCommandValue("mceTableColType")?"td":"th";e.execCommand("mceTableColType",!1,{type:t})},_o=[{name:"width",type:"input",label:"Width",tooltip:"Cell width in pixels or percentage (e.g., 50px or 10%)."},{name:"celltype",type:"listbox",label:"Cell type",tooltip:"Select the type of cell to apply formatting or styling to.",items:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{name:"scope",type:"listbox",label:"Scope",tooltip:"Defines the scope of the header cell to specify its relationship to rows or columns.",items:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{name:"halign",type:"listbox",label:"Horizontal align",tooltip:"Horizontal alignment of the cell content.",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{name:"valign",type:"listbox",label:"Vertical align",tooltip:"Vertical alignment of the cell content.",items:no}],Do=e=>{const t=yt(e).split(" "),o=_o.concat((e=>So(xt(e)).map(e=>({name:"class",type:"listbox",label:"Class",items:e})))(e).toArray());return o.filter(e=>"name"in e&&t.includes(e.name)).sort((e,o)=>{const l="name"in e?e.name:"",n="name"in o?o.name:"";return t.indexOf(l)-t.indexOf(n)})},No=e=>`Style of the outer border of the ${e}.`,Io=e=>{switch(e){case"table":return"Color of the border for the entire table and individual cells.";case"row":case"cell":return`Color of the outer border of the ${e}.`}},Mo=e=>{switch(e){case"table":return"Changes the background color of all cells in the table, except for those set individually through Cell Properties or Row Properties.";case"row":return"Changes the background color of all cells in the row, except for those set individually through Cell Properties.";case"cell":return"Background color of the cell."}},Po=e=>{switch(e){case"table":case"row":return;case"cell":return"Width of the outer border of the cell."}},ko=(e,t)=>{const o=It(e)["border-style"],l=bt(e).some(e=>"none"===e.value),n=[{name:"borderstyle",type:"listbox",label:"Border style",tooltip:No(t),items:(o||l?[]:[{text:"None",value:"none"}]).concat(wo(bt(e)))},{name:"bordercolor",type:"colorinput",label:"Border color",tooltip:Io(t)},{name:"backgroundcolor",type:"colorinput",label:"Background color",tooltip:Mo(t)}],r={name:"borderwidth",type:"input",label:"Border width",tooltip:Po(t)};return{title:"Advanced",name:"advanced",items:"cell"===t?[r].concat(n):n}},Eo=(e,t)=>{const o=e.dom;return{setAttrib:(e,l)=>{o.setAttrib(t,e,l)},setStyle:(e,l)=>{o.setStyle(t,e,l)},setFormat:(o,l)=>{""===l?e.formatter.remove(o,{value:null},t,!0):e.formatter.apply(o,{value:l},t)}}},Bo=ee("th"),Fo=(e,t)=>e&&t?"sectionCells":e?"section":"cells",qo=e=>{const t=M(e,e=>(e=>{const t="thead"===e.section,o=Re((e=>{const t=k(e,e=>Bo(e.element));return 0===t.length?y.some("td"):t.length===e.length?y.some("th"):y.none()})(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:Fo(t,o)}:{type:"body"}})(e).type),o=D(t,"header"),l=D(t,"footer");if(o||l){const e=D(t,"body");return!o||e||l?o||e||!l?y.none():y.some("footer"):y.some("header")}return y.some("body")},Lo=(e,t)=>H(e.all,e=>B(e.cells,e=>z(t,e.element))),Ho=(e,t,o)=>{const l=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(o);return t})(M(t.selection,t=>{return(l=t,((e,t,o=h)=>o(t)?y.none():D(e,G(t))?y.some(t):de(t,e.join(","),e=>$(e,"table")||o(e)))(["td","th"],l,n)).bind(t=>Lo(e,t)).filter(o);var l,n})).map(e=>({...e,elementRect:e.element.dom.getBoundingClientRect()}));return n=l,l.length>0?y.some(n):y.none();var n},jo=(e,t)=>Ho(e,t,f),Vo=(e,t)=>q(t,t=>((e,t)=>Lo(e,t).exists(e=>!e.isLocked))(e,t)),$o=(e,t)=>((e,t)=>t.mergable)(0,t).filter(t=>Vo(e,t.cells)),Wo=(e,t)=>((e,t)=>t.unmergable)(0,t).filter(t=>Vo(e,t)),zo=((e=>{if(!n(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};P(e,(l,r)=>{const a=w(l);if(1!==a.length)throw new Error("one and only one name per case");const s=a[0],c=l[s];if(void 0!==o[s])throw new Error("duplicate key detected:"+s);if("cata"===s)throw new Error("cannot have a case named cata (sorry)");if(!n(c))throw new Error("case arguments must be an array");t.push(s),o[s]=(...o)=>{const l=o.length;if(l!==c.length)throw new Error("Wrong number of arguments to case "+s+". Expected "+c.length+" ("+c+"), got "+l);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const l=w(e);if(t.length!==l.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+l.join(","));if(!q(t,e=>D(l,e)))throw new Error("Not all branches were specified when using match. Specified: "+l.join(", ")+"\nRequired: "+t.join(", "));return e[s].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:s,params:o})}}}})})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}]),(e,t)=>{const o=Qe(e);return jo(o,t).bind(e=>{const t=e[e.length-1],l=e[0].row,n=t.row+t.rowspan,r=o.all.slice(l,n);return qo(r)}).getOr("")}),Uo=e=>{return _e(e,"rgb")?go(t=e).map(io).map(e=>"#"+e.value).getOr(t):e;var t},Go=e=>{const t=V.fromDom(e);return{borderwidth:Be(t,"border-width").getOr(""),borderstyle:Be(t,"border-style").getOr(""),bordercolor:Be(t,"border-color").map(Uo).getOr(""),backgroundcolor:Be(t,"background-color").map(Uo).getOr("")}},Ko=e=>{const t=e[0],o=e.slice(1);return P(o,e=>{P(w(t),o=>{C(e,(e,l)=>{const n=t[o];""!==n&&o===l&&n!==e&&(t[o]="class"===o?"mce-no-match":"")})})}),t},Jo=(e,t,o,l)=>B(e,e=>!a(o.formatter.matchNode(l,t+e))).getOr(""),Qo=b(Jo,["left","center","right"],"align"),Xo=b(Jo,["top","middle","bottom"],"valign"),Yo=e=>$e(V.fromDom(e)).map(t=>{const o={selection:Kt(e.cells)};return zo(t,o)}).getOr(""),Zo=(e,t)=>{if(!t||"double"!==t)return e;const o=parseFloat(e);return void 0!==o&&(0===o||o>=3)?e:"3px"},el=(e,t)=>{const o=Qe(e),l=(e=>F(e.all,e=>e.cells))(o),n=k(l,e=>N(t,t=>z(e.element,t)));return M(n,e=>({element:e.element.dom,column:Ze(o,e.column).map(e=>e.element.dom)}))},tl=(e,t,o,l)=>{const n=l.getData();l.close(),e.undoManager.transact(()=>{((e,t,o,l)=>{const n=v(l,(e,t)=>o[t]!==e);x(n)>0&&t.length>=1&&$e(t[0]).each(o=>{const r=el(o,t),a=x(v(n,(e,t)=>"scope"!==t&&"celltype"!==t))>0,s=A(n,"celltype");(a||A(n,"scope"))&&((e,t,o,l)=>{const n=1===t.length;P(t,t=>{const r=t.element,a=n?f:l,s=Eo(e,r);((e,t,o,l)=>{l("scope")&&e.setAttrib("scope",o.scope),l("class")&&"mce-no-match"!==o.class&&e.setAttrib("class",o.class),l("width")&&t.setStyle("width",fe(o.width))})(s,t.column.map(t=>Eo(e,t)).getOr(s),o,a),gt(e)&&((e,t,o)=>{if(o("backgroundcolor")&&e.setFormat("tablecellbackgroundcolor",t.backgroundcolor),o("bordercolor")&&e.setFormat("tablecellbordercolor",t.bordercolor),o("borderstyle")&&e.setFormat("tablecellborderstyle",t.borderstyle),o("borderwidth")||"double"===t.borderstyle){const o=Zo(t.borderwidth,t.borderstyle);e.setFormat("tablecellborderwidth",fe(o))}})(s,o,a),l("halign")&&ot(e,r,o.halign),l("valign")&&((e,t,o)=>{et.each("top middle bottom".split(" "),l=>{l!==o&&e.formatter.remove("valign"+l,{},t)}),o&&e.formatter.apply("valign"+o,{},t)})(e,r,o.valign)})})(e,r,l,b(A,n)),s&&((e,t)=>{e.execCommand("mceTableCellType",!1,{type:t.celltype,no_events:!0})})(e,l),lt(e,o.dom,{structure:s,style:a})})})(e,t,o,n),e.focus()})},ol=e=>{const t=oo(e);if(0===t.length)return;const o=((e,t)=>{const o=$e(t[0]).map(o=>M(el(o,t),t=>((e,t,o,l)=>{const n=e.dom;return{width:(a=l.getOr(t),s="width",n.getStyle(a,s)||n.getAttrib(a,s)),scope:n.getAttrib(t,"scope"),celltype:(r=t,r.nodeName.toLowerCase()),class:n.getAttrib(t,"class",""),halign:Qo(e,t),valign:Xo(e,t),...o?Go(t):{}};var r,a,s})(e,t.element,gt(e),t.column)));return Ko(o.getOrDie())})(e,t),l={type:"tabpanel",tabs:[{title:"General",name:"general",items:Do(e)},ko(e,"cell")]},n={type:"panel",items:[{type:"grid",columns:2,items:Do(e)}]};e.windowManager.open({title:"Cell Properties",size:"normal",body:gt(e)?l:n,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:o,onSubmit:b(tl,e,t,o)})},ll=[{type:"listbox",name:"type",label:"Row type",tooltip:"Select the type of row to apply formatting or styling to.",items:[{text:"Header",value:"header"},{text:"Body",value:"body"},{text:"Footer",value:"footer"}]},{type:"listbox",name:"align",label:"Alignment",tooltip:"Alignment of the content within the cells in the row.",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height",type:"input",tooltip:"Row height in pixels (e.g., 20px)."}],nl=e=>{const t=wt(e).split(" "),o=ll.concat((e=>So(Tt(e)).map(e=>({name:"class",type:"listbox",label:"Class",items:e})))(e).toArray());return o.filter(e=>"name"in e&&t.includes(e.name)).sort((e,o)=>{const l="name"in e?e.name:"",n="name"in o?o.name:"";return t.indexOf(l)-t.indexOf(n)})},rl=(e,t,o,l)=>{const n=l.getData();l.close(),e.undoManager.transact(()=>{((e,t,o,l)=>{const n=v(l,(e,t)=>o[t]!==e);if(x(n)>0){const o=A(n,"type"),r=!o||x(n)>1;r&&((e,t,o,l)=>{const n=1===t.length?f:l;P(t,t=>{const r=Se(V.fromDom(t),"td,th"),a=Eo(e,t);((e,t,o)=>{o("class")&&"mce-no-match"!==t.class&&e.setAttrib("class",t.class),o("height")&&e.setStyle("height",fe(t.height))})(a,o,n),ht(e)&&((e,t,o)=>{o("backgroundcolor")&&e.setStyle("background-color",t.backgroundcolor),o("bordercolor")&&e.setStyle("border-color",t.bordercolor),o("borderstyle")&&e.setStyle("border-style",t.borderstyle)})(a,o,n),l("height")&&P(r,t=>{e.dom.setStyle(t.dom,"height",null)}),l("align")&&ot(e,t,o.align)})})(e,t,l,b(A,n)),o&&((e,t)=>{e.execCommand("mceTableRowType",!1,{type:t.type,no_events:!0})})(e,l),$e(V.fromDom(t[0])).each(t=>lt(e,t.dom,{structure:o,style:r}))}})(e,t,o,n),e.focus()})},al=e=>{const t=lo(ye(e),Yt.selected);if(0===t.length)return;const o=M(t,t=>((e,t,o)=>{const l=e.dom;return{height:l.getStyle(t,"height")||l.getAttrib(t,"height"),class:l.getAttrib(t,"class",""),type:Yo(t),align:Qo(e,t),...o?Go(t):{}}})(e,t.dom,ht(e))),l=Ko(o),n={type:"tabpanel",tabs:[{title:"General",name:"general",items:nl(e)},ko(e,"row")]},r={type:"panel",items:[{type:"grid",columns:2,items:nl(e)}]};e.windowManager.open({title:"Row Properties",size:"normal",body:ht(e)?n:r,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onSubmit:b(rl,e,M(t,e=>e.dom),l)})},sl=(e,t,o)=>{const l=o?[{type:"input",name:"cols",label:"Cols",inputMode:"numeric"},{type:"input",name:"rows",label:"Rows",inputMode:"numeric"}]:[],n=[{type:"input",name:"width",label:"Width",tooltip:"Total width of the table in pixels or percentage (e.g., 500px or 100%)."},{type:"input",name:"height",label:"Height",tooltip:"Total height of the table in pixels (e.g., 500px)."},{type:"input",name:"cellspacing",label:"Cell spacing",inputMode:"numeric",tooltip:"The space between individual table cells, measured in pixels (e.g., 5px)."},{type:"input",name:"cellpadding",label:"Cell padding",inputMode:"numeric",tooltip:"Inner text padding in cells, e.g., 0px 5px (where 0px is vertical padding, and 5px is horizontal padding)."},{type:"input",name:"border",label:"Border width",tooltip:"Width of the border for the entire table and individual cells."},{type:"label",label:"Caption",name:"caption",tooltip:"Adds a caption above the table, which can be edited.",items:[{type:"checkbox",name:"caption",label:"Show caption"}]},{type:"listbox",name:"align",label:"Alignment",tooltip:"Alignment of the entire table (not the content within the table).",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}];t.length>0&&n.push({name:"class",type:"listbox",label:"Class",items:t});const r=St(e).split(" "),a=n.filter(e=>"name"in e&&r.includes(e.name)).sort((e,t)=>{const o="name"in e?e.name:"",l="name"in t?t.name:"";return r.indexOf(o)-r.indexOf(l)});return l.concat(a)},cl=(e,t,o,n)=>{if("TD"===t.tagName||"TH"===t.tagName)l(o)&&s(n)?e.setStyle(t,o,n):e.setStyles(t,o);else if(t.children)for(let l=0;l<t.children.length;l++)cl(e,t.children[l],o,n)},il=(e,t,o,l)=>{const n=e.dom,r=l.getData(),s=v(r,(e,t)=>o[t]!==e);l.close(),e.undoManager.transact(()=>{if(!t){const o=Me(r.cols).getOr(1),l=Me(r.rows).getOr(1);e.execCommand("mceInsertTable",!1,{rows:l,columns:o}),t=to(ye(e),he(e)).bind(t=>$e(t,he(e))).map(e=>e.dom).getOrDie()}if(x(s)>0){const o={border:A(s,"border"),bordercolor:A(s,"bordercolor"),cellpadding:A(s,"cellpadding")};((e,t,o,l)=>{const n=e.dom,r={},s={},c=vt(e),i=ft(e),d=0===parseFloat(o.border),m=Zo(o.border,o.borderstyle);if(a(o.class)||"mce-no-match"===o.class||(r.class=o.class),s.height=fe(o.height),c?s.width=fe(o.width):n.getAttrib(t,"width")&&(r.width=(e=>e?e.replace(/px$/,""):"")(o.width)),c?(d?(r.border=0,s["border-width"]=""):(s["border-width"]=fe(m),r.border=1),s["border-spacing"]=fe(o.cellspacing)):(r.border=d?0:m,r.cellpadding=o.cellpadding,r.cellspacing=o.cellspacing),c&&t.children){const e={};if(d?e["border-width"]="":l.border&&(e["border-width"]=fe(m)),l.cellpadding&&(e.padding=fe(o.cellpadding)),i&&l.bordercolor&&(e["border-color"]=o.bordercolor),!(e=>{for(const t in e)if(S.call(e,t))return!1;return!0})(e))for(let o=0;o<t.children.length;o++)cl(n,t.children[o],e)}if(i){const e=o;s["background-color"]=e.backgroundcolor,s["border-color"]=e.bordercolor,s["border-style"]=e.borderstyle}n.setStyles(t,{...It(e),...s}),n.setAttribs(t,{...Mt(e),...r})})(e,t,r,o);const l=n.select("caption",t)[0];(l&&!r.caption||!l&&r.caption)&&e.execCommand("mceTableToggleCaption"),ot(e,t,r.align)}if(e.focus(),e.addVisual(),x(s)>0){const o=A(s,"caption"),l=!o||x(s)>1;lt(e,t,{structure:o,style:l})}})},dl=(e,t)=>{const o=e.dom;let l,n=((e,t)=>{const o=It(e),l=Mt(e),n=t?{borderstyle:T(o,"border-style").getOr(""),bordercolor:Uo(T(o,"border-color").getOr("")),backgroundcolor:Uo(T(o,"background-color").getOr(""))}:{};return{height:"",width:"100%",cellspacing:"",cellpadding:"",caption:!1,class:"",align:"",border:"",...o,...l,...n,...(()=>{const t=o["border-width"];return vt(e)&&t?{border:t}:T(l,"border").fold(()=>({}),e=>({border:e}))})(),...{...T(o,"border-spacing").or(T(l,"cellspacing")).fold(()=>({}),e=>({cellspacing:e})),...T(o,"border-padding").or(T(l,"cellpadding")).fold(()=>({}),e=>({cellpadding:e}))}}})(e,ft(e));t?(n.cols="1",n.rows="1",ft(e)&&(n.borderstyle="",n.bordercolor="",n.backgroundcolor="")):(l=o.getParent(e.selection.getStart(),"table",e.getBody()),l?n=((e,t,o)=>{const l=e.dom,n=vt(e)?l.getStyle(t,"border-spacing")||l.getAttrib(t,"cellspacing"):l.getAttrib(t,"cellspacing")||l.getStyle(t,"border-spacing"),r=vt(e)?tt(l,t,"padding")||l.getAttrib(t,"cellpadding"):l.getAttrib(t,"cellpadding")||tt(l,t,"padding");return{width:l.getStyle(t,"width")||l.getAttrib(t,"width"),height:l.getStyle(t,"height")||l.getAttrib(t,"height"),cellspacing:null!=n?n:"",cellpadding:null!=r?r:"",border:((t,o)=>{const l=Be(V.fromDom(o),"border-width");return vt(e)&&l.isSome()?l.getOr(""):t.getAttrib(o,"border")||tt(e.dom,o,"border-width")||tt(e.dom,o,"border")||""})(l,t),caption:!!l.select("caption",t)[0],class:l.getAttrib(t,"class",""),align:Qo(e,t),...o?Go(t):{}}})(e,l,ft(e)):ft(e)&&(n.borderstyle="",n.bordercolor="",n.backgroundcolor=""));const r=So(At(e));r.isSome()&&n.class&&(n.class=n.class.replace(/\s*mce\-item\-table\s*/g,""));const a={type:"grid",columns:2,items:sl(e,r.getOr([]),t)},s=ft(e)?{type:"tabpanel",tabs:[{title:"General",name:"general",items:[a]},ko(e,"table")]}:{type:"panel",items:[a]};e.windowManager.open({title:"Table Properties",size:"normal",body:s,onSubmit:b(il,e,l,n),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:n})},ml=e=>{C({mceTableProps:b(dl,e,!1),mceTableRowProps:b(al,e),mceTableCellProps:b(ol,e),mceInsertTableDialog:b(dl,e,!0)},(t,o)=>e.addCommand(o,()=>{return o=t,void((e=>{return(t=e,o=ee("table"),ce((e,t)=>t(e),ie,t,o,void 0)).forall(be);var t,o})(ye(e))&&o());var o}))},ul=u,pl=e=>{const t=(e,t)=>Te(e,t).exists(e=>parseInt(e,10)>1);return e.length>0&&q(e,e=>t(e,"rowspan")||t(e,"colspan"))?y.some(e):y.none()},bl=(e,t,o)=>{return t.length<=1?y.none():(l=e,n=o.firstSelectedSelector,r=o.lastSelectedSelector,Gt(l,n,r).bind(e=>{const t=e=>z(l,e),o="thead,tfoot,tbody,table",n=de(e.first,o,t),r=de(e.last,o,t);return n.bind(t=>r.bind(o=>z(t,o)?((e,t,o)=>{const l=Et(e);return kt(l,t,o)})(e.table,e.first,e.last):y.none()))})).map(e=>({bounds:e,cells:t}));var l,n,r},gl=e=>{const t=ho(y.none()),o=ho([]);let l=y.none();const n=ee("caption"),r=e=>l.forall(t=>!t[e]),a=()=>eo(ye(e),he(e)).bind(t=>{return o=Oe($e(t),eo((e=>V.fromDom(e.selection.getEnd()))(e),he(e)).bind($e),(o,l)=>z(o,l)?n(t)?y.some((e=>({element:e,mergable:y.none(),unmergable:y.none(),selection:[e]}))(t)):y.some(((e,t,o)=>({element:o,mergable:bl(t,e,Yt),unmergable:pl(e),selection:ul(e)}))(oo(e),o,t)):y.none()),o.bind(u);var o}),s=e=>$e(e.element).map(t=>{const o=Qe(t),l=jo(o,e).getOr([]),n=E(l,(e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:$o(o,e).isSome(),unmergeable:Wo(o,e).isSome(),locked:n}}),c=()=>{t.set((e=>{let t,o=!1;return(...l)=>(o||(o=!0,t=e.apply(null,l)),t)})(a)()),l=t.get().bind(s),P(o.get(),g)},i=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(k(o.get(),t=>t!==e))}),d=(o,l)=>i(()=>t.get().fold(()=>{o.setEnabled(!1)},t=>{o.setEnabled(!l(t)&&e.selection.isEditable())})),m=(o,l,n)=>i(()=>t.get().fold(()=>{o.setEnabled(!1),o.setActive(!1)},t=>{o.setEnabled(!l(t)&&e.selection.isEditable()),o.setActive(n(t))})),p=e=>l.exists(t=>t.locked[e]),b=(t,o)=>l=>m(l,e=>n(e.element),()=>e.queryCommandValue(t)===o),f=b("mceTableRowType","header"),w=b("mceTableColType","th");return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>d(e,e=>!1),onSetupCellOrRow:e=>d(e,e=>n(e.element)),onSetupColumn:e=>t=>d(t,t=>n(t.element)||p(e)),onSetupPasteable:e=>t=>d(t,t=>n(t.element)||e().isNone()),onSetupPasteableColumn:(e,t)=>o=>d(o,o=>n(o.element)||e().isNone()||p(t)),onSetupMergeable:e=>d(e,e=>r("mergeable")),onSetupUnmergeable:e=>d(e,e=>r("unmergeable")),resetTargets:c,onSetupTableWithCaption:t=>m(t,h,t=>$e(t.element,he(e)).exists(e=>me(e,"caption").isSome())),onSetupTableRowHeaders:f,onSetupTableColumnHeaders:w,targets:t.get}};var hl=tinymce.util.Tools.resolve("tinymce.FakeClipboard");const fl="x-tinymce/dom-table-",yl=fl+"rows",wl=fl+"columns",Sl=e=>{var t;const o=null!==(t=hl.read())&&void 0!==t?t:[];return H(o,t=>y.from(t.getType(e)))},Cl=()=>Sl(yl),vl=()=>Sl(wl),xl=e=>t=>{const o=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",o),o(),()=>{e.off("NodeChange",o)}},Tl=e=>t=>{const o=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",o),o(),()=>{e.off("NodeChange",o)}};e.add("table",e=>{const t=gl(e);(e=>{const t=e.options.register;t("table_border_widths",{processor:"object[]",default:st}),t("table_border_styles",{processor:"object[]",default:ct}),t("table_cell_advtab",{processor:"boolean",default:!0}),t("table_row_advtab",{processor:"boolean",default:!0}),t("table_advtab",{processor:"boolean",default:!0}),t("table_cell_inputs",{processor:"string",default:"width celltype scope halign valign class"}),t("table_row_inputs",{processor:"string",default:"type align height class"}),t("table_inputs",{processor:"string",default:"width height cellspacing cellpadding border caption align class"}),t("table_grid",{processor:"boolean",default:!at.deviceType.isTouch()}),t("table_cell_class_list",{processor:"object[]",default:[]}),t("table_row_class_list",{processor:"object[]",default:[]}),t("table_class_list",{processor:"object[]",default:[]}),t("table_toolbar",{processor:"string",default:"tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"}),t("table_background_color_map",{processor:"object[]",default:[]}),t("table_border_color_map",{processor:"object[]",default:[]})})(e),ml(e),((e,t)=>{const o=t=>()=>e.execCommand(t),l=(t,l)=>!!e.queryCommandSupported(l.command)&&(e.ui.registry.addMenuItem(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)}),!0),n=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addToggleMenuItem(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})},r=t=>{e.execCommand("mceInsertTable",!1,{rows:t.numRows,columns:t.numColumns})},a=[l("tableinsertrowbefore",{text:"Insert row before",icon:"table-insert-row-above",command:"mceTableInsertRowBefore",onSetup:t.onSetupCellOrRow}),l("tableinsertrowafter",{text:"Insert row after",icon:"table-insert-row-after",command:"mceTableInsertRowAfter",onSetup:t.onSetupCellOrRow}),l("tabledeleterow",{text:"Delete row",icon:"table-delete-row",command:"mceTableDeleteRow",onSetup:t.onSetupCellOrRow}),l("tablerowprops",{text:"Row properties",icon:"table-row-properties",command:"mceTableRowProps",onSetup:t.onSetupCellOrRow}),l("tablecutrow",{text:"Cut row",icon:"cut-row",command:"mceTableCutRow",onSetup:t.onSetupCellOrRow}),l("tablecopyrow",{text:"Copy row",icon:"duplicate-row",command:"mceTableCopyRow",onSetup:t.onSetupCellOrRow}),l("tablepasterowbefore",{text:"Paste row before",icon:"paste-row-before",command:"mceTablePasteRowBefore",onSetup:t.onSetupPasteable(Cl)}),l("tablepasterowafter",{text:"Paste row after",icon:"paste-row-after",command:"mceTablePasteRowAfter",onSetup:t.onSetupPasteable(Cl)})],s=[l("tableinsertcolumnbefore",{text:"Insert column before",icon:"table-insert-column-before",command:"mceTableInsertColBefore",onSetup:t.onSetupColumn("onFirst")}),l("tableinsertcolumnafter",{text:"Insert column after",icon:"table-insert-column-after",command:"mceTableInsertColAfter",onSetup:t.onSetupColumn("onLast")}),l("tabledeletecolumn",{text:"Delete column",icon:"table-delete-column",command:"mceTableDeleteCol",onSetup:t.onSetupColumn("onAny")}),l("tablecutcolumn",{text:"Cut column",icon:"cut-column",command:"mceTableCutCol",onSetup:t.onSetupColumn("onAny")}),l("tablecopycolumn",{text:"Copy column",icon:"duplicate-column",command:"mceTableCopyCol",onSetup:t.onSetupColumn("onAny")}),l("tablepastecolumnbefore",{text:"Paste column before",icon:"paste-column-before",command:"mceTablePasteColBefore",onSetup:t.onSetupPasteableColumn(vl,"onFirst")}),l("tablepastecolumnafter",{text:"Paste column after",icon:"paste-column-after",command:"mceTablePasteColAfter",onSetup:t.onSetupPasteableColumn(vl,"onLast")})],i=[l("tablecellprops",{text:"Cell properties",icon:"table-cell-properties",command:"mceTableCellProps",onSetup:t.onSetupCellOrRow}),l("tablemergecells",{text:"Merge cells",icon:"table-merge-cells",command:"mceTableMergeCells",onSetup:t.onSetupMergeable}),l("tablesplitcells",{text:"Split cell",icon:"table-split-cells",command:"mceTableSplitCells",onSetup:t.onSetupUnmergeable})];Ct(e)?e.ui.registry.addNestedMenuItem("inserttable",{text:"Table",icon:"table",getSubmenuItems:()=>[{type:"fancymenuitem",fancytype:"inserttable",onAction:r}],onSetup:Tl(e)}):e.ui.registry.addMenuItem("inserttable",{text:"Table",icon:"table",onAction:o("mceInsertTableDialog"),onSetup:Tl(e)}),e.ui.registry.addMenuItem("inserttabledialog",{text:"Insert table",icon:"table",onAction:o("mceInsertTableDialog"),onSetup:Tl(e)}),l("tableprops",{text:"Table properties",onSetup:t.onSetupTable,command:"mceTableProps"}),l("deletetable",{text:"Delete table",icon:"table-delete-table",onSetup:t.onSetupTable,command:"mceTableDelete"}),D(a,!0)&&e.ui.registry.addNestedMenuItem("row",{type:"nestedmenuitem",text:"Row",getSubmenuItems:m("tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter")}),D(s,!0)&&e.ui.registry.addNestedMenuItem("column",{type:"nestedmenuitem",text:"Column",getSubmenuItems:m("tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter")}),D(i,!0)&&e.ui.registry.addNestedMenuItem("cell",{type:"nestedmenuitem",text:"Cell",getSubmenuItems:m("tablecellprops tablemergecells tablesplitcells")}),e.ui.registry.addContextMenu("table",{update:()=>(t.resetTargets(),t.targets().fold(m(""),e=>"caption"===G(e.element)?"tableprops deletetable":"cell row column | advtablesort | tableprops deletetable"))});const d=xo(At(e));0!==d.length&&e.queryCommandSupported("mceTableToggleClass")&&e.ui.registry.addNestedMenuItem("tableclass",{icon:"table-classes",text:"Table styles",getSubmenuItems:()=>Co(e,d,"tableclass",t=>e.execCommand("mceTableToggleClass",!1,t)),onSetup:t.onSetupTable});const u=xo(xt(e));0!==u.length&&e.queryCommandSupported("mceTableCellToggleClass")&&e.ui.registry.addNestedMenuItem("tablecellclass",{icon:"table-cell-classes",text:"Cell styles",getSubmenuItems:()=>Co(e,u,"tablecellclass",t=>e.execCommand("mceTableCellToggleClass",!1,t)),onSetup:t.onSetupCellOrRow}),e.queryCommandSupported("mceTableApplyCellStyle")&&(e.ui.registry.addNestedMenuItem("tablecellvalign",{icon:"vertical-align",text:"Vertical align",getSubmenuItems:()=>Co(e,no,"tablecellverticalalign",vo(e,"vertical-align")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellborderwidth",{icon:"border-width",text:"Border width",getSubmenuItems:()=>Co(e,pt(e),"tablecellborderwidth",vo(e,"border-width")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellborderstyle",{icon:"border-style",text:"Border style",getSubmenuItems:()=>Co(e,bt(e),"tablecellborderstyle",vo(e,"border-style")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellbackgroundcolor",{icon:"cell-background-color",text:"Background color",getSubmenuItems:()=>Ao(e,Ot(e),"background-color"),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellbordercolor",{icon:"cell-border-color",text:"Border color",getSubmenuItems:()=>Ao(e,_t(e),"border-color"),onSetup:t.onSetupCellOrRow})),n("tablecaption",{icon:"table-caption",text:"Table caption",command:"mceTableToggleCaption",onSetup:t.onSetupTableWithCaption}),n("tablerowheader",{text:"Row header",icon:"table-top-header",command:"mceTableRowType",onAction:Ro(e),onSetup:t.onSetupTableRowHeaders}),n("tablecolheader",{text:"Column header",icon:"table-left-header",command:"mceTableColType",onAction:Oo(e),onSetup:t.onSetupTableRowHeaders})})(e,t),((e,t)=>{e.ui.registry.addMenuButton("table",{tooltip:"Table",icon:"table",onSetup:xl(e),fetch:e=>e("inserttable | cell row column | advtablesort | tableprops deletetable")});const o=t=>()=>e.execCommand(t),l=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addButton(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})},n=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addToggleButton(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})};l("tableprops",{tooltip:"Table properties",command:"mceTableProps",icon:"table",onSetup:t.onSetupTable}),l("tabledelete",{tooltip:"Delete table",command:"mceTableDelete",icon:"table-delete-table",onSetup:t.onSetupTable}),l("tablecellprops",{tooltip:"Cell properties",command:"mceTableCellProps",icon:"table-cell-properties",onSetup:t.onSetupCellOrRow}),l("tablemergecells",{tooltip:"Merge cells",command:"mceTableMergeCells",icon:"table-merge-cells",onSetup:t.onSetupMergeable}),l("tablesplitcells",{tooltip:"Split cell",command:"mceTableSplitCells",icon:"table-split-cells",onSetup:t.onSetupUnmergeable}),l("tableinsertrowbefore",{tooltip:"Insert row before",command:"mceTableInsertRowBefore",icon:"table-insert-row-above",onSetup:t.onSetupCellOrRow}),l("tableinsertrowafter",{tooltip:"Insert row after",command:"mceTableInsertRowAfter",icon:"table-insert-row-after",onSetup:t.onSetupCellOrRow}),l("tabledeleterow",{tooltip:"Delete row",command:"mceTableDeleteRow",icon:"table-delete-row",onSetup:t.onSetupCellOrRow}),l("tablerowprops",{tooltip:"Row properties",command:"mceTableRowProps",icon:"table-row-properties",onSetup:t.onSetupCellOrRow}),l("tableinsertcolbefore",{tooltip:"Insert column before",command:"mceTableInsertColBefore",icon:"table-insert-column-before",onSetup:t.onSetupColumn("onFirst")}),l("tableinsertcolafter",{tooltip:"Insert column after",command:"mceTableInsertColAfter",icon:"table-insert-column-after",onSetup:t.onSetupColumn("onLast")}),l("tabledeletecol",{tooltip:"Delete column",command:"mceTableDeleteCol",icon:"table-delete-column",onSetup:t.onSetupColumn("onAny")}),l("tablecutrow",{tooltip:"Cut row",command:"mceTableCutRow",icon:"cut-row",onSetup:t.onSetupCellOrRow}),l("tablecopyrow",{tooltip:"Copy row",command:"mceTableCopyRow",icon:"duplicate-row",onSetup:t.onSetupCellOrRow}),l("tablepasterowbefore",{tooltip:"Paste row before",command:"mceTablePasteRowBefore",icon:"paste-row-before",onSetup:t.onSetupPasteable(Cl)}),l("tablepasterowafter",{tooltip:"Paste row after",command:"mceTablePasteRowAfter",icon:"paste-row-after",onSetup:t.onSetupPasteable(Cl)}),l("tablecutcol",{tooltip:"Cut column",command:"mceTableCutCol",icon:"cut-column",onSetup:t.onSetupColumn("onAny")}),l("tablecopycol",{tooltip:"Copy column",command:"mceTableCopyCol",icon:"duplicate-column",onSetup:t.onSetupColumn("onAny")}),l("tablepastecolbefore",{tooltip:"Paste column before",command:"mceTablePasteColBefore",icon:"paste-column-before",onSetup:t.onSetupPasteableColumn(vl,"onFirst")}),l("tablepastecolafter",{tooltip:"Paste column after",command:"mceTablePasteColAfter",icon:"paste-column-after",onSetup:t.onSetupPasteableColumn(vl,"onLast")}),l("tableinsertdialog",{tooltip:"Insert table",command:"mceInsertTableDialog",icon:"table",onSetup:xl(e)});const r=xo(At(e));0!==r.length&&e.queryCommandSupported("mceTableToggleClass")&&e.ui.registry.addMenuButton("tableclass",{icon:"table-classes",tooltip:"Table styles",fetch:To(e,r,"tableclass",t=>e.execCommand("mceTableToggleClass",!1,t)),onSetup:t.onSetupTable});const a=xo(xt(e));0!==a.length&&e.queryCommandSupported("mceTableCellToggleClass")&&e.ui.registry.addMenuButton("tablecellclass",{icon:"table-cell-classes",tooltip:"Cell styles",fetch:To(e,a,"tablecellclass",t=>e.execCommand("mceTableCellToggleClass",!1,t)),onSetup:t.onSetupCellOrRow}),e.queryCommandSupported("mceTableApplyCellStyle")&&(e.ui.registry.addMenuButton("tablecellvalign",{icon:"vertical-align",tooltip:"Vertical align",fetch:To(e,no,"tablecellverticalalign",vo(e,"vertical-align")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellborderwidth",{icon:"border-width",tooltip:"Border width",fetch:To(e,pt(e),"tablecellborderwidth",vo(e,"border-width")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellborderstyle",{icon:"border-style",tooltip:"Border style",fetch:To(e,bt(e),"tablecellborderstyle",vo(e,"border-style")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellbackgroundcolor",{icon:"cell-background-color",tooltip:"Background color",fetch:t=>t(Ao(e,Ot(e),"background-color")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellbordercolor",{icon:"cell-border-color",tooltip:"Border color",fetch:t=>t(Ao(e,_t(e),"border-color")),onSetup:t.onSetupCellOrRow})),n("tablecaption",{tooltip:"Table caption",icon:"table-caption",command:"mceTableToggleCaption",onSetup:t.onSetupTableWithCaption}),n("tablerowheader",{tooltip:"Row header",icon:"table-top-header",command:"mceTableRowType",onAction:Ro(e),onSetup:t.onSetupTableRowHeaders}),n("tablecolheader",{tooltip:"Column header",icon:"table-left-header",command:"mceTableColType",onAction:Oo(e),onSetup:t.onSetupTableColumnHeaders})})(e,t),(e=>{const t=Rt(e);t.length>0&&e.ui.registry.addContextToolbar("table",{predicate:t=>e.dom.is(t,"table")&&e.getBody().contains(t)&&e.dom.isEditable(t.parentNode),items:t,scope:"node",position:"node"})})(e)})}();
|
|
4
|
+
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=l=e,(n=String).prototype.isPrototypeOf(o)||(null===(r=l.constructor)||void 0===r?void 0:r.name)===n.name)?"string":t;var o,l,n,r})(t)===e,o=e=>t=>typeof t===e,l=t("string"),n=t("array"),r=o("boolean"),a=e=>undefined===e;const s=e=>!(e=>null==e)(e),c=o("function"),i=o("number"),m=()=>{},d=e=>()=>e,u=e=>e,p=(e,t)=>e===t;function b(e,...t){return(...o)=>{const l=t.concat(o);return e.apply(null,l)}}const g=e=>{e()},h=d(!1),f=d(!0);class y{constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return s(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}y.singletonNone=new y(!1);const w=Object.keys,S=Object.hasOwnProperty,C=(e,t)=>{const o=w(e);for(let l=0,n=o.length;l<n;l++){const n=o[l];t(e[n],n)}},v=(e,t)=>{const o={};var l;return((e,t,o,l)=>{C(e,(e,n)=>{(t(e,n)?o:l)(e,n)})})(e,t,(l=o,(e,t)=>{l[t]=e}),m),o},x=e=>w(e).length,T=(e,t)=>_(e,t)?y.from(e[t]):y.none(),_=(e,t)=>S.call(e,t),A=(e,t)=>_(e,t)&&void 0!==e[t]&&null!==e[t],R=Array.prototype.indexOf,O=Array.prototype.push,D=(e,t)=>((e,t)=>R.call(e,t))(e,t)>-1,I=(e,t)=>{for(let o=0,l=e.length;o<l;o++)if(t(e[o],o))return!0;return!1},N=(e,t)=>{const o=[];for(let l=0;l<e;l++)o.push(t(l));return o},k=(e,t)=>{const o=e.length,l=new Array(o);for(let n=0;n<o;n++){const o=e[n];l[n]=t(o,n)}return l},M=(e,t)=>{for(let o=0,l=e.length;o<l;o++)t(e[o],o)},P=(e,t)=>{const o=[];for(let l=0,n=e.length;l<n;l++){const n=e[l];t(n,l)&&o.push(n)}return o},E=(e,t,o)=>(M(e,(e,l)=>{o=t(o,e,l)}),o),B=(e,t)=>((e,t,o)=>{for(let l=0,n=e.length;l<n;l++){const n=e[l];if(t(n,l))return y.some(n);if(o(n,l))break}return y.none()})(e,t,h),F=(e,t)=>(e=>{const t=[];for(let o=0,l=e.length;o<l;++o){if(!n(e[o]))throw new Error("Arr.flatten item "+o+" was not an array, input: "+e);O.apply(t,e[o])}return t})(k(e,t)),j=(e,t)=>{for(let o=0,l=e.length;o<l;++o)if(!0!==t(e[o],o))return!1;return!0},q=(e,t)=>t>=0&&t<e.length?y.some(e[t]):y.none(),L=(e,t)=>{for(let o=0;o<e.length;o++){const l=t(e[o],o);if(l.isSome())return l}return y.none()},H=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},V={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return H(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return H(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return H(o)},fromDom:H,fromPoint:(e,t,o)=>y.from(e.dom.elementFromPoint(t,o)).map(H)},$=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},W=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,z=(e,t)=>e.dom===t.dom,U=$;"undefined"!=typeof window?window:Function("return this;")();const G=e=>e.dom.nodeName.toLowerCase(),K=e=>e.dom.nodeType,J=e=>t=>K(t)===e,Q=J(1),X=J(3),Y=J(9),Z=J(11),ee=e=>t=>Q(t)&&G(t)===e,te=e=>Y(e)?e:V.fromDom(e.dom.ownerDocument),oe=e=>y.from(e.dom.parentNode).map(V.fromDom),le=e=>y.from(e.dom.nextSibling).map(V.fromDom),ne=e=>k(e.dom.childNodes,V.fromDom),re=c(Element.prototype.attachShadow)&&c(Node.prototype.getRootNode)?e=>V.fromDom(e.dom.getRootNode()):te,ae=e=>V.fromDom(e.dom.host),se=e=>{const t=X(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=re(e);return Z(o=t)&&s(o.dom.host)?y.some(t):y.none();var o})(V.fromDom(t)).fold(()=>o.body.contains(t),(l=se,n=ae,e=>l(n(e))));var l,n};var ce=(e,t,o,l,n)=>e(o,l)?y.some(o):c(n)&&n(o)?y.none():t(o,l,n);const ie=(e,t,o)=>{let l=e.dom;const n=c(o)?o:h;for(;l.parentNode;){l=l.parentNode;const e=V.fromDom(l);if(t(e))return y.some(e);if(n(e))break}return y.none()},me=(e,t,o)=>ie(e,e=>$(e,t),o),de=(e,t)=>(e=>B(e.dom.childNodes,e=>{return o=V.fromDom(e),$(o,t);var o}).map(V.fromDom))(e),ue=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return W(o)?y.none():y.from(o.querySelector(e)).map(V.fromDom)})(t,e),pe=(e,t,o)=>ce((e,t)=>$(e,t),me,e,t,o),be=(e,t=!1)=>{return se(e)?e.dom.isContentEditable:(o=e,pe(o,"[contenteditable]")).fold(d(t),e=>"true"===ge(e));var o},ge=e=>e.dom.contentEditable,he=e=>t=>z(t,(e=>V.fromDom(e.getBody()))(e)),fe=e=>/^\d+(\.\d+)?$/.test(e)?e+"px":e,ye=e=>V.fromDom(e.selection.getStart()),we=(e,t)=>{let o=[];return M(ne(e),e=>{t(e)&&(o=o.concat([e])),o=o.concat(we(e,t))}),o},Se=(e,t)=>(e=>P(ne(e),e=>$(e,t)))(e),Ce=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return W(o)?[]:k(o.querySelectorAll(e),V.fromDom)})(t,e),ve=(e,t,o)=>{if(!(l(o)||r(o)||i(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},xe=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Te=(e,t)=>y.from(xe(e,t)),_e=(e,t)=>{e.dom.removeAttribute(t)},Ae=(e,t,o=p)=>e.exists(e=>o(e,t)),Re=(e,t,o)=>e.isSome()&&t.isSome()?y.some(o(e.getOrDie(),t.getOrDie())):y.none(),Oe=(e,t)=>((e,t)=>""===t||e.length>=t.length&&e.substr(0,0+t.length)===t)(e,t),De=(Ie=/^\s+|\s+$/g,e=>e.replace(Ie,""));var Ie;const Ne=e=>e.length>0,ke=(e,t=10)=>{const o=parseInt(e,t);return isNaN(o)?y.none():y.some(o)},Me=e=>void 0!==e.style&&c(e.style.getPropertyValue),Pe=(e,t)=>{const o=e.dom,l=window.getComputedStyle(o).getPropertyValue(t);return""!==l||se(e)?l:Ee(o,t)},Ee=(e,t)=>Me(e)?e.style.getPropertyValue(t):"",Be=(e,t)=>{const o=e.dom,l=Ee(o,t);return y.from(l).filter(e=>e.length>0)},Fe=(e,t,o=0)=>Te(e,t).map(e=>parseInt(e,10)).getOr(o),je=(e,t)=>qe(e,t,f),qe=(e,t,o)=>F(ne(e),e=>$(e,t)?o(e)?[e]:[]:qe(e,t,o)),Le=["tfoot","thead","tbody","colgroup"],He=(e,t,o)=>({element:e,rowspan:t,colspan:o}),Ve=(e,t,o)=>({element:e,cells:t,section:o}),$e=(e,t)=>pe(e,"table",t),We=e=>je(e,"tr"),ze=e=>$e(e).fold(d([]),e=>Se(e,"colgroup")),Ue=e=>oe(e).map(e=>{const t=G(e);return(e=>D(Le,e))(t)?t:"tbody"}).getOr("tbody"),Ge=e=>Te(e,"data-snooker-locked-cols").bind(e=>y.from(e.match(/\d+/g))).map(e=>((e,t)=>{const o={};for(let l=0,n=e.length;l<n;l++){const n=e[l];o[String(n)]=t(n,l)}return o})(e,f)),Ke=(e,t)=>e+","+t,Je=e=>{const t={},o=[];var l;const n=(l=e,q(l,0)).map(e=>e.element).bind($e).bind(Ge).getOr({});let r=0,a=0,s=0;const{pass:c,fail:i}=((e,t)=>{const o=[],l=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];(t(r)?o:l).push(r)}return{pass:o,fail:l}})(e,e=>"colgroup"===e.section);M(i,e=>{const l=[];M(e.cells,e=>{let o=0;for(;void 0!==t[Ke(s,o)];)o++;const r=A(n,o.toString()),c=((e,t,o,l,n,r)=>({element:e,rowspan:t,colspan:o,row:l,column:n,isLocked:r}))(e.element,e.rowspan,e.colspan,s,o,r);for(let l=0;l<e.colspan;l++)for(let n=0;n<e.rowspan;n++){const e=o+l,r=Ke(s+n,e);t[r]=c,a=Math.max(a,e+1)}l.push(c)}),r++,o.push(Ve(e.element,l,e.section)),s++});const{columns:m,colgroups:d}=(e=>q(e,e.length-1))(c).map(e=>{const t=(e=>{const t={};let o=0;return M(e.cells,e=>{const l=e.colspan;N(l,n=>{const r=o+n;t[r]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,l,r)}),o+=l}),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,((e,t)=>{const o=[];return C(e,(e,l)=>{o.push(t(e,l))}),o})(t,u));return{colgroups:[o],columns:t}}).getOrThunk(()=>({colgroups:[],columns:{}})),p=((e,t)=>({rows:e,columns:t}))(r,a);return{grid:p,access:t,all:o,columns:m,colgroups:d}},Qe=e=>{const t=(e=>{const t=We(e);return((e,t)=>k(e,e=>{if("colgroup"===G(e)){const t=k((e=>$(e,"colgroup")?Se(e,"col"):F(ze(e),e=>Se(e,"col")))(e),e=>{const t=Fe(e,"span",1);return He(e,1,t)});return Ve(e,t,"colgroup")}{const o=k((e=>je(e,"th,td"))(e),e=>{const t=Fe(e,"rowspan",1),o=Fe(e,"colspan",1);return He(e,t,o)});return Ve(e,o,t(e))}}))([...ze(e),...t],Ue)})(e);return Je(t)},Xe=(e,t,o)=>y.from(e.access[Ke(t,o)]),Ye=(e,t,o)=>{const l=((e,t)=>{const o=F(e.all,e=>e.cells);return P(o,t)})(e,e=>o(t,e.element));return l.length>0?y.some(l[0]):y.none()},Ze=(e,t)=>y.from(e.columns[t]);var et=tinymce.util.Tools.resolve("tinymce.util.Tools");const tt=(e,t,o)=>{const l=e.select("td,th",t);let n;for(let t=0;t<l.length;t++){const r=e.getStyle(l[t],o);if(a(n)&&(n=r),n!==r)return""}return n},ot=(e,t,o)=>{et.each("left center right".split(" "),l=>{l!==o&&e.formatter.remove("align"+l,{},t)}),o&&e.formatter.apply("align"+o,{},t)},lt=(e,t,o)=>{e.dispatch("TableModified",{...o,table:t})},nt=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?y.none():y.some(t)})(e).getOr(t))(Pe(e,t),o),rt=e=>((e,t)=>{const o=e.dom,l=o.getBoundingClientRect().width||o.offsetWidth;return"border-box"===t?l:((e,t,o,l)=>t-nt(e,`padding-${o}`,0)-nt(e,`padding-${l}`,0)-nt(e,`border-${o}-width`,0)-nt(e,`border-${l}-width`,0))(e,l,"left","right")})(e,"content-box");var at=tinymce.util.Tools.resolve("tinymce.Env");const st=N(5,e=>{const t=`${e+1}px`;return{title:t,value:t}}),ct=k(["None","Solid","Dotted","Dashed","Double","Groove","Ridge","Inset","Outset","Hidden"],e=>({title:e,value:e.toLowerCase()})),it="100%",mt=e=>{var t;const o=e.dom,l=null!==(t=o.getParent(e.selection.getStart(),o.isBlock))&&void 0!==t?t:e.getBody();return rt(V.fromDom(l))+"px"},dt=e=>t=>t.options.get(e),ut=dt("table_sizing_mode"),pt=dt("table_border_widths"),bt=dt("table_border_styles"),gt=dt("table_cell_advtab"),ht=dt("table_row_advtab"),ft=dt("table_advtab"),yt=dt("table_cell_inputs"),wt=dt("table_row_inputs"),St=dt("table_inputs"),Ct=dt("table_grid"),vt=dt("table_style_by_css"),xt=dt("table_cell_class_list"),Tt=dt("table_row_class_list"),_t=dt("table_class_list"),At=dt("table_toolbar"),Rt=dt("table_contextmenu"),Ot=dt("table_contextmenu_flatten"),Dt=dt("table_row_contextmenu"),It=dt("table_column_contextmenu"),Nt=dt("table_cell_contextmenu"),kt=dt("table_background_color_map"),Mt=dt("table_border_color_map"),Pt=e=>"fixed"===ut(e),Et=e=>"responsive"===ut(e),Bt=e=>{const t=e.options,o=t.get("table_default_styles");return t.isSet("table_default_styles")?o:((e,t)=>Et(e)||!vt(e)?t:Pt(e)?{...t,width:mt(e)}:{...t,width:it})(e,o)},Ft=e=>{const t=e.options,o=t.get("table_default_attributes");return t.isSet("table_default_attributes")?o:((e,t)=>Et(e)||vt(e)?t:Pt(e)?{...t,width:mt(e)}:{...t,width:it})(e,o)},jt=e=>e.options.isSet("table_contextmenu"),qt=e=>Ot(e),Lt=e=>e.options.isSet("table_row_contextmenu"),Ht=e=>e.options.isSet("table_column_contextmenu"),Vt=e=>e.options.isSet("table_cell_contextmenu"),$t=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Wt=(e,t,o)=>((e,t,o)=>{const l=Ye(e,t,z),n=Ye(e,o,z);return l.bind(e=>n.map(t=>{return o=e,l=t,{startRow:Math.min(o.row,l.row),startCol:Math.min(o.column,l.column),finishRow:Math.max(o.row+o.rowspan-1,l.row+l.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,l.column+l.colspan-1)};var o,l}))})(e,t,o).bind(t=>((e,t)=>{let o=!0;const l=b($t,t);for(let n=t.startRow;n<=t.finishRow;n++)for(let r=t.startCol;r<=t.finishCol;r++)o=o&&Xe(e,n,r).exists(l);return o?y.some(t):y.none()})(e,t)),zt=Qe,Ut=(e,t)=>{oe(e).each(o=>{o.dom.insertBefore(t.dom,e.dom)})},Gt=(e,t)=>{le(e).fold(()=>{oe(e).each(e=>{Kt(e,t)})},e=>{Ut(e,t)})},Kt=(e,t)=>{e.dom.appendChild(t.dom)},Jt=(e,t)=>{M(t,(o,l)=>{const n=0===l?e:t[l-1];Gt(n,o)})},Qt=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Xt=(e=>{const t=t=>e(t)?y.from(t.dom.nodeValue):y.none();return{get:o=>{if(!e(o))throw new Error("Can only get text value of a text node");return t(o).getOr("")},getOption:t,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(X);var Yt=["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"];const Zt=(e,t,o,l)=>{const n=t(e,o);return r=(o,l)=>{const n=t(e,l);return eo(e,o,n)},a=n,((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(l,(e,t)=>{a=r(a,e)}),a;var r,a},eo=(e,t,o)=>t.bind(t=>o.filter(b(e.eq,t))),to={up:d({selector:me,closest:pe,predicate:ie,all:(e,t)=>{const o=c(t)?t:h;let l=e.dom;const n=[];for(;null!==l.parentNode&&void 0!==l.parentNode;){const e=l.parentNode,t=V.fromDom(e);if(n.push(t),!0===o(t))break;l=e}return n}}),down:d({selector:Ce,predicate:we}),styles:d({get:Pe,getRaw:Be,set:(e,t,o)=>{((e,t,o)=>{if(!l(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Me(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},remove:(e,t)=>{((e,t)=>{Me(e)&&e.style.removeProperty(t)})(e.dom,t),Ae(Te(e,"style").map(De),"")&&_e(e,"style")}}),attrs:d({get:xe,set:(e,t,o)=>{ve(e.dom,t,o)},remove:_e,copyTo:(e,t)=>{((e,t)=>{const o=e.dom;C(t,(e,t)=>{ve(o,t,e)})})(t,E(e.dom.attributes,(e,t)=>(e[t.name]=t.value,e),{}))}}),insert:d({before:Ut,after:Gt,afterAll:Jt,append:Kt,appendAll:(e,t)=>{M(t,t=>{Kt(e,t)})},prepend:(e,t)=>{(e=>(e=>{const t=e.dom.childNodes;return y.from(t[0]).map(V.fromDom)})(e))(e).fold(()=>{Kt(e,t)},o=>{e.dom.insertBefore(t.dom,o.dom)})},wrap:(e,t)=>{Ut(e,t),Kt(t,e)}}),remove:d({unwrap:e=>{const t=ne(e);t.length>0&&Jt(e,t),Qt(e)},remove:Qt}),create:d({nu:V.fromTag,clone:e=>V.fromDom(e.dom.cloneNode(!1)),text:V.fromText}),query:d({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:e=>y.from(e.dom.previousSibling).map(V.fromDom),nextSibling:le}),property:d({children:ne,name:G,parent:oe,document:e=>te(e).dom,isText:X,isComment:e=>8===K(e)||"#comment"===G(e),isElement:Q,isSpecial:e=>{const t=G(e);return D(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>Q(e)?Te(e,"lang"):y.none(),getText:e=>Xt.get(e),setText:(e,t)=>Xt.set(e,t),isBoundary:e=>!!Q(e)&&("body"===G(e)||D(Yt,G(e))),isEmptyTag:e=>!!Q(e)&&D(["br","img","hr","input"],G(e)),isNonEditable:e=>Q(e)&&"false"===xe(e,"contenteditable")}),eq:z,is:U},oo=e=>me(e,"table"),lo=(e,t,o)=>ue(e,t).bind(t=>ue(e,o).bind(e=>{return(o=oo,l=[t,e],((e,t,o)=>o.length>0?((e,t,o,l)=>l(e,t,o[0],o.slice(1)))(e,t,o,Zt):y.none())(to,(e,t)=>o(t),l)).map(o=>({first:t,last:e,table:o}));var o,l})),no=e=>k(e,V.fromDom),ro="data-mce-selected",ao="data-mce-first-selected",so="data-mce-last-selected",co={selected:ro,selectedSelector:"td["+ro+"],th["+ro+"]",firstSelected:ao,firstSelectedSelector:"td["+ao+"],th["+ao+"]",lastSelected:so,lastSelectedSelector:"td["+so+"],th["+so+"]"},io=e=>(t,o)=>{const l=G(t),n="col"===l||"colgroup"===l?$e(r=t).bind(e=>((e,t)=>((e,t)=>{const o=Ce(e,t);return o.length>0?y.some(o):y.none()})(e,t))(e,co.firstSelectedSelector)).fold(d(r),e=>e[0]):t;var r;return pe(n,e,o)},mo=io("th,td,caption"),uo=io("th,td"),po=e=>no(e.model.table.getSelectedCells()),bo=(e,t)=>{const o=uo(e),l=o.bind(e=>$e(e)).map(e=>We(e));return Re(o,l,(e,o)=>P(o,o=>I(no(o.dom.cells),o=>"1"===xe(o,t)||z(o,e)))).getOr([])},go=[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}],ho=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,fo=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,yo=e=>{return(t=e,Oe(t,"#")?(e=>e.substring(1))(t):t).toUpperCase();var t},wo=e=>{const t=e.toString(16);return(1===t.length?"0"+t:t).toUpperCase()},So=e=>{return t=wo(e.red)+wo(e.green)+wo(e.blue),{value:yo(t)};var t},Co=/^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/i,vo=/^\s*rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?(?:\.\d+)?)\s*\)\s*$/i,xo=(e,t,o,l)=>({red:e,green:t,blue:o,alpha:l}),To=(e,t,o,l)=>{const n=parseInt(e,10),r=parseInt(t,10),a=parseInt(o,10),s=parseFloat(l);return xo(n,r,a,s)},_o=e=>{if("transparent"===e)return y.some(xo(0,0,0,0));const t=Co.exec(e);if(null!==t)return y.some(To(t[1],t[2],t[3],"1"));const o=vo.exec(e);return null!==o?y.some(To(o[1],o[2],o[3],o[4])):y.none()},Ao=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},Ro=(e,t,o)=>l=>{const n=(e=>{const t=Ao(y.none()),o=()=>t.get().each(e);return{clear:()=>{o(),t.set(y.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{o(),t.set(y.some(e))}}})(e=>e.unbind()),r=!Ne(o),a=()=>{const a=po(e),s=l=>e.formatter.match(t,{value:o},l.dom,r);r?(l.setActive(!I(a,s)),n.set(e.formatter.formatChanged(t,e=>l.setActive(!e),!0))):(l.setActive(j(a,s)),n.set(e.formatter.formatChanged(t,l.setActive,!1,{value:o})))};return e.initialized?a():e.on("init",a),n.clear},Oo=e=>A(e,"menu"),Do=e=>k(e,e=>{const t=e.text||e.title||"";return Oo(e)?{text:t,items:Do(e.menu)}:{text:t,value:e.value}}),Io=e=>e.length?y.some(Do([{text:"Select...",value:"mce-no-match"},...e])):y.none(),No=(e,t,o,l)=>k(t,t=>{const n=t.text||t.title;return Oo(t)?{type:"nestedmenuitem",text:n,getSubmenuItems:()=>No(e,t.menu,o,l)}:{text:n,type:"togglemenuitem",onAction:()=>l(t.value),onSetup:Ro(e,o,t.value)}}),ko=(e,t)=>o=>{e.execCommand("mceTableApplyCellStyle",!1,{[t]:o})},Mo=e=>F(e,e=>Oo(e)?[{...e,menu:Mo(e.menu)}]:Ne(e.value)?[e]:[]),Po=(e,t)=>{if(0===t.length)return"";const o=new Set(t);return e.split("|").map(e=>e.trim()).map(e=>0===e.length?[]:e.split(/\s+/).filter(e=>o.has(e))).filter(e=>e.length>0).map(e=>e.join(" ")).join(" | ")},Eo=(e,t)=>{const o=e.split("|").map(e=>e.trim()).filter(e=>e.length>0),l=[],n=e=>{e.length>0&&l.push(e.join(" "))};return M(o,e=>{const o=e.split(/\s+/).filter(e=>e.length>0);let l=[];M(o,e=>{const o=t[e];if(void 0===o)l.push(e);else{if(0===o.length)return;{const e=o.split("|").map(e=>e.trim()).filter(e=>e.length>0);1===e.length?l=l.concat(e[0].split(/\s+/).filter(e=>e.length>0)):(n(l),l=[],M(e,e=>{n(e.split(/\s+/).filter(e=>e.length>0))}))}}}),n(l)}),l.join(" | ")},Bo=(e,t,o,l)=>n=>n(No(e,t,o,l)),Fo=(e,t,o)=>{const l=k(t,e=>{return{text:e.title,value:"#"+(o=e.value,(t=o,(e=>ho.test(e)||fo.test(e))(t)?y.some({value:yo(t)}):y.none()).orThunk(()=>_o(o).map(So)).getOrThunk(()=>{const e=document.createElement("canvas");e.height=1,e.width=1;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height),t.fillStyle="#FFFFFF",t.fillStyle=o,t.fillRect(0,0,1,1);const l=t.getImageData(0,0,1,1).data,n=l[0],r=l[1],a=l[2],s=l[3];return So(xo(n,r,a,s))})).value,type:"choiceitem"};var t,o});return[{type:"fancymenuitem",fancytype:"colorswatch",initData:{colors:l.length>0?l:void 0,allowCustomColors:!1},onAction:t=>{const l="remove"===t.value?"":t.value;e.execCommand("mceTableApplyCellStyle",!1,{[o]:l})}}]},jo=e=>()=>{const t="header"===e.queryCommandValue("mceTableRowType")?"body":"header";e.execCommand("mceTableRowType",!1,{type:t})},qo=e=>()=>{const t="th"===e.queryCommandValue("mceTableColType")?"td":"th";e.execCommand("mceTableColType",!1,{type:t})},Lo=[{name:"width",type:"input",label:"Width",tooltip:"Cell width in pixels or percentage (e.g., 50px or 10%)."},{name:"height",type:"input",label:"Height",tooltip:"Row height in pixels (e.g., 20px). If the height change does not apply to the row, remove the table height in Table Properties and try again."},{name:"backgroundcolor",type:"colorinput",label:"Background color",tooltip:"Background color of the cell."},{name:"celltype",type:"listbox",label:"Cell type",tooltip:"Select the type of cell to apply formatting or styling to.",items:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{name:"scope",type:"listbox",label:"Scope",tooltip:"Defines the scope of the header cell to specify its relationship to rows or columns.",items:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{name:"halign",type:"listbox",label:"Horizontal align",tooltip:"Horizontal alignment of the cell content.",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{name:"valign",type:"listbox",label:"Vertical align",tooltip:"Vertical alignment of the cell content.",items:go}],Ho=e=>{const t=yt(e).split(" "),o=Lo.concat((e=>Io(xt(e)).map(e=>({name:"class",type:"listbox",label:"Class",items:e})))(e).toArray());return o.filter(e=>"name"in e&&t.includes(e.name)).sort((e,o)=>{const l="name"in e?e.name:"",n="name"in o?o.name:"";return t.indexOf(l)-t.indexOf(n)})},Vo=e=>`Style of the outer border of the ${e}.`,$o=e=>{switch(e){case"table":return"Color of the border for the entire table and individual cells.";case"row":case"cell":return`Color of the outer border of the ${e}.`}},Wo=e=>{switch(e){case"table":case"row":return;case"cell":return"Width of the outer border of the cell."}},zo=(e,t)=>{const o=Bt(e)["border-style"],l=bt(e).some(e=>"none"===e.value),n=[{name:"borderstyle",type:"listbox",label:"Border style",tooltip:Vo(t),items:(o||l?[]:[{text:"None",value:"none"}]).concat(Do(bt(e)))},{name:"bordercolor",type:"colorinput",label:"Border color",tooltip:$o(t)}],r={name:"borderwidth",type:"input",label:"Border width",tooltip:Wo(t)};return{title:"Border",name:"advanced",items:"cell"===t?[r].concat(n):n}},Uo=(e,t)=>{const o=e.dom;return{setAttrib:(e,l)=>{o.setAttrib(t,e,l)},setStyle:(e,l)=>{o.setStyle(t,e,l)},setFormat:(o,l)=>{""===l?e.formatter.remove(o,{value:null},t,!0):e.formatter.apply(o,{value:l},t)}}},Go=ee("th"),Ko=(e,t)=>e&&t?"sectionCells":e?"section":"cells",Jo=e=>{const t=k(e,e=>(e=>{const t="thead"===e.section,o=Ae((e=>{const t=P(e,e=>Go(e.element));return 0===t.length?y.some("td"):t.length===e.length?y.some("th"):y.none()})(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:Ko(t,o)}:{type:"body"}})(e).type),o=D(t,"header"),l=D(t,"footer");if(o||l){const e=D(t,"body");return!o||e||l?o||e||!l?y.none():y.some("footer"):y.some("header")}return y.some("body")},Qo=(e,t)=>L(e.all,e=>B(e.cells,e=>z(t,e.element))),Xo=(e,t,o)=>{const l=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(o);return t})(k(t.selection,t=>{return(l=t,((e,t,o=h)=>o(t)?y.none():D(e,G(t))?y.some(t):me(t,e.join(","),e=>$(e,"table")||o(e)))(["td","th"],l,n)).bind(t=>Qo(e,t)).filter(o);var l,n})).map(e=>({...e,elementRect:e.element.dom.getBoundingClientRect()}));return n=l,l.length>0?y.some(n):y.none();var n},Yo=(e,t)=>Xo(e,t,f),Zo=(e,t)=>j(t,t=>((e,t)=>Qo(e,t).exists(e=>!e.isLocked))(e,t)),el=(e,t)=>((e,t)=>t.mergable)(0,t).filter(t=>Zo(e,t.cells)),tl=(e,t)=>((e,t)=>t.unmergable)(0,t).filter(t=>Zo(e,t)),ol=((e=>{if(!n(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};M(e,(l,r)=>{const a=w(l);if(1!==a.length)throw new Error("one and only one name per case");const s=a[0],c=l[s];if(void 0!==o[s])throw new Error("duplicate key detected:"+s);if("cata"===s)throw new Error("cannot have a case named cata (sorry)");if(!n(c))throw new Error("case arguments must be an array");t.push(s),o[s]=(...o)=>{const l=o.length;if(l!==c.length)throw new Error("Wrong number of arguments to case "+s+". Expected "+c.length+" ("+c+"), got "+l);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const l=w(e);if(t.length!==l.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+l.join(","));if(!j(t,e=>D(l,e)))throw new Error("Not all branches were specified when using match. Specified: "+l.join(", ")+"\nRequired: "+t.join(", "));return e[s].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:s,params:o})}}}})})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}]),(e,t)=>{const o=Qe(e);return Yo(o,t).bind(e=>{const t=e[e.length-1],l=e[0].row,n=t.row+t.rowspan,r=o.all.slice(l,n);return Jo(r)}).getOr("")}),ll=e=>{return Oe(e,"rgb")?_o(t=e).map(So).map(e=>"#"+e.value).getOr(t):e;var t},nl=e=>{const t=V.fromDom(e);return{borderwidth:Be(t,"border-width").getOr(""),borderstyle:Be(t,"border-style").getOr(""),bordercolor:Be(t,"border-color").map(ll).getOr(""),backgroundcolor:Be(t,"background-color").map(ll).getOr("")}},rl=e=>{const t=e[0],o=e.slice(1);return M(o,e=>{M(w(t),o=>{C(e,(e,l)=>{const n=t[o];""!==n&&o===l&&n!==e&&(t[o]="class"===o?"mce-no-match":"")})})}),t},al=(e,t,o,l)=>B(e,e=>!a(o.formatter.matchNode(l,t+e))).getOr(""),sl=b(al,["left","center","right"],"align"),cl=b(al,["top","middle","bottom"],"valign"),il=e=>$e(V.fromDom(e)).map(t=>{const o={selection:no(e.cells)};return ol(t,o)}).getOr(""),ml=(e,t)=>{if(!t||"double"!==t)return e;const o=parseFloat(e);return void 0!==o&&(0===o||o>=3)?e:"3px"},dl=(e,t)=>{const o=Qe(e),l=(e=>F(e.all,e=>e.cells))(o),n=P(l,e=>I(t,t=>z(e.element,t)));return k(n,e=>({element:e.element.dom,column:Ze(o,e.column).map(e=>e.element.dom)}))},ul=(e,t,o,l)=>{const n=l.getData();l.close(),e.undoManager.transact(()=>{((e,t,o,l)=>{const n=v(l,(e,t)=>o[t]!==e);x(n)>0&&t.length>=1&&$e(t[0]).each(o=>{const r=dl(o,t),a=x(v(n,(e,t)=>"scope"!==t&&"celltype"!==t))>0,s=_(n,"celltype");(a||_(n,"scope"))&&((e,t,o,l)=>{const n=1===t.length,r=new Set;M(t,t=>{const a=t.element,s=n?f:l,c=Uo(e,a);if(((e,t,o,l)=>{l("scope")&&e.setAttrib("scope",o.scope),l("class")&&"mce-no-match"!==o.class&&e.setAttrib("class",o.class),l("width")&&t.setStyle("width",fe(o.width))})(c,t.column.map(t=>Uo(e,t)).getOr(c),o,s),gt(e)&&((e,t,o)=>{if(o("backgroundcolor")&&e.setFormat("tablecellbackgroundcolor",t.backgroundcolor),o("bordercolor")&&e.setFormat("tablecellbordercolor",t.bordercolor),o("borderstyle")&&e.setFormat("tablecellborderstyle",t.borderstyle),o("borderwidth")||"double"===t.borderstyle){const o=ml(t.borderwidth,t.borderstyle);e.setFormat("tablecellborderwidth",fe(o))}})(c,o,s),s("height")){const t=a.parentElement;null===t||r.has(t)||(r.add(t),e.dom.setStyle(t,"height",fe(o.height)),l("height")&&Array.from(t.cells).forEach(t=>e.dom.setStyle(t,"height",null)))}l("halign")&&ot(e,a,o.halign),l("valign")&&((e,t,o)=>{et.each("top middle bottom".split(" "),l=>{l!==o&&e.formatter.remove("valign"+l,{},t)}),o&&e.formatter.apply("valign"+o,{},t)})(e,a,o.valign)})})(e,r,l,b(_,n)),s&&((e,t)=>{e.execCommand("mceTableCellType",!1,{type:t.celltype,no_events:!0})})(e,l),lt(e,o.dom,{structure:s,style:a})})})(e,t,o,n),e.focus()})},pl=e=>{const t=po(e);if(0===t.length)return;const o=((e,t)=>{const o=$e(t[0]).map(o=>k(dl(o,t),t=>((e,t,o,l)=>{const n=e.dom,r=l.getOr(t),a=t.parentElement;return{width:(c=r,i="width",n.getStyle(c,i)||n.getAttrib(c,i)),height:a?n.getStyle(a,"height")||n.getAttrib(a,"height"):"",scope:n.getAttrib(t,"scope"),celltype:(s=t,s.nodeName.toLowerCase()),class:n.getAttrib(t,"class",""),halign:sl(e,t),valign:cl(e,t),...o?nl(t):{}};var s,c,i})(e,t.element,gt(e),t.column)));return rl(o.getOrDie())})(e,t),l={type:"tabpanel",tabs:[{title:"General",name:"general",items:Ho(e)},zo(e,"cell")]},n={type:"panel",items:[{type:"grid",columns:2,items:Ho(e)}]};e.windowManager.open({title:"Cell Properties",size:"normal",body:gt(e)?l:n,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:o,onSubmit:b(ul,e,t,o)})},bl=[{type:"listbox",name:"type",label:"Row type",tooltip:"Select the type of row to apply formatting or styling to.",items:[{text:"Header",value:"header"},{text:"Body",value:"body"},{text:"Footer",value:"footer"}]},{type:"listbox",name:"align",label:"Alignment",tooltip:"Alignment of the content within the cells in the row.",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{name:"backgroundcolor",type:"colorinput",label:"Background color",tooltip:"Changes the background color of all cells in the row, except for those set individually through Cell Properties."}],gl=e=>{const t=wt(e).split(" "),o=bl.concat((e=>Io(Tt(e)).map(e=>({name:"class",type:"listbox",label:"Class",items:e})))(e).toArray());return o.filter(e=>"name"in e&&t.includes(e.name)).sort((e,o)=>{const l="name"in e?e.name:"",n="name"in o?o.name:"";return t.indexOf(l)-t.indexOf(n)})},hl=(e,t,o,l)=>{const n=l.getData();l.close(),e.undoManager.transact(()=>{((e,t,o,l)=>{const n=v(l,(e,t)=>o[t]!==e);if(x(n)>0){const o=_(n,"type"),r=!o||x(n)>1;r&&((e,t,o,l)=>{const n=1===t.length?f:l;M(t,t=>{const r=Uo(e,t);((e,t,o)=>{o("class")&&"mce-no-match"!==t.class&&e.setAttrib("class",t.class)})(r,o,n),ht(e)&&((e,t,o)=>{o("backgroundcolor")&&e.setStyle("background-color",t.backgroundcolor),o("bordercolor")&&e.setStyle("border-color",t.bordercolor),o("borderstyle")&&e.setStyle("border-style",t.borderstyle)})(r,o,n),l("align")&&ot(e,t,o.align)})})(e,t,l,b(_,n)),o&&((e,t)=>{e.execCommand("mceTableRowType",!1,{type:t.type,no_events:!0})})(e,l),$e(V.fromDom(t[0])).each(t=>lt(e,t.dom,{structure:o,style:r}))}})(e,t,o,n),e.focus()})},fl=e=>{const t=bo(ye(e),co.selected);if(0===t.length)return;const o=k(t,t=>((e,t,o)=>({class:e.dom.getAttrib(t,"class",""),type:il(t),align:sl(e,t),...o?nl(t):{}}))(e,t.dom,ht(e))),l=rl(o),n={type:"tabpanel",tabs:[{title:"General",name:"general",items:gl(e)},zo(e,"row")]},r={type:"panel",items:[{type:"grid",columns:2,items:gl(e)}]};e.windowManager.open({title:"Row Properties",size:"normal",body:ht(e)?n:r,buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:l,onSubmit:b(hl,e,k(t,e=>e.dom),l)})},yl=(e,t,o)=>{const l=o?[{type:"input",name:"cols",label:"Cols",inputMode:"numeric"},{type:"input",name:"rows",label:"Rows",inputMode:"numeric"}]:[],n=[{type:"input",name:"width",label:"Width",tooltip:"Total width of the table in pixels or percentage (e.g., 500px or 100%)."},{type:"input",name:"height",label:"Height",tooltip:"Total height of the table in pixels (e.g., 500px)."},{type:"input",name:"cellspacing",label:"Cell spacing",inputMode:"numeric",tooltip:"The space between individual table cells, measured in pixels (e.g., 5px)."},{type:"input",name:"cellpadding",label:"Cell padding",inputMode:"numeric",tooltip:"Inner text padding in cells, e.g., 0px 5px (where 0px is vertical padding, and 5px is horizontal padding)."},{type:"input",name:"border",label:"Border width",tooltip:"Width of the border for the entire table and individual cells."},{name:"backgroundcolor",type:"colorinput",label:"Background color",tooltip:"Changes the background color of all cells in the table, except for those set individually through Cell Properties or Row Properties."},{type:"label",label:"Caption",name:"caption",tooltip:"Adds a caption above the table, which can be edited.",items:[{type:"checkbox",name:"caption",label:"Show caption"}]},{type:"listbox",name:"align",label:"Alignment",tooltip:"Alignment of the entire table (not the content within the table).",items:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}];t.length>0&&n.push({name:"class",type:"listbox",label:"Class",items:t});const r=St(e).split(" "),a=n.filter(e=>"name"in e&&r.includes(e.name)).sort((e,t)=>{const o="name"in e?e.name:"",l="name"in t?t.name:"";return r.indexOf(o)-r.indexOf(l)});return l.concat(a)},wl=(e,t,o,n)=>{if("TD"===t.tagName||"TH"===t.tagName)l(o)&&s(n)?e.setStyle(t,o,n):e.setStyles(t,o);else if(t.children)for(let l=0;l<t.children.length;l++)wl(e,t.children[l],o,n)},Sl=(e,t,o,l)=>{const n=e.dom,r=l.getData(),s=v(r,(e,t)=>o[t]!==e);l.close(),e.undoManager.transact(()=>{if(!t){const o=ke(r.cols).getOr(1),l=ke(r.rows).getOr(1);e.execCommand("mceInsertTable",!1,{rows:l,columns:o}),t=uo(ye(e),he(e)).bind(t=>$e(t,he(e))).map(e=>e.dom).getOrDie()}if(x(s)>0){const o={border:_(s,"border"),bordercolor:_(s,"bordercolor"),cellpadding:_(s,"cellpadding")};((e,t,o,l)=>{const n=e.dom,r={},s={},c=vt(e),i=ft(e),m=0===parseFloat(o.border),d=ml(o.border,o.borderstyle);if(a(o.class)||"mce-no-match"===o.class||(r.class=o.class),s.height=fe(o.height),c?s.width=fe(o.width):n.getAttrib(t,"width")&&(r.width=(e=>e?e.replace(/px$/,""):"")(o.width)),c?(m?(r.border=0,s["border-width"]=""):(s["border-width"]=fe(d),r.border=1),s["border-spacing"]=fe(o.cellspacing)):(r.border=m?0:d,r.cellpadding=o.cellpadding,r.cellspacing=o.cellspacing),c&&t.children){const e={};if(m?e["border-width"]="":l.border&&(e["border-width"]=fe(d)),l.cellpadding&&(e.padding=fe(o.cellpadding)),i&&l.bordercolor&&(e["border-color"]=o.bordercolor),!(e=>{for(const t in e)if(S.call(e,t))return!1;return!0})(e))for(let o=0;o<t.children.length;o++)wl(n,t.children[o],e)}if(i){const e=o;s["background-color"]=e.backgroundcolor,s["border-color"]=e.bordercolor,s["border-style"]=e.borderstyle}n.setStyles(t,{...Bt(e),...s}),n.setAttribs(t,{...Ft(e),...r})})(e,t,r,o);const l=n.select("caption",t)[0];(l&&!r.caption||!l&&r.caption)&&e.execCommand("mceTableToggleCaption"),ot(e,t,r.align)}if(e.focus(),e.addVisual(),x(s)>0){const o=_(s,"caption"),l=!o||x(s)>1;lt(e,t,{structure:o,style:l})}})},Cl=(e,t)=>{const o=e.dom;let l,n=((e,t)=>{const o=Bt(e),l=Ft(e),n=t?{borderstyle:T(o,"border-style").getOr(""),bordercolor:ll(T(o,"border-color").getOr("")),backgroundcolor:ll(T(o,"background-color").getOr(""))}:{};return{height:"",width:"100%",cellspacing:"",cellpadding:"",caption:!1,class:"",align:"",border:"",...o,...l,...n,...(()=>{const t=o["border-width"];return vt(e)&&t?{border:t}:T(l,"border").fold(()=>({}),e=>({border:e}))})(),...{...T(o,"border-spacing").or(T(l,"cellspacing")).fold(()=>({}),e=>({cellspacing:e})),...T(o,"border-padding").or(T(l,"cellpadding")).fold(()=>({}),e=>({cellpadding:e}))}}})(e,ft(e));t?(n.cols="1",n.rows="1",ft(e)&&(n.borderstyle="",n.bordercolor="",n.backgroundcolor="")):(l=o.getParent(e.selection.getStart(),"table",e.getBody()),l?n=((e,t,o)=>{const l=e.dom,n=vt(e)?l.getStyle(t,"border-spacing")||l.getAttrib(t,"cellspacing"):l.getAttrib(t,"cellspacing")||l.getStyle(t,"border-spacing"),r=vt(e)?tt(l,t,"padding")||l.getAttrib(t,"cellpadding"):l.getAttrib(t,"cellpadding")||tt(l,t,"padding");return{width:l.getStyle(t,"width")||l.getAttrib(t,"width"),height:l.getStyle(t,"height")||l.getAttrib(t,"height"),cellspacing:null!=n?n:"",cellpadding:null!=r?r:"",border:((t,o)=>{const l=Be(V.fromDom(o),"border-width");return vt(e)&&l.isSome()?l.getOr(""):t.getAttrib(o,"border")||tt(e.dom,o,"border-width")||tt(e.dom,o,"border")||""})(l,t),caption:!!l.select("caption",t)[0],class:l.getAttrib(t,"class",""),align:sl(e,t),...o?nl(t):{}}})(e,l,ft(e)):ft(e)&&(n.borderstyle="",n.bordercolor="",n.backgroundcolor=""));const r=Io(_t(e));r.isSome()&&n.class&&(n.class=n.class.replace(/\s*mce\-item\-table\s*/g,""));const a={type:"grid",columns:2,items:yl(e,r.getOr([]),t)},s=ft(e)?{type:"tabpanel",tabs:[{title:"General",name:"general",items:[a]},zo(e,"table")]}:{type:"panel",items:[a]};e.windowManager.open({title:"Table Properties",size:"normal",body:s,onSubmit:b(Sl,e,l,n),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:n})},vl=e=>{C({mceTableProps:b(Cl,e,!1),mceTableRowProps:b(fl,e),mceTableCellProps:b(pl,e),mceInsertTableDialog:b(Cl,e,!0)},(t,o)=>e.addCommand(o,()=>{return o=t,void((e=>{return(t=e,o=ee("table"),ce((e,t)=>t(e),ie,t,o,void 0)).forall(be);var t,o})(ye(e))&&o());var o}))},xl=u,Tl=e=>{const t=(e,t)=>Te(e,t).exists(e=>parseInt(e,10)>1);return e.length>0&&j(e,e=>t(e,"rowspan")||t(e,"colspan"))?y.some(e):y.none()},_l=(e,t,o)=>{return t.length<=1?y.none():(l=e,n=o.firstSelectedSelector,r=o.lastSelectedSelector,lo(l,n,r).bind(e=>{const t=e=>z(l,e),o="thead,tfoot,tbody,table",n=me(e.first,o,t),r=me(e.last,o,t);return n.bind(t=>r.bind(o=>z(t,o)?((e,t,o)=>{const l=zt(e);return Wt(l,t,o)})(e.table,e.first,e.last):y.none()))})).map(e=>({bounds:e,cells:t}));var l,n,r},Al=e=>{const t=Ao(y.none()),o=Ao([]);let l=y.none();const n=ee("caption"),r=e=>l.forall(t=>!t[e]),a=()=>mo(ye(e),he(e)).bind(t=>{return o=Re($e(t),mo((e=>V.fromDom(e.selection.getEnd()))(e),he(e)).bind($e),(o,l)=>z(o,l)?n(t)?y.some((e=>({element:e,mergable:y.none(),unmergable:y.none(),selection:[e]}))(t)):y.some(((e,t,o)=>({element:o,mergable:_l(t,e,co),unmergable:Tl(e),selection:xl(e)}))(po(e),o,t)):y.none()),o.bind(u);var o}),s=e=>$e(e.element).map(t=>{const o=Qe(t),l=Yo(o,e).getOr([]),n=E(l,(e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:el(o,e).isSome(),unmergeable:tl(o,e).isSome(),locked:n}}),c=()=>{t.set((e=>{let t,o=!1;return(...l)=>(o||(o=!0,t=e.apply(null,l)),t)})(a)()),l=t.get().bind(s),M(o.get(),g)},i=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(P(o.get(),t=>t!==e))}),m=(o,l)=>i(()=>t.get().fold(()=>{o.setEnabled(!1)},t=>{o.setEnabled(!l(t)&&e.selection.isEditable())})),d=(o,l,n)=>i(()=>t.get().fold(()=>{o.setEnabled(!1),o.setActive(!1)},t=>{o.setEnabled(!l(t)&&e.selection.isEditable()),o.setActive(n(t))})),p=e=>l.exists(t=>t.locked[e]),b=(t,o)=>l=>d(l,e=>n(e.element),()=>e.queryCommandValue(t)===o),f=b("mceTableRowType","header"),w=b("mceTableColType","th");return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>m(e,e=>!1),onSetupCellOrRow:e=>m(e,e=>n(e.element)),onSetupColumn:e=>t=>m(t,t=>n(t.element)||p(e)),onSetupPasteable:e=>t=>m(t,t=>n(t.element)||e().isNone()),onSetupPasteableColumn:(e,t)=>o=>m(o,o=>n(o.element)||e().isNone()||p(t)),onSetupMergeable:e=>m(e,e=>r("mergeable")),onSetupUnmergeable:e=>m(e,e=>r("unmergeable")),resetTargets:c,onSetupTableWithCaption:t=>d(t,h,t=>$e(t.element,he(e)).exists(e=>de(e,"caption").isSome())),onSetupTableRowHeaders:f,onSetupTableColumnHeaders:w,targets:t.get}};var Rl=tinymce.util.Tools.resolve("tinymce.FakeClipboard");const Ol="x-tinymce/dom-table-",Dl=Ol+"rows",Il=Ol+"columns",Nl=e=>{var t;const o=null!==(t=Rl.read())&&void 0!==t?t:[];return L(o,t=>y.from(t.getType(e)))},kl=()=>Nl(Dl),Ml=()=>Nl(Il),Pl=e=>t=>{const o=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",o),o(),()=>{e.off("NodeChange",o)}},El=e=>{const t="tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter";return Lt(e)?Po(t,Dt(e)):t},Bl=e=>{const t="tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter";return Ht(e)?Po(t,It(e)):t},Fl=e=>{const t="tablecellprops tablemergecells tablesplitcells";return Vt(e)?Po(t,Nt(e)):t},jl=e=>t=>{const o=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",o),o(),()=>{e.off("NodeChange",o)}};e.add("table",e=>{const t=Al(e);(e=>{const t=e.options.register;t("table_border_widths",{processor:"object[]",default:st}),t("table_border_styles",{processor:"object[]",default:ct}),t("table_cell_advtab",{processor:"boolean",default:!0}),t("table_row_advtab",{processor:"boolean",default:!0}),t("table_advtab",{processor:"boolean",default:!0}),t("table_cell_inputs",{processor:"string",default:"width height celltype scope halign valign backgroundcolor class"}),t("table_row_inputs",{processor:"string",default:"type align backgroundcolor class"}),t("table_inputs",{processor:"string",default:"width height cellspacing cellpadding border backgroundcolor caption align class"}),t("table_grid",{processor:"boolean",default:!at.deviceType.isTouch()}),t("table_cell_class_list",{processor:"object[]",default:[]}),t("table_row_class_list",{processor:"object[]",default:[]}),t("table_class_list",{processor:"object[]",default:[]}),t("table_toolbar",{processor:"string",default:"tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"}),t("table_contextmenu",{processor:"string[]",default:[]}),t("table_contextmenu_flatten",{processor:"boolean",default:!1}),t("table_row_contextmenu",{processor:"string[]",default:[]}),t("table_column_contextmenu",{processor:"string[]",default:[]}),t("table_cell_contextmenu",{processor:"string[]",default:[]}),t("table_background_color_map",{processor:"object[]",default:[]}),t("table_border_color_map",{processor:"object[]",default:[]})})(e),vl(e),((e,t)=>{const o=t=>()=>e.execCommand(t),l=(t,l)=>!!e.queryCommandSupported(l.command)&&(e.ui.registry.addMenuItem(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)}),!0),n=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addToggleMenuItem(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})},r=t=>{e.execCommand("mceInsertTable",!1,{rows:t.numRows,columns:t.numColumns})},a=[l("tableinsertrowbefore",{text:"Insert row before",icon:"table-insert-row-above",command:"mceTableInsertRowBefore",onSetup:t.onSetupCellOrRow}),l("tableinsertrowafter",{text:"Insert row after",icon:"table-insert-row-after",command:"mceTableInsertRowAfter",onSetup:t.onSetupCellOrRow}),l("tabledeleterow",{text:"Delete row",icon:"table-delete-row",command:"mceTableDeleteRow",onSetup:t.onSetupCellOrRow}),l("tablerowprops",{text:"Row properties",icon:"table-row-properties",command:"mceTableRowProps",onSetup:t.onSetupCellOrRow}),l("tablecutrow",{text:"Cut row",icon:"cut-row",command:"mceTableCutRow",onSetup:t.onSetupCellOrRow}),l("tablecopyrow",{text:"Copy row",icon:"duplicate-row",command:"mceTableCopyRow",onSetup:t.onSetupCellOrRow}),l("tablepasterowbefore",{text:"Paste row before",icon:"paste-row-before",command:"mceTablePasteRowBefore",onSetup:t.onSetupPasteable(kl)}),l("tablepasterowafter",{text:"Paste row after",icon:"paste-row-after",command:"mceTablePasteRowAfter",onSetup:t.onSetupPasteable(kl)})],s=[l("tableinsertcolumnbefore",{text:"Insert column before",icon:"table-insert-column-before",command:"mceTableInsertColBefore",onSetup:t.onSetupColumn("onFirst")}),l("tableinsertcolumnafter",{text:"Insert column after",icon:"table-insert-column-after",command:"mceTableInsertColAfter",onSetup:t.onSetupColumn("onLast")}),l("tabledeletecolumn",{text:"Delete column",icon:"table-delete-column",command:"mceTableDeleteCol",onSetup:t.onSetupColumn("onAny")}),l("tablecutcolumn",{text:"Cut column",icon:"cut-column",command:"mceTableCutCol",onSetup:t.onSetupColumn("onAny")}),l("tablecopycolumn",{text:"Copy column",icon:"duplicate-column",command:"mceTableCopyCol",onSetup:t.onSetupColumn("onAny")}),l("tablepastecolumnbefore",{text:"Paste column before",icon:"paste-column-before",command:"mceTablePasteColBefore",onSetup:t.onSetupPasteableColumn(Ml,"onFirst")}),l("tablepastecolumnafter",{text:"Paste column after",icon:"paste-column-after",command:"mceTablePasteColAfter",onSetup:t.onSetupPasteableColumn(Ml,"onLast")})],i=[l("tablecellprops",{text:"Cell properties",icon:"table-cell-properties",command:"mceTableCellProps",onSetup:t.onSetupCellOrRow}),l("tablemergecells",{text:"Merge cells",icon:"table-merge-cells",command:"mceTableMergeCells",onSetup:t.onSetupMergeable}),l("tablesplitcells",{text:"Split cell",icon:"table-split-cells",command:"mceTableSplitCells",onSetup:t.onSetupUnmergeable})];Ct(e)?e.ui.registry.addNestedMenuItem("inserttable",{text:"Table",icon:"table",getSubmenuItems:()=>[{type:"fancymenuitem",fancytype:"inserttable",onAction:r}],onSetup:jl(e)}):e.ui.registry.addMenuItem("inserttable",{text:"Table",icon:"table",onAction:o("mceInsertTableDialog"),onSetup:jl(e)}),e.ui.registry.addMenuItem("inserttabledialog",{text:"Insert table",icon:"table",onAction:o("mceInsertTableDialog"),onSetup:jl(e)}),l("tableprops",{text:"Table properties",onSetup:t.onSetupTable,command:"mceTableProps"}),l("deletetable",{text:"Delete table",icon:"table-delete-table",onSetup:t.onSetupTable,command:"mceTableDelete"});const m="tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter",u=Lt(e)?Po(m,Dt(e)):m;D(a,!0)&&u.length>0&&e.ui.registry.addNestedMenuItem("row",{type:"nestedmenuitem",text:"Row",getSubmenuItems:d(u)});const p="tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter",b=Ht(e)?Po(p,It(e)):p;D(s,!0)&&b.length>0&&e.ui.registry.addNestedMenuItem("column",{type:"nestedmenuitem",text:"Column",getSubmenuItems:d(b)});const g="tablecellprops tablemergecells tablesplitcells",h=Vt(e)?Po(g,Nt(e)):g;D(i,!0)&&h.length>0&&e.ui.registry.addNestedMenuItem("cell",{type:"nestedmenuitem",text:"Cell",getSubmenuItems:d(h)}),e.ui.registry.addContextMenu("table",{update:()=>{t.resetTargets();const o=t.targets().fold(d(""),e=>"caption"===G(e.element)?"tableprops deletetable":"cell row column | advtablesort | tableprops deletetable"),l=jt(e)?Po(o,Rt(e)):o;return qt(e)&&l.length>0?Eo(l,{cell:h,row:u,column:b}):l}});const f=Mo(_t(e));0!==f.length&&e.queryCommandSupported("mceTableToggleClass")&&e.ui.registry.addNestedMenuItem("tableclass",{icon:"table-classes",text:"Table styles",getSubmenuItems:()=>No(e,f,"tableclass",t=>e.execCommand("mceTableToggleClass",!1,t)),onSetup:t.onSetupTable});const y=Mo(xt(e));0!==y.length&&e.queryCommandSupported("mceTableCellToggleClass")&&e.ui.registry.addNestedMenuItem("tablecellclass",{icon:"table-cell-classes",text:"Cell styles",getSubmenuItems:()=>No(e,y,"tablecellclass",t=>e.execCommand("mceTableCellToggleClass",!1,t)),onSetup:t.onSetupCellOrRow}),e.queryCommandSupported("mceTableApplyCellStyle")&&(e.ui.registry.addNestedMenuItem("tablecellvalign",{icon:"vertical-align",text:"Vertical align",getSubmenuItems:()=>No(e,go,"tablecellverticalalign",ko(e,"vertical-align")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellborderwidth",{icon:"border-width",text:"Border width",getSubmenuItems:()=>No(e,pt(e),"tablecellborderwidth",ko(e,"border-width")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellborderstyle",{icon:"border-style",text:"Border style",getSubmenuItems:()=>No(e,bt(e),"tablecellborderstyle",ko(e,"border-style")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellbackgroundcolor",{icon:"cell-background-color",text:"Background color",getSubmenuItems:()=>Fo(e,kt(e),"background-color"),onSetup:t.onSetupCellOrRow}),e.ui.registry.addNestedMenuItem("tablecellbordercolor",{icon:"cell-border-color",text:"Border color",getSubmenuItems:()=>Fo(e,Mt(e),"border-color"),onSetup:t.onSetupCellOrRow})),n("tablecaption",{icon:"table-caption",text:"Table caption",command:"mceTableToggleCaption",onSetup:t.onSetupTableWithCaption}),n("tablerowheader",{text:"Row header",icon:"table-top-header",command:"mceTableRowType",onAction:jo(e),onSetup:t.onSetupTableRowHeaders}),n("tablecolheader",{text:"Column header",icon:"table-left-header",command:"mceTableColType",onAction:qo(e),onSetup:t.onSetupTableRowHeaders})})(e,t),((e,t)=>{e.ui.registry.addMenuButton("table",{tooltip:"Table",icon:"table",onSetup:Pl(e),fetch:t=>t((e=>{const t="inserttable | cell row column | advtablesort | tableprops deletetable",o=jt(e)?Po(t,["inserttable",...Rt(e)]):t;return qt(e)&&o.length>0?Eo(o,{cell:Fl(e),row:El(e),column:Bl(e)}):o})(e))});const o=t=>()=>e.execCommand(t),l=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addButton(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})},n=(t,l)=>{e.queryCommandSupported(l.command)&&e.ui.registry.addToggleButton(t,{...l,onAction:c(l.onAction)?l.onAction:o(l.command)})};l("tableprops",{tooltip:"Table properties",command:"mceTableProps",icon:"table",onSetup:t.onSetupTable}),l("tabledelete",{tooltip:"Delete table",command:"mceTableDelete",icon:"table-delete-table",onSetup:t.onSetupTable}),l("tablecellprops",{tooltip:"Cell properties",command:"mceTableCellProps",icon:"table-cell-properties",onSetup:t.onSetupCellOrRow}),l("tablemergecells",{tooltip:"Merge cells",command:"mceTableMergeCells",icon:"table-merge-cells",onSetup:t.onSetupMergeable}),l("tablesplitcells",{tooltip:"Split cell",command:"mceTableSplitCells",icon:"table-split-cells",onSetup:t.onSetupUnmergeable}),l("tableinsertrowbefore",{tooltip:"Insert row before",command:"mceTableInsertRowBefore",icon:"table-insert-row-above",onSetup:t.onSetupCellOrRow}),l("tableinsertrowafter",{tooltip:"Insert row after",command:"mceTableInsertRowAfter",icon:"table-insert-row-after",onSetup:t.onSetupCellOrRow}),l("tabledeleterow",{tooltip:"Delete row",command:"mceTableDeleteRow",icon:"table-delete-row",onSetup:t.onSetupCellOrRow}),l("tablerowprops",{tooltip:"Row properties",command:"mceTableRowProps",icon:"table-row-properties",onSetup:t.onSetupCellOrRow}),l("tableinsertcolbefore",{tooltip:"Insert column before",command:"mceTableInsertColBefore",icon:"table-insert-column-before",onSetup:t.onSetupColumn("onFirst")}),l("tableinsertcolafter",{tooltip:"Insert column after",command:"mceTableInsertColAfter",icon:"table-insert-column-after",onSetup:t.onSetupColumn("onLast")}),l("tabledeletecol",{tooltip:"Delete column",command:"mceTableDeleteCol",icon:"table-delete-column",onSetup:t.onSetupColumn("onAny")}),l("tablecutrow",{tooltip:"Cut row",command:"mceTableCutRow",icon:"cut-row",onSetup:t.onSetupCellOrRow}),l("tablecopyrow",{tooltip:"Copy row",command:"mceTableCopyRow",icon:"duplicate-row",onSetup:t.onSetupCellOrRow}),l("tablepasterowbefore",{tooltip:"Paste row before",command:"mceTablePasteRowBefore",icon:"paste-row-before",onSetup:t.onSetupPasteable(kl)}),l("tablepasterowafter",{tooltip:"Paste row after",command:"mceTablePasteRowAfter",icon:"paste-row-after",onSetup:t.onSetupPasteable(kl)}),l("tablecutcol",{tooltip:"Cut column",command:"mceTableCutCol",icon:"cut-column",onSetup:t.onSetupColumn("onAny")}),l("tablecopycol",{tooltip:"Copy column",command:"mceTableCopyCol",icon:"duplicate-column",onSetup:t.onSetupColumn("onAny")}),l("tablepastecolbefore",{tooltip:"Paste column before",command:"mceTablePasteColBefore",icon:"paste-column-before",onSetup:t.onSetupPasteableColumn(Ml,"onFirst")}),l("tablepastecolafter",{tooltip:"Paste column after",command:"mceTablePasteColAfter",icon:"paste-column-after",onSetup:t.onSetupPasteableColumn(Ml,"onLast")}),l("tableinsertdialog",{tooltip:"Insert table",command:"mceInsertTableDialog",icon:"table",onSetup:Pl(e)});const r=Mo(_t(e));0!==r.length&&e.queryCommandSupported("mceTableToggleClass")&&e.ui.registry.addMenuButton("tableclass",{icon:"table-classes",tooltip:"Table styles",fetch:Bo(e,r,"tableclass",t=>e.execCommand("mceTableToggleClass",!1,t)),onSetup:t.onSetupTable});const a=Mo(xt(e));0!==a.length&&e.queryCommandSupported("mceTableCellToggleClass")&&e.ui.registry.addMenuButton("tablecellclass",{icon:"table-cell-classes",tooltip:"Cell styles",fetch:Bo(e,a,"tablecellclass",t=>e.execCommand("mceTableCellToggleClass",!1,t)),onSetup:t.onSetupCellOrRow}),e.queryCommandSupported("mceTableApplyCellStyle")&&(e.ui.registry.addMenuButton("tablecellvalign",{icon:"vertical-align",tooltip:"Vertical align",fetch:Bo(e,go,"tablecellverticalalign",ko(e,"vertical-align")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellborderwidth",{icon:"border-width",tooltip:"Border width",fetch:Bo(e,pt(e),"tablecellborderwidth",ko(e,"border-width")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellborderstyle",{icon:"border-style",tooltip:"Border style",fetch:Bo(e,bt(e),"tablecellborderstyle",ko(e,"border-style")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellbackgroundcolor",{icon:"cell-background-color",tooltip:"Background color",fetch:t=>t(Fo(e,kt(e),"background-color")),onSetup:t.onSetupCellOrRow}),e.ui.registry.addMenuButton("tablecellbordercolor",{icon:"cell-border-color",tooltip:"Border color",fetch:t=>t(Fo(e,Mt(e),"border-color")),onSetup:t.onSetupCellOrRow})),n("tablecaption",{tooltip:"Table caption",icon:"table-caption",command:"mceTableToggleCaption",onSetup:t.onSetupTableWithCaption}),n("tablerowheader",{tooltip:"Row header",icon:"table-top-header",command:"mceTableRowType",onAction:jo(e),onSetup:t.onSetupTableRowHeaders}),n("tablecolheader",{tooltip:"Column header",icon:"table-left-header",command:"mceTableColType",onAction:qo(e),onSetup:t.onSetupTableColumnHeaders})})(e,t),(e=>{const t=At(e);t.length>0&&e.ui.registry.addContextToolbar("table",{predicate:t=>e.dom.is(t,"table")&&e.getBody().contains(t)&&e.dom.isEditable(t.parentNode),items:t,scope:"node",position:"node"})})(e)})}();
|