@wangeditor-next/editor 5.6.38 → 5.6.40
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/dist/index.js
CHANGED
|
@@ -40006,15 +40006,13 @@
|
|
|
40006
40006
|
this.iconSvg = FULL_WIDTH_SVG;
|
|
40007
40007
|
this.tag = 'button';
|
|
40008
40008
|
}
|
|
40009
|
-
TableFullWidth.prototype.getValue = function (
|
|
40010
|
-
|
|
40011
|
-
|
|
40012
|
-
return false;
|
|
40013
|
-
}
|
|
40014
|
-
return tableNode.width === '100%';
|
|
40009
|
+
TableFullWidth.prototype.getValue = function (_editor) {
|
|
40010
|
+
// 每次点击都执行调整,不需要状态判断
|
|
40011
|
+
return false;
|
|
40015
40012
|
};
|
|
40016
|
-
TableFullWidth.prototype.isActive = function (
|
|
40017
|
-
|
|
40013
|
+
TableFullWidth.prototype.isActive = function (_editor) {
|
|
40014
|
+
// 每次点击都执行调整,不需要状态判断
|
|
40015
|
+
return false;
|
|
40018
40016
|
};
|
|
40019
40017
|
TableFullWidth.prototype.isDisabled = function (editor) {
|
|
40020
40018
|
var selection = editor.selection;
|
|
@@ -40031,14 +40029,63 @@
|
|
|
40031
40029
|
}
|
|
40032
40030
|
return false;
|
|
40033
40031
|
};
|
|
40034
|
-
TableFullWidth.prototype.exec = function (editor,
|
|
40032
|
+
TableFullWidth.prototype.exec = function (editor, _value) {
|
|
40035
40033
|
if (this.isDisabled(editor)) {
|
|
40036
40034
|
return;
|
|
40037
40035
|
}
|
|
40038
|
-
var
|
|
40039
|
-
|
|
40040
|
-
|
|
40041
|
-
|
|
40036
|
+
var tableNode = DomEditor.getSelectedNodeByType(editor, 'table');
|
|
40037
|
+
if (!tableNode) {
|
|
40038
|
+
return;
|
|
40039
|
+
}
|
|
40040
|
+
var _a = tableNode.columnWidths, columnWidths = _a === void 0 ? [] : _a;
|
|
40041
|
+
// 获取当前选中的表格的DOM元素,再查找table-container容器元素,防止文档多表格时,获取到其他表格的容器元素
|
|
40042
|
+
var tableDom = DomEditor.toDOMNode(editor, tableNode);
|
|
40043
|
+
var containerElement = tableDom.querySelector('.table-container');
|
|
40044
|
+
if (!containerElement || columnWidths.length === 0) {
|
|
40045
|
+
// 如果找不到容器或没有列宽信息,则使用原来的逻辑,先使用auto预留以后实现按比例实现缩放功能
|
|
40046
|
+
var props = {
|
|
40047
|
+
width: 'auto',
|
|
40048
|
+
};
|
|
40049
|
+
distExports$1.Transforms.setNodes(editor, props, { mode: 'highest' });
|
|
40050
|
+
return;
|
|
40051
|
+
}
|
|
40052
|
+
var containerWidth = containerElement.clientWidth;
|
|
40053
|
+
var currentTotalWidth = columnWidths.reduce(function (a, b) { return a + b; }, 0);
|
|
40054
|
+
// 计算等比例调整后的列宽
|
|
40055
|
+
var adjustedColumnWidths = columnWidths.map(function (width) {
|
|
40056
|
+
var ratio = width / currentTotalWidth;
|
|
40057
|
+
return Math.floor(ratio * containerWidth);
|
|
40058
|
+
});
|
|
40059
|
+
// 确保最小宽度限制(每列至少10px)
|
|
40060
|
+
var minWidth = 10;
|
|
40061
|
+
var adjustedWithMinWidth = adjustedColumnWidths.map(function (width) { return Math.max(minWidth, width); });
|
|
40062
|
+
// 如果调整后的总宽度超过容器宽度,按比例缩小
|
|
40063
|
+
var adjustedTotalWidth = adjustedWithMinWidth.reduce(function (a, b) { return a + b; }, 0);
|
|
40064
|
+
if (adjustedTotalWidth > containerWidth) {
|
|
40065
|
+
var scaleFactor_1 = containerWidth / adjustedTotalWidth;
|
|
40066
|
+
var finalColumnWidths = adjustedWithMinWidth.map(function (width) { return Math.max(minWidth, Math.floor(width * scaleFactor_1)); });
|
|
40067
|
+
// 应用新的列宽和宽度设置
|
|
40068
|
+
var props = {
|
|
40069
|
+
width: 'auto',
|
|
40070
|
+
columnWidths: finalColumnWidths,
|
|
40071
|
+
};
|
|
40072
|
+
distExports$1.Transforms.setNodes(editor, props, { mode: 'highest' });
|
|
40073
|
+
}
|
|
40074
|
+
else {
|
|
40075
|
+
// 如果调整后的总宽度小于容器宽度,将剩余宽度加到最后一列
|
|
40076
|
+
var finalColumnWidths = __spreadArray([], __read(adjustedWithMinWidth), false);
|
|
40077
|
+
var remainingWidth = containerWidth - adjustedTotalWidth - 1;
|
|
40078
|
+
if (remainingWidth > 0 && finalColumnWidths.length > 0) {
|
|
40079
|
+
// 将剩余宽度加到最后一列
|
|
40080
|
+
finalColumnWidths[finalColumnWidths.length - 1] += remainingWidth;
|
|
40081
|
+
}
|
|
40082
|
+
// 应用新的列宽和宽度设置
|
|
40083
|
+
var props = {
|
|
40084
|
+
width: 'auto',
|
|
40085
|
+
columnWidths: finalColumnWidths,
|
|
40086
|
+
};
|
|
40087
|
+
distExports$1.Transforms.setNodes(editor, props, { mode: 'highest' });
|
|
40088
|
+
}
|
|
40042
40089
|
};
|
|
40043
40090
|
return TableFullWidth;
|
|
40044
40091
|
}());
|
|
@@ -41551,6 +41598,39 @@
|
|
|
41551
41598
|
var hasTable = !!__spreadArray([], __read(tables), false).find(function () { return true; });
|
|
41552
41599
|
return hasTable;
|
|
41553
41600
|
}
|
|
41601
|
+
/**
|
|
41602
|
+
* 检查当前选中的节点是否是受保护的节点类型(不应该被删除的节点)
|
|
41603
|
+
* @param editor editor
|
|
41604
|
+
* @returns 是否是受保护的节点
|
|
41605
|
+
*/
|
|
41606
|
+
function isProtectedNode(editor) {
|
|
41607
|
+
var e_1, _a;
|
|
41608
|
+
// 检查是否是受保护的节点类型
|
|
41609
|
+
var protectedTypes = [
|
|
41610
|
+
'paragraph',
|
|
41611
|
+
'header1', 'header2', 'header3', 'header4', 'header5', 'header6',
|
|
41612
|
+
'blockquote',
|
|
41613
|
+
'list-item',
|
|
41614
|
+
'todo',
|
|
41615
|
+
'divider',
|
|
41616
|
+
];
|
|
41617
|
+
try {
|
|
41618
|
+
for (var protectedTypes_1 = __values(protectedTypes), protectedTypes_1_1 = protectedTypes_1.next(); !protectedTypes_1_1.done; protectedTypes_1_1 = protectedTypes_1.next()) {
|
|
41619
|
+
var type = protectedTypes_1_1.value;
|
|
41620
|
+
if (DomEditor.getSelectedNodeByType(editor, type)) {
|
|
41621
|
+
return true;
|
|
41622
|
+
}
|
|
41623
|
+
}
|
|
41624
|
+
}
|
|
41625
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
41626
|
+
finally {
|
|
41627
|
+
try {
|
|
41628
|
+
if (protectedTypes_1_1 && !protectedTypes_1_1.done && (_a = protectedTypes_1.return)) _a.call(protectedTypes_1);
|
|
41629
|
+
}
|
|
41630
|
+
finally { if (e_1) throw e_1.error; }
|
|
41631
|
+
}
|
|
41632
|
+
return false;
|
|
41633
|
+
}
|
|
41554
41634
|
function withTable(editor) {
|
|
41555
41635
|
var insertBreak = editor.insertBreak, deleteBackward = editor.deleteBackward, deleteForward = editor.deleteForward, deleteFragment = editor.deleteFragment, normalizeNode = editor.normalizeNode, insertData = editor.insertData, handleTab = editor.handleTab, selectAll = editor.selectAll;
|
|
41556
41636
|
var newEditor = editor;
|
|
@@ -41586,7 +41666,8 @@
|
|
|
41586
41666
|
var isTableOnBeforeLocation = isTableLocation(newEditor, before); // before 是否是 table
|
|
41587
41667
|
// 如果前面是 table, 当前是 paragraph ,则不执行删除。否则会删除 table 最后一个 cell
|
|
41588
41668
|
// 兼容了 table 嵌套 p标签元素 selection数组五层的情况 - issues/342
|
|
41589
|
-
|
|
41669
|
+
// 如果前面是 table, 当前是受保护的节点类型,则不执行删除
|
|
41670
|
+
if (!tableCell && isTableOnBeforeLocation && isProtectedNode(newEditor)) {
|
|
41590
41671
|
return;
|
|
41591
41672
|
}
|
|
41592
41673
|
}
|
|
@@ -41646,7 +41727,8 @@
|
|
|
41646
41727
|
if (after) {
|
|
41647
41728
|
var isTableOnAfterLocation = isTableLocation(newEditor, after); // after 是否是 table
|
|
41648
41729
|
// 如果后面是 table, 当前是 paragraph,则不执行删除
|
|
41649
|
-
|
|
41730
|
+
// 如果后面是 table, 当前是受保护的节点类型,则不执行删除
|
|
41731
|
+
if (!tableCell && isTableOnAfterLocation && isProtectedNode(newEditor)) {
|
|
41650
41732
|
return;
|
|
41651
41733
|
}
|
|
41652
41734
|
}
|
|
@@ -41889,7 +41971,13 @@
|
|
|
41889
41971
|
if (displayNoneRegex.test(styleAttr)) {
|
|
41890
41972
|
$cell.remove();
|
|
41891
41973
|
}
|
|
41974
|
+
else {
|
|
41975
|
+
// 删除style属性(保留单元格,只删除样式)
|
|
41976
|
+
$cell.removeAttr('style');
|
|
41977
|
+
}
|
|
41892
41978
|
}
|
|
41979
|
+
// 设置width属性为auto
|
|
41980
|
+
$cell.attr('width', 'auto');
|
|
41893
41981
|
}
|
|
41894
41982
|
// 处理表格单元格中的 <p> 标签(通常来自Word复制)
|
|
41895
41983
|
var $cells = $table.find('td, th');
|