@superdoc-dev/cli 0.2.0-next.35 → 0.2.0-next.36
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 +833 -469
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -101805,9 +101805,9 @@ var init_remark_gfm_CQ3Jg4PR_es = __esm(() => {
|
|
|
101805
101805
|
init_remark_gfm_z_sDF4ss_es();
|
|
101806
101806
|
});
|
|
101807
101807
|
|
|
101808
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
101809
|
-
var
|
|
101810
|
-
__export(
|
|
101808
|
+
// ../../packages/superdoc/dist/chunks/src-De1yZkuR.es.js
|
|
101809
|
+
var exports_src_De1yZkuR_es = {};
|
|
101810
|
+
__export(exports_src_De1yZkuR_es, {
|
|
101811
101811
|
zt: () => defineMark,
|
|
101812
101812
|
z: () => cM,
|
|
101813
101813
|
yt: () => removeAwarenessStates,
|
|
@@ -115653,201 +115653,6 @@ function toTableFailure(code$1, message, details) {
|
|
|
115653
115653
|
}
|
|
115654
115654
|
};
|
|
115655
115655
|
}
|
|
115656
|
-
function resolveTable2(tr, tablePos, tableNode) {
|
|
115657
|
-
if (tableNode && tableNode.type && tableNode.type.name === "table")
|
|
115658
|
-
return tableNode;
|
|
115659
|
-
if (typeof tablePos === "number") {
|
|
115660
|
-
const current = tr.doc.nodeAt(tablePos);
|
|
115661
|
-
if (current && current.type.name === "table")
|
|
115662
|
-
return current;
|
|
115663
|
-
}
|
|
115664
|
-
return null;
|
|
115665
|
-
}
|
|
115666
|
-
function pickTemplateRowForAppend(tableNode, schema) {
|
|
115667
|
-
const RowType = schema.nodes.tableRow;
|
|
115668
|
-
const rows = [];
|
|
115669
|
-
tableNode.descendants((child) => {
|
|
115670
|
-
if (child.type === RowType)
|
|
115671
|
-
rows.push(child);
|
|
115672
|
-
});
|
|
115673
|
-
if (!rows.length)
|
|
115674
|
-
return null;
|
|
115675
|
-
for (let i$1 = rows.length - 1;i$1 >= 0; i$1--) {
|
|
115676
|
-
const r$1 = rows[i$1];
|
|
115677
|
-
if (r$1.content?.content?.some((c$3) => c$3.type.name === "tableCell"))
|
|
115678
|
-
return r$1;
|
|
115679
|
-
}
|
|
115680
|
-
return rows[rows.length - 1];
|
|
115681
|
-
}
|
|
115682
|
-
function extractRowTemplateFormatting(cellNode, schema) {
|
|
115683
|
-
const ParagraphType = schema.nodes.paragraph;
|
|
115684
|
-
let blockType = ParagraphType;
|
|
115685
|
-
let blockAttrs = null;
|
|
115686
|
-
let textMarks = [];
|
|
115687
|
-
const blocks2 = cellNode?.content?.content || [];
|
|
115688
|
-
for (const block of blocks2) {
|
|
115689
|
-
if (block.type === ParagraphType || block.type.name === "heading") {
|
|
115690
|
-
blockType = block.type || ParagraphType;
|
|
115691
|
-
blockAttrs = block.attrs || null;
|
|
115692
|
-
}
|
|
115693
|
-
let foundText = null;
|
|
115694
|
-
block.descendants?.((n) => {
|
|
115695
|
-
if (!foundText && n.isText)
|
|
115696
|
-
foundText = n;
|
|
115697
|
-
});
|
|
115698
|
-
if (foundText) {
|
|
115699
|
-
textMarks = foundText.marks ? Array.from(foundText.marks) : [];
|
|
115700
|
-
break;
|
|
115701
|
-
}
|
|
115702
|
-
}
|
|
115703
|
-
if (!blockType || !blockType.validContent)
|
|
115704
|
-
blockType = ParagraphType;
|
|
115705
|
-
return {
|
|
115706
|
-
blockType,
|
|
115707
|
-
blockAttrs,
|
|
115708
|
-
textMarks
|
|
115709
|
-
};
|
|
115710
|
-
}
|
|
115711
|
-
function buildFormattedCellBlock(schema, value, { blockType, blockAttrs, textMarks }, copyRowStyle = false) {
|
|
115712
|
-
const text5 = typeof value === "string" ? value : value == null ? "" : String(value);
|
|
115713
|
-
const type = blockType || schema.nodes.paragraph;
|
|
115714
|
-
const marks = copyRowStyle ? textMarks || [] : [];
|
|
115715
|
-
if (!text5) {
|
|
115716
|
-
const content3 = marks.length > 0 ? schema.text(ZERO_WIDTH_SPACE, marks) : null;
|
|
115717
|
-
return type.createAndFill(blockAttrs || null, content3);
|
|
115718
|
-
}
|
|
115719
|
-
const textNode = schema.text(text5, marks);
|
|
115720
|
-
return type.createAndFill(blockAttrs || null, textNode);
|
|
115721
|
-
}
|
|
115722
|
-
function buildRowFromTemplateRow({ schema, tableNode, templateRow, values, copyRowStyle = false }) {
|
|
115723
|
-
const RowType = schema.nodes.tableRow;
|
|
115724
|
-
const CellType = schema.nodes.tableCell;
|
|
115725
|
-
const HeaderType = schema.nodes.tableHeader;
|
|
115726
|
-
const totalColumns = TableMap.get(tableNode).width;
|
|
115727
|
-
const byColumns = Array.isArray(values) && values.length === totalColumns;
|
|
115728
|
-
const newCells = [];
|
|
115729
|
-
let columnCursor = 0;
|
|
115730
|
-
templateRow.content.content.forEach((cellNode, cellIndex) => {
|
|
115731
|
-
const isHeaderCell = cellNode.type === HeaderType;
|
|
115732
|
-
const targetCellType = isHeaderCell ? CellType : cellNode.type;
|
|
115733
|
-
const attrs = isHeaderCell ? normalizeHeaderAttrsForBodyCell({ ...cellNode.attrs }) : { ...cellNode.attrs };
|
|
115734
|
-
const formatting = extractRowTemplateFormatting(cellNode, schema);
|
|
115735
|
-
let cellValue = "";
|
|
115736
|
-
if (byColumns) {
|
|
115737
|
-
const span = Math.max(1, attrs.colspan || 1);
|
|
115738
|
-
cellValue = values[columnCursor] ?? "";
|
|
115739
|
-
columnCursor += span;
|
|
115740
|
-
} else
|
|
115741
|
-
cellValue = Array.isArray(values) ? values[cellIndex] ?? "" : "";
|
|
115742
|
-
const content3 = buildFormattedCellBlock(schema, cellValue, formatting, copyRowStyle);
|
|
115743
|
-
const newCell = targetCellType.createAndFill(attrs, content3);
|
|
115744
|
-
if (newCell)
|
|
115745
|
-
newCells.push(newCell);
|
|
115746
|
-
});
|
|
115747
|
-
return RowType.createAndFill(null, newCells);
|
|
115748
|
-
}
|
|
115749
|
-
function insertRowsAtTableEnd({ tr, tablePos, tableNode, rows }) {
|
|
115750
|
-
if (!rows || !rows.length)
|
|
115751
|
-
return;
|
|
115752
|
-
const RowTypeName = "tableRow";
|
|
115753
|
-
let lastRowRelPos = 0;
|
|
115754
|
-
let lastRowNode = null;
|
|
115755
|
-
tableNode.descendants((child, relPos) => {
|
|
115756
|
-
if (child.type.name === RowTypeName) {
|
|
115757
|
-
lastRowRelPos = relPos;
|
|
115758
|
-
lastRowNode = child;
|
|
115759
|
-
}
|
|
115760
|
-
});
|
|
115761
|
-
if (!lastRowNode)
|
|
115762
|
-
return;
|
|
115763
|
-
const lastRowAbsEnd = tablePos + 1 + lastRowRelPos + lastRowNode.nodeSize;
|
|
115764
|
-
const frag = Fragment.fromArray(rows);
|
|
115765
|
-
tr.insert(lastRowAbsEnd, frag);
|
|
115766
|
-
}
|
|
115767
|
-
function insertRowAtIndex({ tr, tablePos, tableNode, sourceRowIndex, insertIndex, schema }) {
|
|
115768
|
-
const sourceRow = tableNode.child(sourceRowIndex);
|
|
115769
|
-
if (!sourceRow)
|
|
115770
|
-
return false;
|
|
115771
|
-
const map$22 = TableMap.get(tableNode);
|
|
115772
|
-
const { width, height } = map$22;
|
|
115773
|
-
const newCells = [];
|
|
115774
|
-
const cellsToExtend = [];
|
|
115775
|
-
const RowType = schema.nodes.tableRow;
|
|
115776
|
-
const CellType = schema.nodes.tableCell;
|
|
115777
|
-
const sourceFormatting = extractRowTemplateFormatting(sourceRow.firstChild, schema);
|
|
115778
|
-
for (let col = 0;col < width; ) {
|
|
115779
|
-
if (insertIndex > 0 && insertIndex < height) {
|
|
115780
|
-
const indexAbove = (insertIndex - 1) * width + col;
|
|
115781
|
-
const indexAtInsert = insertIndex * width + col;
|
|
115782
|
-
if (map$22.map[indexAbove] === map$22.map[indexAtInsert]) {
|
|
115783
|
-
const cellPos = map$22.map[indexAbove];
|
|
115784
|
-
const cell2 = tableNode.nodeAt(cellPos);
|
|
115785
|
-
if (cell2) {
|
|
115786
|
-
const attrs = cell2.attrs;
|
|
115787
|
-
cellsToExtend.push({
|
|
115788
|
-
pos: tablePos + 1 + cellPos,
|
|
115789
|
-
attrs: {
|
|
115790
|
-
...attrs,
|
|
115791
|
-
rowspan: (attrs.rowspan || 1) + 1
|
|
115792
|
-
}
|
|
115793
|
-
});
|
|
115794
|
-
col += attrs.colspan || 1;
|
|
115795
|
-
continue;
|
|
115796
|
-
}
|
|
115797
|
-
}
|
|
115798
|
-
}
|
|
115799
|
-
const sourceMapIndex = sourceRowIndex * width + col;
|
|
115800
|
-
const sourceCellPos = map$22.map[sourceMapIndex];
|
|
115801
|
-
const sourceCell = tableNode.nodeAt(sourceCellPos);
|
|
115802
|
-
if (!sourceCell) {
|
|
115803
|
-
const fallbackCell = sourceRow.firstChild;
|
|
115804
|
-
const content$13 = buildFormattedCellBlock(schema, "", extractRowTemplateFormatting(fallbackCell, schema), true);
|
|
115805
|
-
const newCell$1 = CellType.createAndFill({
|
|
115806
|
-
rowspan: 1,
|
|
115807
|
-
colspan: 1
|
|
115808
|
-
}, content$13);
|
|
115809
|
-
if (newCell$1)
|
|
115810
|
-
newCells.push(newCell$1);
|
|
115811
|
-
col += 1;
|
|
115812
|
-
continue;
|
|
115813
|
-
}
|
|
115814
|
-
const colspan = sourceCell.attrs.colspan || 1;
|
|
115815
|
-
const formatting = extractRowTemplateFormatting(sourceCell, schema);
|
|
115816
|
-
const cellAttrs = {
|
|
115817
|
-
...sourceCell.attrs,
|
|
115818
|
-
rowspan: 1
|
|
115819
|
-
};
|
|
115820
|
-
const content3 = buildFormattedCellBlock(schema, "", formatting, true);
|
|
115821
|
-
const targetCellType = sourceCell.type.name === "tableHeader" ? CellType : sourceCell.type;
|
|
115822
|
-
const normalizedCellAttrs = sourceCell.type.name === "tableHeader" ? normalizeHeaderAttrsForBodyCell(cellAttrs) : cellAttrs;
|
|
115823
|
-
const newCell = targetCellType.createAndFill(normalizedCellAttrs, content3);
|
|
115824
|
-
if (newCell)
|
|
115825
|
-
newCells.push(newCell);
|
|
115826
|
-
col += colspan;
|
|
115827
|
-
}
|
|
115828
|
-
for (const { pos, attrs } of cellsToExtend)
|
|
115829
|
-
tr.setNodeMarkup(pos, null, attrs);
|
|
115830
|
-
let insertPos = tablePos + 1;
|
|
115831
|
-
for (let i$1 = 0;i$1 < insertIndex; i$1++)
|
|
115832
|
-
insertPos += tableNode.child(i$1).nodeSize;
|
|
115833
|
-
if (newCells.length > 0) {
|
|
115834
|
-
const newRow = RowType.createAndFill(null, newCells);
|
|
115835
|
-
if (newRow) {
|
|
115836
|
-
tr.insert(insertPos, newRow);
|
|
115837
|
-
const cursorPos = insertPos + ROW_START_TO_TEXT_OFFSET;
|
|
115838
|
-
tr.setSelection(TextSelection2.create(tr.doc, cursorPos));
|
|
115839
|
-
const firstTextNode = newCells[0].firstChild?.firstChild;
|
|
115840
|
-
if (firstTextNode?.marks?.length)
|
|
115841
|
-
tr.setStoredMarks(firstTextNode.marks);
|
|
115842
|
-
else if (sourceFormatting.textMarks?.length)
|
|
115843
|
-
tr.setStoredMarks(sourceFormatting.textMarks);
|
|
115844
|
-
}
|
|
115845
|
-
} else if (cellsToExtend.length > 0) {
|
|
115846
|
-
const cursorPos = cellsToExtend[0].pos + CELL_TO_TEXT_OFFSET;
|
|
115847
|
-
tr.setSelection(TextSelection2.create(tr.doc, cursorPos));
|
|
115848
|
-
}
|
|
115849
|
-
return true;
|
|
115850
|
-
}
|
|
115851
115656
|
function generateParaId() {
|
|
115852
115657
|
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
115853
115658
|
}
|
|
@@ -115979,6 +115784,47 @@ function removeGridColumnWidth(grid, deleteIndex) {
|
|
|
115979
115784
|
columns: colWidths
|
|
115980
115785
|
});
|
|
115981
115786
|
}
|
|
115787
|
+
function normalizeCellAttrsForSingleCell(attrs) {
|
|
115788
|
+
const currentColwidth = Array.isArray(attrs.colwidth) ? attrs.colwidth : null;
|
|
115789
|
+
const tableCellProperties = { ...attrs.tableCellProperties ?? {} };
|
|
115790
|
+
delete tableCellProperties.gridSpan;
|
|
115791
|
+
delete tableCellProperties.vMerge;
|
|
115792
|
+
return {
|
|
115793
|
+
...attrs,
|
|
115794
|
+
colspan: 1,
|
|
115795
|
+
rowspan: 1,
|
|
115796
|
+
colwidth: currentColwidth && currentColwidth.length > 0 ? [currentColwidth[0] ?? 0] : currentColwidth,
|
|
115797
|
+
tableCellProperties
|
|
115798
|
+
};
|
|
115799
|
+
}
|
|
115800
|
+
function normalizeClonedRowInsertCellAttrs(sourceAttrs, fromHeaderToBody) {
|
|
115801
|
+
const normalizedAttrs = {
|
|
115802
|
+
...sourceAttrs,
|
|
115803
|
+
rowspan: 1
|
|
115804
|
+
};
|
|
115805
|
+
if (fromHeaderToBody && normalizedAttrs.borders == null)
|
|
115806
|
+
delete normalizedAttrs.borders;
|
|
115807
|
+
return normalizedAttrs;
|
|
115808
|
+
}
|
|
115809
|
+
function expandMergedCellIntoSingles({ tr, tablePos, tableNode, cellPos, cellNode, rowIndex, columnIndex, rowspan, colspan, schema }) {
|
|
115810
|
+
const tableStart = tablePos + 1;
|
|
115811
|
+
const map$22 = TableMap.get(tableNode);
|
|
115812
|
+
const resetCell = cellNode.type.create(normalizeCellAttrsForSingleCell(cellNode.attrs), cellNode.content);
|
|
115813
|
+
tr.replaceWith(cellPos, cellPos + cellNode.nodeSize, resetCell);
|
|
115814
|
+
const mapFrom = tr.mapping.maps.length;
|
|
115815
|
+
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--)
|
|
115816
|
+
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
115817
|
+
if (row2 === rowIndex && col === columnIndex)
|
|
115818
|
+
continue;
|
|
115819
|
+
const newCell = schema.nodes.tableCell.createAndFill();
|
|
115820
|
+
let insertRelPos;
|
|
115821
|
+
if (row2 === rowIndex)
|
|
115822
|
+
insertRelPos = map$22.positionAt(rowIndex, columnIndex, tableNode) + resetCell.nodeSize;
|
|
115823
|
+
else
|
|
115824
|
+
insertRelPos = map$22.positionAt(row2, col, tableNode);
|
|
115825
|
+
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
115826
|
+
}
|
|
115827
|
+
}
|
|
115982
115828
|
function isBoundaryEdge(edge) {
|
|
115983
115829
|
return edge === "top" || edge === "bottom" || edge === "left" || edge === "right" || edge === "insideH" || edge === "insideV";
|
|
115984
115830
|
}
|
|
@@ -116168,6 +116014,186 @@ function removeColumnFromTable(tr, tablePos, col) {
|
|
|
116168
116014
|
row2 += rowspan;
|
|
116169
116015
|
}
|
|
116170
116016
|
}
|
|
116017
|
+
function insertRowInTable(tr, tablePos, sourceRowIndex, insertIndex, schema) {
|
|
116018
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
116019
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
116020
|
+
return false;
|
|
116021
|
+
const rowCount = tableNode.childCount;
|
|
116022
|
+
if (rowCount === 0)
|
|
116023
|
+
return false;
|
|
116024
|
+
const map$22 = TableMap.get(tableNode);
|
|
116025
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, rowCount));
|
|
116026
|
+
const boundedSourceRowIndex = Math.max(0, Math.min(sourceRowIndex, rowCount - 1));
|
|
116027
|
+
const sourceRow = tableNode.child(boundedSourceRowIndex);
|
|
116028
|
+
if (!sourceRow)
|
|
116029
|
+
return false;
|
|
116030
|
+
const rowType = schema.nodes.tableRow;
|
|
116031
|
+
const defaultCellType = schema.nodes.tableCell;
|
|
116032
|
+
if (!rowType || !defaultCellType)
|
|
116033
|
+
return false;
|
|
116034
|
+
const newCells = [];
|
|
116035
|
+
const cellsToExtend = [];
|
|
116036
|
+
for (let col = 0;col < map$22.width; ) {
|
|
116037
|
+
if (boundedInsertIndex > 0 && boundedInsertIndex < map$22.height) {
|
|
116038
|
+
const indexAbove = (boundedInsertIndex - 1) * map$22.width + col;
|
|
116039
|
+
const indexAtInsert = boundedInsertIndex * map$22.width + col;
|
|
116040
|
+
if (map$22.map[indexAbove] === map$22.map[indexAtInsert]) {
|
|
116041
|
+
const spanningPos = map$22.map[indexAbove];
|
|
116042
|
+
const spanningCell = tableNode.nodeAt(spanningPos);
|
|
116043
|
+
if (spanningCell) {
|
|
116044
|
+
const spanningAttrs = spanningCell.attrs;
|
|
116045
|
+
const rowspan = spanningAttrs.rowspan || 1;
|
|
116046
|
+
const colspan$1 = spanningAttrs.colspan || 1;
|
|
116047
|
+
cellsToExtend.push({
|
|
116048
|
+
pos: tablePos + 1 + spanningPos,
|
|
116049
|
+
attrs: {
|
|
116050
|
+
...spanningAttrs,
|
|
116051
|
+
rowspan: rowspan + 1
|
|
116052
|
+
}
|
|
116053
|
+
});
|
|
116054
|
+
col += colspan$1;
|
|
116055
|
+
continue;
|
|
116056
|
+
}
|
|
116057
|
+
}
|
|
116058
|
+
}
|
|
116059
|
+
const sourceMapIndex = boundedSourceRowIndex * map$22.width + col;
|
|
116060
|
+
const sourceCellPos = map$22.map[sourceMapIndex];
|
|
116061
|
+
const sourceCell = tableNode.nodeAt(sourceCellPos) ?? sourceRow.firstChild;
|
|
116062
|
+
if (!sourceCell) {
|
|
116063
|
+
col += 1;
|
|
116064
|
+
continue;
|
|
116065
|
+
}
|
|
116066
|
+
const colspan = sourceCell.attrs.colspan || 1;
|
|
116067
|
+
const fromHeaderToBody = sourceCell.type.name === "tableHeader";
|
|
116068
|
+
const newCell = (fromHeaderToBody ? defaultCellType : sourceCell.type).createAndFill(normalizeClonedRowInsertCellAttrs(sourceCell.attrs, fromHeaderToBody));
|
|
116069
|
+
if (newCell)
|
|
116070
|
+
newCells.push(newCell);
|
|
116071
|
+
col += colspan;
|
|
116072
|
+
}
|
|
116073
|
+
for (const { pos, attrs } of cellsToExtend)
|
|
116074
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
116075
|
+
if (newCells.length === 0)
|
|
116076
|
+
return true;
|
|
116077
|
+
const newRow = rowType.createAndFill(null, newCells);
|
|
116078
|
+
if (!newRow)
|
|
116079
|
+
return false;
|
|
116080
|
+
let insertPos = tablePos + 1;
|
|
116081
|
+
for (let row2 = 0;row2 < boundedInsertIndex; row2++)
|
|
116082
|
+
insertPos += tableNode.child(row2).nodeSize;
|
|
116083
|
+
tr.insert(insertPos, newRow);
|
|
116084
|
+
return true;
|
|
116085
|
+
}
|
|
116086
|
+
function addColumnToTableForSplit(tr, tablePos, col, splitRowStart, splitRowEnd) {
|
|
116087
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
116088
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
116089
|
+
return;
|
|
116090
|
+
const map$22 = TableMap.get(tableNode);
|
|
116091
|
+
const tableStart = tablePos + 1;
|
|
116092
|
+
const mapStart = tr.mapping.maps.length;
|
|
116093
|
+
const widenedOutsideSplit = /* @__PURE__ */ new Set;
|
|
116094
|
+
for (let row2 = 0;row2 < map$22.height; row2++) {
|
|
116095
|
+
const index2 = row2 * map$22.width + col;
|
|
116096
|
+
const pos = map$22.map[index2];
|
|
116097
|
+
const cell2 = tableNode.nodeAt(pos);
|
|
116098
|
+
if (!cell2)
|
|
116099
|
+
continue;
|
|
116100
|
+
if (!(row2 >= splitRowStart && row2 < splitRowEnd) && col > 0) {
|
|
116101
|
+
const leftPos = map$22.map[index2 - 1];
|
|
116102
|
+
const leftCell = tableNode.nodeAt(leftPos);
|
|
116103
|
+
if (leftCell && !widenedOutsideSplit.has(leftPos)) {
|
|
116104
|
+
tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + leftPos), null, addColSpan(leftCell.attrs, col - map$22.colCount(leftPos)));
|
|
116105
|
+
widenedOutsideSplit.add(leftPos);
|
|
116106
|
+
}
|
|
116107
|
+
row2 += (cell2.attrs?.rowspan || 1) - 1;
|
|
116108
|
+
continue;
|
|
116109
|
+
}
|
|
116110
|
+
if (col > 0 && map$22.map[index2 - 1] === pos) {
|
|
116111
|
+
tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + pos), null, addColSpan(cell2.attrs, col - map$22.colCount(pos)));
|
|
116112
|
+
row2 += (cell2.attrs.rowspan || 1) - 1;
|
|
116113
|
+
} else {
|
|
116114
|
+
const refType = col > 0 ? tableNode.nodeAt(map$22.map[index2 - 1])?.type ?? cell2.type : cell2.type;
|
|
116115
|
+
const cellPos = map$22.positionAt(row2, col, tableNode);
|
|
116116
|
+
tr.insert(tr.mapping.slice(mapStart).map(tableStart + cellPos), refType.createAndFill());
|
|
116117
|
+
row2 += (cell2.attrs?.rowspan || 1) - 1;
|
|
116118
|
+
}
|
|
116119
|
+
}
|
|
116120
|
+
}
|
|
116121
|
+
function insertRowInTableForSplit(tr, tablePos, sourceRowIndex, insertIndex, splitColStart, splitColEnd, schema) {
|
|
116122
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
116123
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
116124
|
+
return false;
|
|
116125
|
+
const rowCount = tableNode.childCount;
|
|
116126
|
+
if (rowCount === 0)
|
|
116127
|
+
return false;
|
|
116128
|
+
const map$22 = TableMap.get(tableNode);
|
|
116129
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, rowCount));
|
|
116130
|
+
const boundedSourceRowIndex = Math.max(0, Math.min(sourceRowIndex, rowCount - 1));
|
|
116131
|
+
const sourceRow = tableNode.child(boundedSourceRowIndex);
|
|
116132
|
+
if (!sourceRow)
|
|
116133
|
+
return false;
|
|
116134
|
+
const rowType = schema.nodes.tableRow;
|
|
116135
|
+
const defaultCellType = schema.nodes.tableCell;
|
|
116136
|
+
if (!rowType || !defaultCellType)
|
|
116137
|
+
return false;
|
|
116138
|
+
const newCells = [];
|
|
116139
|
+
const cellsToExtend = /* @__PURE__ */ new Map;
|
|
116140
|
+
for (let col = 0;col < map$22.width; ) {
|
|
116141
|
+
if (boundedInsertIndex > 0 && boundedInsertIndex < map$22.height) {
|
|
116142
|
+
const indexAbove = (boundedInsertIndex - 1) * map$22.width + col;
|
|
116143
|
+
const indexAtInsert = boundedInsertIndex * map$22.width + col;
|
|
116144
|
+
if (map$22.map[indexAbove] === map$22.map[indexAtInsert]) {
|
|
116145
|
+
const spanningPos = map$22.map[indexAbove];
|
|
116146
|
+
const spanningCell = tableNode.nodeAt(spanningPos);
|
|
116147
|
+
if (spanningCell) {
|
|
116148
|
+
const spanningAttrs = spanningCell.attrs;
|
|
116149
|
+
const rowspan = spanningAttrs.rowspan || 1;
|
|
116150
|
+
const colspan$1 = spanningAttrs.colspan || 1;
|
|
116151
|
+
cellsToExtend.set(tablePos + 1 + spanningPos, {
|
|
116152
|
+
...spanningAttrs,
|
|
116153
|
+
rowspan: rowspan + 1
|
|
116154
|
+
});
|
|
116155
|
+
col += colspan$1;
|
|
116156
|
+
continue;
|
|
116157
|
+
}
|
|
116158
|
+
}
|
|
116159
|
+
}
|
|
116160
|
+
const sourceMapIndex = boundedSourceRowIndex * map$22.width + col;
|
|
116161
|
+
const sourceCellPos = map$22.map[sourceMapIndex];
|
|
116162
|
+
const sourceCell = tableNode.nodeAt(sourceCellPos) ?? sourceRow.firstChild;
|
|
116163
|
+
if (!sourceCell) {
|
|
116164
|
+
col += 1;
|
|
116165
|
+
continue;
|
|
116166
|
+
}
|
|
116167
|
+
const sourceAttrs = sourceCell.attrs;
|
|
116168
|
+
const colspan = sourceAttrs.colspan || 1;
|
|
116169
|
+
if (!(col < splitColEnd && col + colspan > splitColStart)) {
|
|
116170
|
+
const sourceRowspan = sourceAttrs.rowspan || 1;
|
|
116171
|
+
cellsToExtend.set(tablePos + 1 + sourceCellPos, {
|
|
116172
|
+
...sourceAttrs,
|
|
116173
|
+
rowspan: sourceRowspan + 1
|
|
116174
|
+
});
|
|
116175
|
+
col += colspan;
|
|
116176
|
+
continue;
|
|
116177
|
+
}
|
|
116178
|
+
const fromHeaderToBody = sourceCell.type.name === "tableHeader";
|
|
116179
|
+
const newCell = (fromHeaderToBody ? defaultCellType : sourceCell.type).createAndFill(normalizeClonedRowInsertCellAttrs(sourceAttrs, fromHeaderToBody));
|
|
116180
|
+
if (newCell)
|
|
116181
|
+
newCells.push(newCell);
|
|
116182
|
+
col += colspan;
|
|
116183
|
+
}
|
|
116184
|
+
for (const [pos, attrs] of cellsToExtend.entries())
|
|
116185
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
116186
|
+
if (newCells.length === 0)
|
|
116187
|
+
return true;
|
|
116188
|
+
const newRow = rowType.createAndFill(null, newCells);
|
|
116189
|
+
if (!newRow)
|
|
116190
|
+
return false;
|
|
116191
|
+
let insertPos = tablePos + 1;
|
|
116192
|
+
for (let row2 = 0;row2 < boundedInsertIndex; row2++)
|
|
116193
|
+
insertPos += tableNode.child(row2).nodeSize;
|
|
116194
|
+
tr.insert(insertPos, newRow);
|
|
116195
|
+
return true;
|
|
116196
|
+
}
|
|
116171
116197
|
function tablesDeleteAdapter(editor, input2, options) {
|
|
116172
116198
|
const mode = options?.changeMode ?? "direct";
|
|
116173
116199
|
if (mode === "tracked")
|
|
@@ -116337,14 +116363,8 @@ function tablesInsertRowAdapter(editor, input2, options) {
|
|
|
116337
116363
|
break;
|
|
116338
116364
|
const insertIdx = input2.position === "above" ? rowIndex + i$1 : rowIndex + 1 + i$1;
|
|
116339
116365
|
const sourceIdx = input2.position === "above" ? rowIndex + i$1 : rowIndex;
|
|
116340
|
-
|
|
116341
|
-
|
|
116342
|
-
tablePos,
|
|
116343
|
-
tableNode: currentTableNode,
|
|
116344
|
-
sourceRowIndex: Math.min(sourceIdx, currentTableNode.childCount - 1),
|
|
116345
|
-
insertIndex: Math.min(insertIdx, currentTableNode.childCount),
|
|
116346
|
-
schema
|
|
116347
|
-
});
|
|
116366
|
+
if (!insertRowInTable(tr, tablePos, Math.min(sourceIdx, currentTableNode.childCount - 1), Math.min(insertIdx, currentTableNode.childCount), schema))
|
|
116367
|
+
return toTableFailure("INVALID_TARGET", "Row insertion could not be applied.");
|
|
116348
116368
|
}
|
|
116349
116369
|
if (mode === "tracked")
|
|
116350
116370
|
applyTrackedMutationMeta(tr);
|
|
@@ -117156,35 +117176,21 @@ function tablesUnmergeCellsAdapter(editor, input2, options) {
|
|
|
117156
117176
|
return buildTableSuccess(table2.address);
|
|
117157
117177
|
try {
|
|
117158
117178
|
const tr = editor.state.tr;
|
|
117159
|
-
const
|
|
117179
|
+
const tablePos = table2.candidate.pos;
|
|
117160
117180
|
const tableNode = table2.candidate.node;
|
|
117161
|
-
const map$22 = TableMap.get(tableNode);
|
|
117162
117181
|
const schema = editor.state.schema;
|
|
117163
|
-
|
|
117164
|
-
|
|
117165
|
-
|
|
117166
|
-
|
|
117167
|
-
|
|
117168
|
-
|
|
117169
|
-
|
|
117170
|
-
|
|
117171
|
-
|
|
117172
|
-
|
|
117173
|
-
|
|
117174
|
-
|
|
117175
|
-
const mapFrom = tr.mapping.maps.length;
|
|
117176
|
-
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--)
|
|
117177
|
-
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
117178
|
-
if (row2 === rowIndex && col === columnIndex)
|
|
117179
|
-
continue;
|
|
117180
|
-
const newCell = schema.nodes.tableCell.createAndFill();
|
|
117181
|
-
let insertRelPos;
|
|
117182
|
-
if (row2 === rowIndex)
|
|
117183
|
-
insertRelPos = map$22.positionAt(rowIndex, columnIndex, tableNode) + resetCell.nodeSize;
|
|
117184
|
-
else
|
|
117185
|
-
insertRelPos = map$22.positionAt(row2, col, tableNode);
|
|
117186
|
-
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
117187
|
-
}
|
|
117182
|
+
expandMergedCellIntoSingles({
|
|
117183
|
+
tr,
|
|
117184
|
+
tablePos,
|
|
117185
|
+
tableNode,
|
|
117186
|
+
cellPos,
|
|
117187
|
+
cellNode,
|
|
117188
|
+
rowIndex,
|
|
117189
|
+
columnIndex,
|
|
117190
|
+
rowspan,
|
|
117191
|
+
colspan,
|
|
117192
|
+
schema
|
|
117193
|
+
});
|
|
117188
117194
|
applyDirectMutationMeta(tr);
|
|
117189
117195
|
editor.dispatch(tr);
|
|
117190
117196
|
clearIndexCache(editor);
|
|
@@ -117201,37 +117207,74 @@ function tablesSplitCellAdapter(editor, input2, options) {
|
|
|
117201
117207
|
const attrs = cellNode.attrs;
|
|
117202
117208
|
const currentColspan = attrs.colspan || 1;
|
|
117203
117209
|
const currentRowspan = attrs.rowspan || 1;
|
|
117204
|
-
if ((currentColspan > 1 || currentRowspan > 1) && input2.rows === currentRowspan && input2.columns === currentColspan)
|
|
117205
|
-
return tablesUnmergeCellsAdapter(editor, input2, options);
|
|
117206
117210
|
if (input2.rows === 1 && input2.columns === 1 && currentColspan === 1 && currentRowspan === 1)
|
|
117207
117211
|
return toTableFailure("NO_OP", "Cell is already a single cell and split target is 1×1.");
|
|
117208
117212
|
if (options?.dryRun)
|
|
117209
117213
|
return buildTableSuccess(table2.address);
|
|
117210
117214
|
try {
|
|
117211
117215
|
const tr = editor.state.tr;
|
|
117212
|
-
const
|
|
117213
|
-
const tableNode = table2.candidate.node;
|
|
117214
|
-
const map$22 = TableMap.get(tableNode);
|
|
117216
|
+
const tablePos = table2.candidate.pos;
|
|
117215
117217
|
const schema = editor.state.schema;
|
|
117216
|
-
const
|
|
117217
|
-
const
|
|
117218
|
-
const
|
|
117219
|
-
|
|
117220
|
-
|
|
117221
|
-
|
|
117222
|
-
|
|
117223
|
-
|
|
117224
|
-
|
|
117225
|
-
|
|
117226
|
-
|
|
117227
|
-
|
|
117228
|
-
|
|
117229
|
-
|
|
117230
|
-
|
|
117231
|
-
|
|
117232
|
-
|
|
117233
|
-
|
|
117234
|
-
|
|
117218
|
+
const targetColumns = Math.max(input2.columns, currentColspan);
|
|
117219
|
+
const targetRows = Math.max(input2.rows, currentRowspan);
|
|
117220
|
+
const additionalColumns = Math.max(0, targetColumns - currentColspan);
|
|
117221
|
+
const additionalRows = Math.max(0, targetRows - currentRowspan);
|
|
117222
|
+
let updatedGrid = table2.candidate.node.attrs.grid;
|
|
117223
|
+
if (currentColspan > 1 || currentRowspan > 1) {
|
|
117224
|
+
const currentTableNode = tr.doc.nodeAt(tablePos);
|
|
117225
|
+
if (!currentTableNode || currentTableNode.type.name !== "table")
|
|
117226
|
+
return toTableFailure("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
117227
|
+
const currentCellPos = tr.mapping.map(cellPos, 1);
|
|
117228
|
+
const currentCellNode = tr.doc.nodeAt(currentCellPos);
|
|
117229
|
+
if (!currentCellNode || currentCellNode.type.name !== "tableCell" && currentCellNode.type.name !== "tableHeader")
|
|
117230
|
+
return toTableFailure("INVALID_TARGET", "Split target cell is unavailable.");
|
|
117231
|
+
expandMergedCellIntoSingles({
|
|
117232
|
+
tr,
|
|
117233
|
+
tablePos,
|
|
117234
|
+
tableNode: currentTableNode,
|
|
117235
|
+
cellPos: currentCellPos,
|
|
117236
|
+
cellNode: currentCellNode,
|
|
117237
|
+
rowIndex,
|
|
117238
|
+
columnIndex,
|
|
117239
|
+
rowspan: currentRowspan,
|
|
117240
|
+
colspan: currentColspan,
|
|
117241
|
+
schema
|
|
117242
|
+
});
|
|
117243
|
+
}
|
|
117244
|
+
for (let columnOffset = 0;columnOffset < additionalColumns; columnOffset++) {
|
|
117245
|
+
const insertColumnIndex = columnIndex + currentColspan + columnOffset;
|
|
117246
|
+
addColumnToTableForSplit(tr, tablePos, insertColumnIndex, rowIndex, rowIndex + targetRows);
|
|
117247
|
+
updatedGrid = insertGridColumnWidth(updatedGrid, insertColumnIndex) ?? updatedGrid;
|
|
117248
|
+
}
|
|
117249
|
+
for (let rowOffset = 0;rowOffset < additionalRows; rowOffset++) {
|
|
117250
|
+
const currentTableNode = tr.doc.nodeAt(tablePos);
|
|
117251
|
+
if (!currentTableNode || currentTableNode.type.name !== "table")
|
|
117252
|
+
return toTableFailure("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
117253
|
+
const insertIndex = rowIndex + currentRowspan + rowOffset;
|
|
117254
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, currentTableNode.childCount));
|
|
117255
|
+
if (!insertRowInTableForSplit(tr, tablePos, Math.max(0, Math.min(boundedInsertIndex - 1, currentTableNode.childCount - 1)), boundedInsertIndex, columnIndex, columnIndex + targetColumns, schema))
|
|
117256
|
+
return toTableFailure("INVALID_TARGET", "Cell split could not insert required rows.");
|
|
117257
|
+
}
|
|
117258
|
+
const finalTableNode = tr.doc.nodeAt(tablePos);
|
|
117259
|
+
if (!finalTableNode || finalTableNode.type.name !== "table")
|
|
117260
|
+
return toTableFailure("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
117261
|
+
let finalTargetCellPos = tr.mapping.map(cellPos, 1);
|
|
117262
|
+
let finalTargetCell = tr.doc.nodeAt(finalTargetCellPos);
|
|
117263
|
+
if (!finalTargetCell || finalTargetCell.type.name !== "tableCell" && finalTargetCell.type.name !== "tableHeader") {
|
|
117264
|
+
finalTargetCellPos = tablePos + 1 + TableMap.get(finalTableNode).positionAt(rowIndex, columnIndex, finalTableNode);
|
|
117265
|
+
finalTargetCell = tr.doc.nodeAt(finalTargetCellPos);
|
|
117266
|
+
}
|
|
117267
|
+
if (!finalTargetCell || finalTargetCell.type.name !== "tableCell" && finalTargetCell.type.name !== "tableHeader")
|
|
117268
|
+
return toTableFailure("INVALID_TARGET", "Split target cell is unavailable.");
|
|
117269
|
+
tr.setNodeMarkup(finalTargetCellPos, null, normalizeCellAttrsForSingleCell(finalTargetCell.attrs));
|
|
117270
|
+
if (updatedGrid) {
|
|
117271
|
+
const currentTableAttrs = finalTableNode.attrs;
|
|
117272
|
+
tr.setNodeMarkup(tablePos, null, {
|
|
117273
|
+
...currentTableAttrs,
|
|
117274
|
+
grid: updatedGrid,
|
|
117275
|
+
userEdited: true
|
|
117276
|
+
});
|
|
117277
|
+
}
|
|
117235
117278
|
applyDirectMutationMeta(tr);
|
|
117236
117279
|
editor.dispatch(tr);
|
|
117237
117280
|
clearIndexCache(editor);
|
|
@@ -138477,6 +138520,201 @@ function cellWrapping($pos) {
|
|
|
138477
138520
|
}
|
|
138478
138521
|
return null;
|
|
138479
138522
|
}
|
|
138523
|
+
function resolveTable2(tr, tablePos, tableNode) {
|
|
138524
|
+
if (tableNode && tableNode.type && tableNode.type.name === "table")
|
|
138525
|
+
return tableNode;
|
|
138526
|
+
if (typeof tablePos === "number") {
|
|
138527
|
+
const current = tr.doc.nodeAt(tablePos);
|
|
138528
|
+
if (current && current.type.name === "table")
|
|
138529
|
+
return current;
|
|
138530
|
+
}
|
|
138531
|
+
return null;
|
|
138532
|
+
}
|
|
138533
|
+
function pickTemplateRowForAppend(tableNode, schema) {
|
|
138534
|
+
const RowType = schema.nodes.tableRow;
|
|
138535
|
+
const rows = [];
|
|
138536
|
+
tableNode.descendants((child) => {
|
|
138537
|
+
if (child.type === RowType)
|
|
138538
|
+
rows.push(child);
|
|
138539
|
+
});
|
|
138540
|
+
if (!rows.length)
|
|
138541
|
+
return null;
|
|
138542
|
+
for (let i$1 = rows.length - 1;i$1 >= 0; i$1--) {
|
|
138543
|
+
const r$1 = rows[i$1];
|
|
138544
|
+
if (r$1.content?.content?.some((c$3) => c$3.type.name === "tableCell"))
|
|
138545
|
+
return r$1;
|
|
138546
|
+
}
|
|
138547
|
+
return rows[rows.length - 1];
|
|
138548
|
+
}
|
|
138549
|
+
function extractRowTemplateFormatting(cellNode, schema) {
|
|
138550
|
+
const ParagraphType = schema.nodes.paragraph;
|
|
138551
|
+
let blockType = ParagraphType;
|
|
138552
|
+
let blockAttrs = null;
|
|
138553
|
+
let textMarks = [];
|
|
138554
|
+
const blocks2 = cellNode?.content?.content || [];
|
|
138555
|
+
for (const block of blocks2) {
|
|
138556
|
+
if (block.type === ParagraphType || block.type.name === "heading") {
|
|
138557
|
+
blockType = block.type || ParagraphType;
|
|
138558
|
+
blockAttrs = block.attrs || null;
|
|
138559
|
+
}
|
|
138560
|
+
let foundText = null;
|
|
138561
|
+
block.descendants?.((n) => {
|
|
138562
|
+
if (!foundText && n.isText)
|
|
138563
|
+
foundText = n;
|
|
138564
|
+
});
|
|
138565
|
+
if (foundText) {
|
|
138566
|
+
textMarks = foundText.marks ? Array.from(foundText.marks) : [];
|
|
138567
|
+
break;
|
|
138568
|
+
}
|
|
138569
|
+
}
|
|
138570
|
+
if (!blockType || !blockType.validContent)
|
|
138571
|
+
blockType = ParagraphType;
|
|
138572
|
+
return {
|
|
138573
|
+
blockType,
|
|
138574
|
+
blockAttrs,
|
|
138575
|
+
textMarks
|
|
138576
|
+
};
|
|
138577
|
+
}
|
|
138578
|
+
function buildFormattedCellBlock(schema, value, { blockType, blockAttrs, textMarks }, copyRowStyle = false) {
|
|
138579
|
+
const text5 = typeof value === "string" ? value : value == null ? "" : String(value);
|
|
138580
|
+
const type = blockType || schema.nodes.paragraph;
|
|
138581
|
+
const marks = copyRowStyle ? textMarks || [] : [];
|
|
138582
|
+
if (!text5) {
|
|
138583
|
+
const content3 = marks.length > 0 ? schema.text(ZERO_WIDTH_SPACE, marks) : null;
|
|
138584
|
+
return type.createAndFill(blockAttrs || null, content3);
|
|
138585
|
+
}
|
|
138586
|
+
const textNode = schema.text(text5, marks);
|
|
138587
|
+
return type.createAndFill(blockAttrs || null, textNode);
|
|
138588
|
+
}
|
|
138589
|
+
function buildRowFromTemplateRow({ schema, tableNode, templateRow, values, copyRowStyle = false }) {
|
|
138590
|
+
const RowType = schema.nodes.tableRow;
|
|
138591
|
+
const CellType = schema.nodes.tableCell;
|
|
138592
|
+
const HeaderType = schema.nodes.tableHeader;
|
|
138593
|
+
const totalColumns = TableMap.get(tableNode).width;
|
|
138594
|
+
const byColumns = Array.isArray(values) && values.length === totalColumns;
|
|
138595
|
+
const newCells = [];
|
|
138596
|
+
let columnCursor = 0;
|
|
138597
|
+
templateRow.content.content.forEach((cellNode, cellIndex) => {
|
|
138598
|
+
const isHeaderCell = cellNode.type === HeaderType;
|
|
138599
|
+
const targetCellType = isHeaderCell ? CellType : cellNode.type;
|
|
138600
|
+
const attrs = isHeaderCell ? normalizeHeaderAttrsForBodyCell({ ...cellNode.attrs }) : { ...cellNode.attrs };
|
|
138601
|
+
const formatting = extractRowTemplateFormatting(cellNode, schema);
|
|
138602
|
+
let cellValue = "";
|
|
138603
|
+
if (byColumns) {
|
|
138604
|
+
const span = Math.max(1, attrs.colspan || 1);
|
|
138605
|
+
cellValue = values[columnCursor] ?? "";
|
|
138606
|
+
columnCursor += span;
|
|
138607
|
+
} else
|
|
138608
|
+
cellValue = Array.isArray(values) ? values[cellIndex] ?? "" : "";
|
|
138609
|
+
const content3 = buildFormattedCellBlock(schema, cellValue, formatting, copyRowStyle);
|
|
138610
|
+
const newCell = targetCellType.createAndFill(attrs, content3);
|
|
138611
|
+
if (newCell)
|
|
138612
|
+
newCells.push(newCell);
|
|
138613
|
+
});
|
|
138614
|
+
return RowType.createAndFill(null, newCells);
|
|
138615
|
+
}
|
|
138616
|
+
function insertRowsAtTableEnd({ tr, tablePos, tableNode, rows }) {
|
|
138617
|
+
if (!rows || !rows.length)
|
|
138618
|
+
return;
|
|
138619
|
+
const RowTypeName = "tableRow";
|
|
138620
|
+
let lastRowRelPos = 0;
|
|
138621
|
+
let lastRowNode = null;
|
|
138622
|
+
tableNode.descendants((child, relPos) => {
|
|
138623
|
+
if (child.type.name === RowTypeName) {
|
|
138624
|
+
lastRowRelPos = relPos;
|
|
138625
|
+
lastRowNode = child;
|
|
138626
|
+
}
|
|
138627
|
+
});
|
|
138628
|
+
if (!lastRowNode)
|
|
138629
|
+
return;
|
|
138630
|
+
const lastRowAbsEnd = tablePos + 1 + lastRowRelPos + lastRowNode.nodeSize;
|
|
138631
|
+
const frag = Fragment.fromArray(rows);
|
|
138632
|
+
tr.insert(lastRowAbsEnd, frag);
|
|
138633
|
+
}
|
|
138634
|
+
function insertRowAtIndex({ tr, tablePos, tableNode, sourceRowIndex, insertIndex, schema }) {
|
|
138635
|
+
const sourceRow = tableNode.child(sourceRowIndex);
|
|
138636
|
+
if (!sourceRow)
|
|
138637
|
+
return false;
|
|
138638
|
+
const map$22 = TableMap.get(tableNode);
|
|
138639
|
+
const { width, height } = map$22;
|
|
138640
|
+
const newCells = [];
|
|
138641
|
+
const cellsToExtend = [];
|
|
138642
|
+
const RowType = schema.nodes.tableRow;
|
|
138643
|
+
const CellType = schema.nodes.tableCell;
|
|
138644
|
+
const sourceFormatting = extractRowTemplateFormatting(sourceRow.firstChild, schema);
|
|
138645
|
+
for (let col = 0;col < width; ) {
|
|
138646
|
+
if (insertIndex > 0 && insertIndex < height) {
|
|
138647
|
+
const indexAbove = (insertIndex - 1) * width + col;
|
|
138648
|
+
const indexAtInsert = insertIndex * width + col;
|
|
138649
|
+
if (map$22.map[indexAbove] === map$22.map[indexAtInsert]) {
|
|
138650
|
+
const cellPos = map$22.map[indexAbove];
|
|
138651
|
+
const cell2 = tableNode.nodeAt(cellPos);
|
|
138652
|
+
if (cell2) {
|
|
138653
|
+
const attrs = cell2.attrs;
|
|
138654
|
+
cellsToExtend.push({
|
|
138655
|
+
pos: tablePos + 1 + cellPos,
|
|
138656
|
+
attrs: {
|
|
138657
|
+
...attrs,
|
|
138658
|
+
rowspan: (attrs.rowspan || 1) + 1
|
|
138659
|
+
}
|
|
138660
|
+
});
|
|
138661
|
+
col += attrs.colspan || 1;
|
|
138662
|
+
continue;
|
|
138663
|
+
}
|
|
138664
|
+
}
|
|
138665
|
+
}
|
|
138666
|
+
const sourceMapIndex = sourceRowIndex * width + col;
|
|
138667
|
+
const sourceCellPos = map$22.map[sourceMapIndex];
|
|
138668
|
+
const sourceCell = tableNode.nodeAt(sourceCellPos);
|
|
138669
|
+
if (!sourceCell) {
|
|
138670
|
+
const fallbackCell = sourceRow.firstChild;
|
|
138671
|
+
const content$13 = buildFormattedCellBlock(schema, "", extractRowTemplateFormatting(fallbackCell, schema), true);
|
|
138672
|
+
const newCell$1 = CellType.createAndFill({
|
|
138673
|
+
rowspan: 1,
|
|
138674
|
+
colspan: 1
|
|
138675
|
+
}, content$13);
|
|
138676
|
+
if (newCell$1)
|
|
138677
|
+
newCells.push(newCell$1);
|
|
138678
|
+
col += 1;
|
|
138679
|
+
continue;
|
|
138680
|
+
}
|
|
138681
|
+
const colspan = sourceCell.attrs.colspan || 1;
|
|
138682
|
+
const formatting = extractRowTemplateFormatting(sourceCell, schema);
|
|
138683
|
+
const cellAttrs = {
|
|
138684
|
+
...sourceCell.attrs,
|
|
138685
|
+
rowspan: 1
|
|
138686
|
+
};
|
|
138687
|
+
const content3 = buildFormattedCellBlock(schema, "", formatting, true);
|
|
138688
|
+
const targetCellType = sourceCell.type.name === "tableHeader" ? CellType : sourceCell.type;
|
|
138689
|
+
const normalizedCellAttrs = sourceCell.type.name === "tableHeader" ? normalizeHeaderAttrsForBodyCell(cellAttrs) : cellAttrs;
|
|
138690
|
+
const newCell = targetCellType.createAndFill(normalizedCellAttrs, content3);
|
|
138691
|
+
if (newCell)
|
|
138692
|
+
newCells.push(newCell);
|
|
138693
|
+
col += colspan;
|
|
138694
|
+
}
|
|
138695
|
+
for (const { pos, attrs } of cellsToExtend)
|
|
138696
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
138697
|
+
let insertPos = tablePos + 1;
|
|
138698
|
+
for (let i$1 = 0;i$1 < insertIndex; i$1++)
|
|
138699
|
+
insertPos += tableNode.child(i$1).nodeSize;
|
|
138700
|
+
if (newCells.length > 0) {
|
|
138701
|
+
const newRow = RowType.createAndFill(null, newCells);
|
|
138702
|
+
if (newRow) {
|
|
138703
|
+
tr.insert(insertPos, newRow);
|
|
138704
|
+
const cursorPos = insertPos + ROW_START_TO_TEXT_OFFSET;
|
|
138705
|
+
tr.setSelection(TextSelection2.create(tr.doc, cursorPos));
|
|
138706
|
+
const firstTextNode = newCells[0].firstChild?.firstChild;
|
|
138707
|
+
if (firstTextNode?.marks?.length)
|
|
138708
|
+
tr.setStoredMarks(firstTextNode.marks);
|
|
138709
|
+
else if (sourceFormatting.textMarks?.length)
|
|
138710
|
+
tr.setStoredMarks(sourceFormatting.textMarks);
|
|
138711
|
+
}
|
|
138712
|
+
} else if (cellsToExtend.length > 0) {
|
|
138713
|
+
const cursorPos = cellsToExtend[0].pos + CELL_TO_TEXT_OFFSET;
|
|
138714
|
+
tr.setSelection(TextSelection2.create(tr.doc, cursorPos));
|
|
138715
|
+
}
|
|
138716
|
+
return true;
|
|
138717
|
+
}
|
|
138480
138718
|
function getCellType({ node: node3, state }) {
|
|
138481
138719
|
return tableNodeTypes(state.schema)[node3.type.spec.tableRole];
|
|
138482
138720
|
}
|
|
@@ -154732,13 +154970,7 @@ var Node$13 = class Node$14 {
|
|
|
154732
154970
|
console.warn("Failed to initialize developer tools:", error);
|
|
154733
154971
|
}
|
|
154734
154972
|
}
|
|
154735
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, DEFAULT_TOC_CONFIG, SWITCH_PATTERN, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, CSS_NAMED_COLORS, ZERO_WIDTH_SPACE = "", ROW_START_TO_TEXT_OFFSET = 3, CELL_TO_TEXT_OFFSET = 2, normalizeHeaderAttrsForBodyCell = (attrs) => {
|
|
154736
|
-
if (attrs?.borders !== null)
|
|
154737
|
-
return attrs;
|
|
154738
|
-
const nextAttrs = { ...attrs };
|
|
154739
|
-
delete nextAttrs.borders;
|
|
154740
|
-
return nextAttrs;
|
|
154741
|
-
}, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SETTINGS_PART_PATH = "word/settings.xml", SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, NO_ENTRIES_PLACEHOLDER, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
154973
|
+
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, DEFAULT_TOC_CONFIG, SWITCH_PATTERN, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, CSS_NAMED_COLORS, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SETTINGS_PART_PATH = "word/settings.xml", SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, NO_ENTRIES_PLACEHOLDER, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
154742
154974
|
constructor(config2) {
|
|
154743
154975
|
this.search = config2.search;
|
|
154744
154976
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -168583,6 +168815,12 @@ var Node$13 = class Node$14 {
|
|
|
168583
168815
|
return false;
|
|
168584
168816
|
editor.commands.deleteTable();
|
|
168585
168817
|
return true;
|
|
168818
|
+
}, ZERO_WIDTH_SPACE = "", ROW_START_TO_TEXT_OFFSET = 3, CELL_TO_TEXT_OFFSET = 2, normalizeHeaderAttrsForBodyCell = (attrs) => {
|
|
168819
|
+
if (attrs?.borders !== null)
|
|
168820
|
+
return attrs;
|
|
168821
|
+
const nextAttrs = { ...attrs };
|
|
168822
|
+
delete nextAttrs.borders;
|
|
168823
|
+
return nextAttrs;
|
|
168586
168824
|
}, IMPORT_CONTEXT_SELECTOR = '[data-superdoc-import="true"]', IMPORT_DEFAULT_TABLE_WIDTH_PCT = 5000, isImportedTableElement = (element3) => Boolean(element3?.closest?.(IMPORT_CONTEXT_SELECTOR)), Table, renderCellBorderStyle = (borders) => {
|
|
168587
168825
|
if (!borders)
|
|
168588
168826
|
return {};
|
|
@@ -173132,7 +173370,7 @@ var Node$13 = class Node$14 {
|
|
|
173132
173370
|
trackedChanges: context.trackedChanges ?? []
|
|
173133
173371
|
});
|
|
173134
173372
|
}, _hoisted_1$6, _hoisted_2$1, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
|
|
173135
|
-
var
|
|
173373
|
+
var init_src_De1yZkuR_es = __esm(() => {
|
|
173136
173374
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
173137
173375
|
init_SuperConverter_BSZgN87C_es();
|
|
173138
173376
|
init_jszip_ChlR43oI_es();
|
|
@@ -204025,8 +204263,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
204025
204263
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
204026
204264
|
};
|
|
204027
204265
|
stubFalse_default = stubFalse;
|
|
204028
|
-
freeExports$2 = typeof
|
|
204029
|
-
freeModule$2 = freeExports$2 && typeof
|
|
204266
|
+
freeExports$2 = typeof exports_src_De1yZkuR_es == "object" && exports_src_De1yZkuR_es && !exports_src_De1yZkuR_es.nodeType && exports_src_De1yZkuR_es;
|
|
204267
|
+
freeModule$2 = freeExports$2 && typeof module_src_De1yZkuR_es == "object" && module_src_De1yZkuR_es && !module_src_De1yZkuR_es.nodeType && module_src_De1yZkuR_es;
|
|
204030
204268
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
204031
204269
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
204032
204270
|
typedArrayTags = {};
|
|
@@ -204034,8 +204272,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
204034
204272
|
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
|
|
204035
204273
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
204036
204274
|
_baseUnary_default = baseUnary;
|
|
204037
|
-
freeExports$1 = typeof
|
|
204038
|
-
freeModule$1 = freeExports$1 && typeof
|
|
204275
|
+
freeExports$1 = typeof exports_src_De1yZkuR_es == "object" && exports_src_De1yZkuR_es && !exports_src_De1yZkuR_es.nodeType && exports_src_De1yZkuR_es;
|
|
204276
|
+
freeModule$1 = freeExports$1 && typeof module_src_De1yZkuR_es == "object" && module_src_De1yZkuR_es && !module_src_De1yZkuR_es.nodeType && module_src_De1yZkuR_es;
|
|
204039
204277
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
204040
204278
|
_nodeUtil_default = function() {
|
|
204041
204279
|
try {
|
|
@@ -204140,8 +204378,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
204140
204378
|
Stack.prototype.has = _stackHas_default;
|
|
204141
204379
|
Stack.prototype.set = _stackSet_default;
|
|
204142
204380
|
_Stack_default = Stack;
|
|
204143
|
-
freeExports = typeof
|
|
204144
|
-
freeModule = freeExports && typeof
|
|
204381
|
+
freeExports = typeof exports_src_De1yZkuR_es == "object" && exports_src_De1yZkuR_es && !exports_src_De1yZkuR_es.nodeType && exports_src_De1yZkuR_es;
|
|
204382
|
+
freeModule = freeExports && typeof module_src_De1yZkuR_es == "object" && module_src_De1yZkuR_es && !module_src_De1yZkuR_es.nodeType && module_src_De1yZkuR_es;
|
|
204145
204383
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
204146
204384
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
204147
204385
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -211793,7 +212031,7 @@ var init_zipper_Cnk_HjM2_es = __esm(() => {
|
|
|
211793
212031
|
|
|
211794
212032
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
211795
212033
|
var init_super_editor_es = __esm(() => {
|
|
211796
|
-
|
|
212034
|
+
init_src_De1yZkuR_es();
|
|
211797
212035
|
init_SuperConverter_BSZgN87C_es();
|
|
211798
212036
|
init_jszip_ChlR43oI_es();
|
|
211799
212037
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -271299,142 +271537,6 @@ var init_table_target_resolver = __esm(() => {
|
|
|
271299
271537
|
init_errors3();
|
|
271300
271538
|
});
|
|
271301
271539
|
|
|
271302
|
-
// ../../packages/super-editor/src/extensions/table/tableHelpers/appendRows.js
|
|
271303
|
-
function extractRowTemplateFormatting2(cellNode, schema) {
|
|
271304
|
-
const ParagraphType = schema.nodes.paragraph;
|
|
271305
|
-
let blockType = ParagraphType;
|
|
271306
|
-
let blockAttrs = null;
|
|
271307
|
-
let textMarks = [];
|
|
271308
|
-
const blocks2 = cellNode?.content?.content || [];
|
|
271309
|
-
for (const block of blocks2) {
|
|
271310
|
-
const isParagraphish = block.type === ParagraphType || block.type.name === "heading";
|
|
271311
|
-
if (isParagraphish) {
|
|
271312
|
-
blockType = block.type || ParagraphType;
|
|
271313
|
-
blockAttrs = block.attrs || null;
|
|
271314
|
-
}
|
|
271315
|
-
let foundText = null;
|
|
271316
|
-
block.descendants?.((n) => {
|
|
271317
|
-
if (!foundText && n.isText)
|
|
271318
|
-
foundText = n;
|
|
271319
|
-
});
|
|
271320
|
-
if (foundText) {
|
|
271321
|
-
textMarks = foundText.marks ? Array.from(foundText.marks) : [];
|
|
271322
|
-
break;
|
|
271323
|
-
}
|
|
271324
|
-
}
|
|
271325
|
-
if (!blockType || !blockType.validContent)
|
|
271326
|
-
blockType = ParagraphType;
|
|
271327
|
-
return { blockType, blockAttrs, textMarks };
|
|
271328
|
-
}
|
|
271329
|
-
function buildFormattedCellBlock2(schema, value, { blockType, blockAttrs, textMarks }, copyRowStyle = false) {
|
|
271330
|
-
const text9 = typeof value === "string" ? value : value == null ? "" : String(value);
|
|
271331
|
-
const type = blockType || schema.nodes.paragraph;
|
|
271332
|
-
const marks = copyRowStyle ? textMarks || [] : [];
|
|
271333
|
-
if (!text9) {
|
|
271334
|
-
const content5 = marks.length > 0 ? schema.text(ZERO_WIDTH_SPACE2, marks) : null;
|
|
271335
|
-
return type.createAndFill(blockAttrs || null, content5);
|
|
271336
|
-
}
|
|
271337
|
-
const textNode = schema.text(text9, marks);
|
|
271338
|
-
return type.createAndFill(blockAttrs || null, textNode);
|
|
271339
|
-
}
|
|
271340
|
-
function insertRowAtIndex2({ tr, tablePos, tableNode, sourceRowIndex, insertIndex, schema }) {
|
|
271341
|
-
const sourceRow = tableNode.child(sourceRowIndex);
|
|
271342
|
-
if (!sourceRow)
|
|
271343
|
-
return false;
|
|
271344
|
-
const map8 = TableMap2.get(tableNode);
|
|
271345
|
-
const { width, height } = map8;
|
|
271346
|
-
const newCells = [];
|
|
271347
|
-
const cellsToExtend = [];
|
|
271348
|
-
const RowType = schema.nodes.tableRow;
|
|
271349
|
-
const CellType = schema.nodes.tableCell;
|
|
271350
|
-
const sourceFormatting = extractRowTemplateFormatting2(sourceRow.firstChild, schema);
|
|
271351
|
-
for (let col = 0;col < width; ) {
|
|
271352
|
-
if (insertIndex > 0 && insertIndex < height) {
|
|
271353
|
-
const indexAbove = (insertIndex - 1) * width + col;
|
|
271354
|
-
const indexAtInsert = insertIndex * width + col;
|
|
271355
|
-
if (map8.map[indexAbove] === map8.map[indexAtInsert]) {
|
|
271356
|
-
const cellPos = map8.map[indexAbove];
|
|
271357
|
-
const cell2 = tableNode.nodeAt(cellPos);
|
|
271358
|
-
if (cell2) {
|
|
271359
|
-
const attrs = cell2.attrs;
|
|
271360
|
-
cellsToExtend.push({
|
|
271361
|
-
pos: tablePos + 1 + cellPos,
|
|
271362
|
-
attrs: { ...attrs, rowspan: (attrs.rowspan || 1) + 1 }
|
|
271363
|
-
});
|
|
271364
|
-
col += attrs.colspan || 1;
|
|
271365
|
-
continue;
|
|
271366
|
-
}
|
|
271367
|
-
}
|
|
271368
|
-
}
|
|
271369
|
-
const sourceMapIndex = sourceRowIndex * width + col;
|
|
271370
|
-
const sourceCellPos = map8.map[sourceMapIndex];
|
|
271371
|
-
const sourceCell = tableNode.nodeAt(sourceCellPos);
|
|
271372
|
-
if (!sourceCell) {
|
|
271373
|
-
const fallbackCell = sourceRow.firstChild;
|
|
271374
|
-
const formatting2 = extractRowTemplateFormatting2(fallbackCell, schema);
|
|
271375
|
-
const content6 = buildFormattedCellBlock2(schema, "", formatting2, true);
|
|
271376
|
-
const newCell2 = CellType.createAndFill({ rowspan: 1, colspan: 1 }, content6);
|
|
271377
|
-
if (newCell2)
|
|
271378
|
-
newCells.push(newCell2);
|
|
271379
|
-
col += 1;
|
|
271380
|
-
continue;
|
|
271381
|
-
}
|
|
271382
|
-
const colspan = sourceCell.attrs.colspan || 1;
|
|
271383
|
-
const formatting = extractRowTemplateFormatting2(sourceCell, schema);
|
|
271384
|
-
const cellAttrs = {
|
|
271385
|
-
...sourceCell.attrs,
|
|
271386
|
-
rowspan: 1
|
|
271387
|
-
};
|
|
271388
|
-
const content5 = buildFormattedCellBlock2(schema, "", formatting, true);
|
|
271389
|
-
const targetCellType = sourceCell.type.name === "tableHeader" ? CellType : sourceCell.type;
|
|
271390
|
-
const normalizedCellAttrs = sourceCell.type.name === "tableHeader" ? normalizeHeaderAttrsForBodyCell2(cellAttrs) : cellAttrs;
|
|
271391
|
-
const newCell = targetCellType.createAndFill(normalizedCellAttrs, content5);
|
|
271392
|
-
if (newCell)
|
|
271393
|
-
newCells.push(newCell);
|
|
271394
|
-
col += colspan;
|
|
271395
|
-
}
|
|
271396
|
-
for (const { pos, attrs } of cellsToExtend) {
|
|
271397
|
-
tr.setNodeMarkup(pos, null, attrs);
|
|
271398
|
-
}
|
|
271399
|
-
let insertPos = tablePos + 1;
|
|
271400
|
-
for (let i5 = 0;i5 < insertIndex; i5++) {
|
|
271401
|
-
insertPos += tableNode.child(i5).nodeSize;
|
|
271402
|
-
}
|
|
271403
|
-
if (newCells.length > 0) {
|
|
271404
|
-
const newRow = RowType.createAndFill(null, newCells);
|
|
271405
|
-
if (newRow) {
|
|
271406
|
-
tr.insert(insertPos, newRow);
|
|
271407
|
-
const cursorPos = insertPos + ROW_START_TO_TEXT_OFFSET2;
|
|
271408
|
-
tr.setSelection(TextSelection4.create(tr.doc, cursorPos));
|
|
271409
|
-
const firstCellBlock = newCells[0].firstChild;
|
|
271410
|
-
const firstTextNode = firstCellBlock?.firstChild;
|
|
271411
|
-
if (firstTextNode?.marks?.length) {
|
|
271412
|
-
tr.setStoredMarks(firstTextNode.marks);
|
|
271413
|
-
} else if (sourceFormatting.textMarks?.length) {
|
|
271414
|
-
tr.setStoredMarks(sourceFormatting.textMarks);
|
|
271415
|
-
}
|
|
271416
|
-
}
|
|
271417
|
-
} else {
|
|
271418
|
-
if (cellsToExtend.length > 0) {
|
|
271419
|
-
const spanningCellPos = cellsToExtend[0].pos;
|
|
271420
|
-
const cursorPos = spanningCellPos + CELL_TO_TEXT_OFFSET2;
|
|
271421
|
-
tr.setSelection(TextSelection4.create(tr.doc, cursorPos));
|
|
271422
|
-
}
|
|
271423
|
-
}
|
|
271424
|
-
return true;
|
|
271425
|
-
}
|
|
271426
|
-
var ZERO_WIDTH_SPACE2 = "", ROW_START_TO_TEXT_OFFSET2 = 3, CELL_TO_TEXT_OFFSET2 = 2, normalizeHeaderAttrsForBodyCell2 = (attrs) => {
|
|
271427
|
-
if (attrs?.borders !== null)
|
|
271428
|
-
return attrs;
|
|
271429
|
-
const nextAttrs = { ...attrs };
|
|
271430
|
-
delete nextAttrs.borders;
|
|
271431
|
-
return nextAttrs;
|
|
271432
|
-
};
|
|
271433
|
-
var init_appendRows = __esm(() => {
|
|
271434
|
-
init_dist7();
|
|
271435
|
-
init_dist4();
|
|
271436
|
-
});
|
|
271437
|
-
|
|
271438
271540
|
// ../../packages/super-editor/src/document-api-adapters/tables-adapter.ts
|
|
271439
271541
|
function generateParaId2() {
|
|
271440
271542
|
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
@@ -271550,6 +271652,64 @@ function removeGridColumnWidth2(grid, deleteIndex) {
|
|
|
271550
271652
|
colWidths.splice(boundedIndex, 1);
|
|
271551
271653
|
return serializeGridColumns2(grid, { ...normalized, columns: colWidths });
|
|
271552
271654
|
}
|
|
271655
|
+
function normalizeCellAttrsForSingleCell2(attrs) {
|
|
271656
|
+
const currentColwidth = Array.isArray(attrs.colwidth) ? attrs.colwidth : null;
|
|
271657
|
+
const tableCellProperties = {
|
|
271658
|
+
...attrs.tableCellProperties ?? {}
|
|
271659
|
+
};
|
|
271660
|
+
delete tableCellProperties.gridSpan;
|
|
271661
|
+
delete tableCellProperties.vMerge;
|
|
271662
|
+
return {
|
|
271663
|
+
...attrs,
|
|
271664
|
+
colspan: 1,
|
|
271665
|
+
rowspan: 1,
|
|
271666
|
+
colwidth: currentColwidth && currentColwidth.length > 0 ? [currentColwidth[0] ?? 0] : currentColwidth,
|
|
271667
|
+
tableCellProperties
|
|
271668
|
+
};
|
|
271669
|
+
}
|
|
271670
|
+
function normalizeClonedRowInsertCellAttrs2(sourceAttrs, fromHeaderToBody) {
|
|
271671
|
+
const normalizedAttrs = {
|
|
271672
|
+
...sourceAttrs,
|
|
271673
|
+
rowspan: 1
|
|
271674
|
+
};
|
|
271675
|
+
if (fromHeaderToBody && normalizedAttrs.borders == null) {
|
|
271676
|
+
delete normalizedAttrs.borders;
|
|
271677
|
+
}
|
|
271678
|
+
return normalizedAttrs;
|
|
271679
|
+
}
|
|
271680
|
+
function expandMergedCellIntoSingles2({
|
|
271681
|
+
tr,
|
|
271682
|
+
tablePos,
|
|
271683
|
+
tableNode,
|
|
271684
|
+
cellPos,
|
|
271685
|
+
cellNode,
|
|
271686
|
+
rowIndex,
|
|
271687
|
+
columnIndex,
|
|
271688
|
+
rowspan,
|
|
271689
|
+
colspan,
|
|
271690
|
+
schema
|
|
271691
|
+
}) {
|
|
271692
|
+
const tableStart = tablePos + 1;
|
|
271693
|
+
const map8 = TableMap2.get(tableNode);
|
|
271694
|
+
const resetCell = cellNode.type.create(normalizeCellAttrsForSingleCell2(cellNode.attrs), cellNode.content);
|
|
271695
|
+
tr.replaceWith(cellPos, cellPos + cellNode.nodeSize, resetCell);
|
|
271696
|
+
const mapFrom = tr.mapping.maps.length;
|
|
271697
|
+
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--) {
|
|
271698
|
+
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
271699
|
+
if (row2 === rowIndex && col === columnIndex)
|
|
271700
|
+
continue;
|
|
271701
|
+
const newCell = schema.nodes.tableCell.createAndFill();
|
|
271702
|
+
let insertRelPos;
|
|
271703
|
+
if (row2 === rowIndex) {
|
|
271704
|
+
const baseRelPos = map8.positionAt(rowIndex, columnIndex, tableNode);
|
|
271705
|
+
insertRelPos = baseRelPos + resetCell.nodeSize;
|
|
271706
|
+
} else {
|
|
271707
|
+
insertRelPos = map8.positionAt(row2, col, tableNode);
|
|
271708
|
+
}
|
|
271709
|
+
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
271710
|
+
}
|
|
271711
|
+
}
|
|
271712
|
+
}
|
|
271553
271713
|
function isBoundaryEdge2(edge) {
|
|
271554
271714
|
return edge === "top" || edge === "bottom" || edge === "left" || edge === "right" || edge === "insideH" || edge === "insideV";
|
|
271555
271715
|
}
|
|
@@ -271729,6 +271889,185 @@ function removeColumnFromTable2(tr, tablePos, col) {
|
|
|
271729
271889
|
row2 += rowspan;
|
|
271730
271890
|
}
|
|
271731
271891
|
}
|
|
271892
|
+
function insertRowInTable2(tr, tablePos, sourceRowIndex, insertIndex, schema) {
|
|
271893
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
271894
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
271895
|
+
return false;
|
|
271896
|
+
const rowCount = tableNode.childCount;
|
|
271897
|
+
if (rowCount === 0)
|
|
271898
|
+
return false;
|
|
271899
|
+
const map8 = TableMap2.get(tableNode);
|
|
271900
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, rowCount));
|
|
271901
|
+
const boundedSourceRowIndex = Math.max(0, Math.min(sourceRowIndex, rowCount - 1));
|
|
271902
|
+
const sourceRow = tableNode.child(boundedSourceRowIndex);
|
|
271903
|
+
if (!sourceRow)
|
|
271904
|
+
return false;
|
|
271905
|
+
const rowType = schema.nodes.tableRow;
|
|
271906
|
+
const defaultCellType = schema.nodes.tableCell;
|
|
271907
|
+
if (!rowType || !defaultCellType)
|
|
271908
|
+
return false;
|
|
271909
|
+
const newCells = [];
|
|
271910
|
+
const cellsToExtend = [];
|
|
271911
|
+
for (let col = 0;col < map8.width; ) {
|
|
271912
|
+
if (boundedInsertIndex > 0 && boundedInsertIndex < map8.height) {
|
|
271913
|
+
const indexAbove = (boundedInsertIndex - 1) * map8.width + col;
|
|
271914
|
+
const indexAtInsert = boundedInsertIndex * map8.width + col;
|
|
271915
|
+
if (map8.map[indexAbove] === map8.map[indexAtInsert]) {
|
|
271916
|
+
const spanningPos = map8.map[indexAbove];
|
|
271917
|
+
const spanningCell = tableNode.nodeAt(spanningPos);
|
|
271918
|
+
if (spanningCell) {
|
|
271919
|
+
const spanningAttrs = spanningCell.attrs;
|
|
271920
|
+
const rowspan = spanningAttrs.rowspan || 1;
|
|
271921
|
+
const colspan2 = spanningAttrs.colspan || 1;
|
|
271922
|
+
cellsToExtend.push({
|
|
271923
|
+
pos: tablePos + 1 + spanningPos,
|
|
271924
|
+
attrs: { ...spanningAttrs, rowspan: rowspan + 1 }
|
|
271925
|
+
});
|
|
271926
|
+
col += colspan2;
|
|
271927
|
+
continue;
|
|
271928
|
+
}
|
|
271929
|
+
}
|
|
271930
|
+
}
|
|
271931
|
+
const sourceMapIndex = boundedSourceRowIndex * map8.width + col;
|
|
271932
|
+
const sourceCellPos = map8.map[sourceMapIndex];
|
|
271933
|
+
const sourceCell = tableNode.nodeAt(sourceCellPos) ?? sourceRow.firstChild;
|
|
271934
|
+
if (!sourceCell) {
|
|
271935
|
+
col += 1;
|
|
271936
|
+
continue;
|
|
271937
|
+
}
|
|
271938
|
+
const colspan = sourceCell.attrs.colspan || 1;
|
|
271939
|
+
const fromHeaderToBody = sourceCell.type.name === "tableHeader";
|
|
271940
|
+
const targetCellType = fromHeaderToBody ? defaultCellType : sourceCell.type;
|
|
271941
|
+
const newCell = targetCellType.createAndFill(normalizeClonedRowInsertCellAttrs2(sourceCell.attrs, fromHeaderToBody));
|
|
271942
|
+
if (newCell)
|
|
271943
|
+
newCells.push(newCell);
|
|
271944
|
+
col += colspan;
|
|
271945
|
+
}
|
|
271946
|
+
for (const { pos, attrs } of cellsToExtend) {
|
|
271947
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
271948
|
+
}
|
|
271949
|
+
if (newCells.length === 0)
|
|
271950
|
+
return true;
|
|
271951
|
+
const newRow = rowType.createAndFill(null, newCells);
|
|
271952
|
+
if (!newRow)
|
|
271953
|
+
return false;
|
|
271954
|
+
let insertPos = tablePos + 1;
|
|
271955
|
+
for (let row2 = 0;row2 < boundedInsertIndex; row2++) {
|
|
271956
|
+
insertPos += tableNode.child(row2).nodeSize;
|
|
271957
|
+
}
|
|
271958
|
+
tr.insert(insertPos, newRow);
|
|
271959
|
+
return true;
|
|
271960
|
+
}
|
|
271961
|
+
function addColumnToTableForSplit2(tr, tablePos, col, splitRowStart, splitRowEnd) {
|
|
271962
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
271963
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
271964
|
+
return;
|
|
271965
|
+
const map8 = TableMap2.get(tableNode);
|
|
271966
|
+
const tableStart = tablePos + 1;
|
|
271967
|
+
const mapStart = tr.mapping.maps.length;
|
|
271968
|
+
const widenedOutsideSplit = new Set;
|
|
271969
|
+
for (let row2 = 0;row2 < map8.height; row2++) {
|
|
271970
|
+
const index3 = row2 * map8.width + col;
|
|
271971
|
+
const pos = map8.map[index3];
|
|
271972
|
+
const cell2 = tableNode.nodeAt(pos);
|
|
271973
|
+
if (!cell2)
|
|
271974
|
+
continue;
|
|
271975
|
+
const inSplitRows = row2 >= splitRowStart && row2 < splitRowEnd;
|
|
271976
|
+
if (!inSplitRows && col > 0) {
|
|
271977
|
+
const leftPos = map8.map[index3 - 1];
|
|
271978
|
+
const leftCell = tableNode.nodeAt(leftPos);
|
|
271979
|
+
if (leftCell && !widenedOutsideSplit.has(leftPos)) {
|
|
271980
|
+
tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + leftPos), null, addColSpan2(leftCell.attrs, col - map8.colCount(leftPos)));
|
|
271981
|
+
widenedOutsideSplit.add(leftPos);
|
|
271982
|
+
}
|
|
271983
|
+
row2 += (cell2.attrs?.rowspan || 1) - 1;
|
|
271984
|
+
continue;
|
|
271985
|
+
}
|
|
271986
|
+
if (col > 0 && map8.map[index3 - 1] === pos) {
|
|
271987
|
+
tr.setNodeMarkup(tr.mapping.slice(mapStart).map(tableStart + pos), null, addColSpan2(cell2.attrs, col - map8.colCount(pos)));
|
|
271988
|
+
row2 += (cell2.attrs.rowspan || 1) - 1;
|
|
271989
|
+
} else {
|
|
271990
|
+
const refType = col > 0 ? tableNode.nodeAt(map8.map[index3 - 1])?.type ?? cell2.type : cell2.type;
|
|
271991
|
+
const cellPos = map8.positionAt(row2, col, tableNode);
|
|
271992
|
+
tr.insert(tr.mapping.slice(mapStart).map(tableStart + cellPos), refType.createAndFill());
|
|
271993
|
+
row2 += (cell2.attrs?.rowspan || 1) - 1;
|
|
271994
|
+
}
|
|
271995
|
+
}
|
|
271996
|
+
}
|
|
271997
|
+
function insertRowInTableForSplit2(tr, tablePos, sourceRowIndex, insertIndex, splitColStart, splitColEnd, schema) {
|
|
271998
|
+
const tableNode = tr.doc.nodeAt(tablePos);
|
|
271999
|
+
if (!tableNode || tableNode.type.name !== "table")
|
|
272000
|
+
return false;
|
|
272001
|
+
const rowCount = tableNode.childCount;
|
|
272002
|
+
if (rowCount === 0)
|
|
272003
|
+
return false;
|
|
272004
|
+
const map8 = TableMap2.get(tableNode);
|
|
272005
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, rowCount));
|
|
272006
|
+
const boundedSourceRowIndex = Math.max(0, Math.min(sourceRowIndex, rowCount - 1));
|
|
272007
|
+
const sourceRow = tableNode.child(boundedSourceRowIndex);
|
|
272008
|
+
if (!sourceRow)
|
|
272009
|
+
return false;
|
|
272010
|
+
const rowType = schema.nodes.tableRow;
|
|
272011
|
+
const defaultCellType = schema.nodes.tableCell;
|
|
272012
|
+
if (!rowType || !defaultCellType)
|
|
272013
|
+
return false;
|
|
272014
|
+
const newCells = [];
|
|
272015
|
+
const cellsToExtend = new Map;
|
|
272016
|
+
for (let col = 0;col < map8.width; ) {
|
|
272017
|
+
if (boundedInsertIndex > 0 && boundedInsertIndex < map8.height) {
|
|
272018
|
+
const indexAbove = (boundedInsertIndex - 1) * map8.width + col;
|
|
272019
|
+
const indexAtInsert = boundedInsertIndex * map8.width + col;
|
|
272020
|
+
if (map8.map[indexAbove] === map8.map[indexAtInsert]) {
|
|
272021
|
+
const spanningPos = map8.map[indexAbove];
|
|
272022
|
+
const spanningCell = tableNode.nodeAt(spanningPos);
|
|
272023
|
+
if (spanningCell) {
|
|
272024
|
+
const spanningAttrs = spanningCell.attrs;
|
|
272025
|
+
const rowspan = spanningAttrs.rowspan || 1;
|
|
272026
|
+
const colspan2 = spanningAttrs.colspan || 1;
|
|
272027
|
+
cellsToExtend.set(tablePos + 1 + spanningPos, { ...spanningAttrs, rowspan: rowspan + 1 });
|
|
272028
|
+
col += colspan2;
|
|
272029
|
+
continue;
|
|
272030
|
+
}
|
|
272031
|
+
}
|
|
272032
|
+
}
|
|
272033
|
+
const sourceMapIndex = boundedSourceRowIndex * map8.width + col;
|
|
272034
|
+
const sourceCellPos = map8.map[sourceMapIndex];
|
|
272035
|
+
const sourceCell = tableNode.nodeAt(sourceCellPos) ?? sourceRow.firstChild;
|
|
272036
|
+
if (!sourceCell) {
|
|
272037
|
+
col += 1;
|
|
272038
|
+
continue;
|
|
272039
|
+
}
|
|
272040
|
+
const sourceAttrs = sourceCell.attrs;
|
|
272041
|
+
const colspan = sourceAttrs.colspan || 1;
|
|
272042
|
+
const overlapsSplitRange = col < splitColEnd && col + colspan > splitColStart;
|
|
272043
|
+
if (!overlapsSplitRange) {
|
|
272044
|
+
const sourceRowspan = sourceAttrs.rowspan || 1;
|
|
272045
|
+
cellsToExtend.set(tablePos + 1 + sourceCellPos, { ...sourceAttrs, rowspan: sourceRowspan + 1 });
|
|
272046
|
+
col += colspan;
|
|
272047
|
+
continue;
|
|
272048
|
+
}
|
|
272049
|
+
const fromHeaderToBody = sourceCell.type.name === "tableHeader";
|
|
272050
|
+
const targetCellType = fromHeaderToBody ? defaultCellType : sourceCell.type;
|
|
272051
|
+
const newCell = targetCellType.createAndFill(normalizeClonedRowInsertCellAttrs2(sourceAttrs, fromHeaderToBody));
|
|
272052
|
+
if (newCell)
|
|
272053
|
+
newCells.push(newCell);
|
|
272054
|
+
col += colspan;
|
|
272055
|
+
}
|
|
272056
|
+
for (const [pos, attrs] of cellsToExtend.entries()) {
|
|
272057
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
272058
|
+
}
|
|
272059
|
+
if (newCells.length === 0)
|
|
272060
|
+
return true;
|
|
272061
|
+
const newRow = rowType.createAndFill(null, newCells);
|
|
272062
|
+
if (!newRow)
|
|
272063
|
+
return false;
|
|
272064
|
+
let insertPos = tablePos + 1;
|
|
272065
|
+
for (let row2 = 0;row2 < boundedInsertIndex; row2++) {
|
|
272066
|
+
insertPos += tableNode.child(row2).nodeSize;
|
|
272067
|
+
}
|
|
272068
|
+
tr.insert(insertPos, newRow);
|
|
272069
|
+
return true;
|
|
272070
|
+
}
|
|
271732
272071
|
function tablesDeleteAdapter2(editor, input2, options) {
|
|
271733
272072
|
const mode = options?.changeMode ?? "direct";
|
|
271734
272073
|
if (mode === "tracked") {
|
|
@@ -271907,14 +272246,10 @@ function tablesInsertRowAdapter2(editor, input2, options) {
|
|
|
271907
272246
|
break;
|
|
271908
272247
|
const insertIdx = input2.position === "above" ? rowIndex + i5 : rowIndex + 1 + i5;
|
|
271909
272248
|
const sourceIdx = input2.position === "above" ? rowIndex + i5 : rowIndex;
|
|
271910
|
-
|
|
271911
|
-
|
|
271912
|
-
|
|
271913
|
-
|
|
271914
|
-
sourceRowIndex: Math.min(sourceIdx, currentTableNode.childCount - 1),
|
|
271915
|
-
insertIndex: Math.min(insertIdx, currentTableNode.childCount),
|
|
271916
|
-
schema
|
|
271917
|
-
});
|
|
272249
|
+
const didInsertRow = insertRowInTable2(tr, tablePos, Math.min(sourceIdx, currentTableNode.childCount - 1), Math.min(insertIdx, currentTableNode.childCount), schema);
|
|
272250
|
+
if (!didInsertRow) {
|
|
272251
|
+
return toTableFailure2("INVALID_TARGET", "Row insertion could not be applied.");
|
|
272252
|
+
}
|
|
271918
272253
|
}
|
|
271919
272254
|
if (mode === "tracked")
|
|
271920
272255
|
applyTrackedMutationMeta2(tr);
|
|
@@ -272763,40 +273098,20 @@ function tablesUnmergeCellsAdapter2(editor, input2, options) {
|
|
|
272763
273098
|
try {
|
|
272764
273099
|
const tr = editor.state.tr;
|
|
272765
273100
|
const tablePos = table2.candidate.pos;
|
|
272766
|
-
const tableStart = tablePos + 1;
|
|
272767
273101
|
const tableNode = table2.candidate.node;
|
|
272768
|
-
const map8 = TableMap2.get(tableNode);
|
|
272769
273102
|
const schema = editor.state.schema;
|
|
272770
|
-
|
|
272771
|
-
|
|
272772
|
-
|
|
272773
|
-
|
|
272774
|
-
|
|
272775
|
-
|
|
272776
|
-
|
|
272777
|
-
|
|
272778
|
-
|
|
272779
|
-
|
|
272780
|
-
|
|
272781
|
-
|
|
272782
|
-
}, cellNode.content);
|
|
272783
|
-
tr.replaceWith(cellPos, cellPos + cellNode.nodeSize, resetCell);
|
|
272784
|
-
const mapFrom = tr.mapping.maps.length;
|
|
272785
|
-
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--) {
|
|
272786
|
-
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
272787
|
-
if (row2 === rowIndex && col === columnIndex)
|
|
272788
|
-
continue;
|
|
272789
|
-
const newCell = schema.nodes.tableCell.createAndFill();
|
|
272790
|
-
let insertRelPos;
|
|
272791
|
-
if (row2 === rowIndex) {
|
|
272792
|
-
const baseRelPos = map8.positionAt(rowIndex, columnIndex, tableNode);
|
|
272793
|
-
insertRelPos = baseRelPos + resetCell.nodeSize;
|
|
272794
|
-
} else {
|
|
272795
|
-
insertRelPos = map8.positionAt(row2, col, tableNode);
|
|
272796
|
-
}
|
|
272797
|
-
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
272798
|
-
}
|
|
272799
|
-
}
|
|
273103
|
+
expandMergedCellIntoSingles2({
|
|
273104
|
+
tr,
|
|
273105
|
+
tablePos,
|
|
273106
|
+
tableNode,
|
|
273107
|
+
cellPos,
|
|
273108
|
+
cellNode,
|
|
273109
|
+
rowIndex,
|
|
273110
|
+
columnIndex,
|
|
273111
|
+
rowspan,
|
|
273112
|
+
colspan,
|
|
273113
|
+
schema
|
|
273114
|
+
});
|
|
272800
273115
|
applyDirectMutationMeta2(tr);
|
|
272801
273116
|
editor.dispatch(tr);
|
|
272802
273117
|
clearIndexCache2(editor);
|
|
@@ -272815,9 +273130,6 @@ function tablesSplitCellAdapter2(editor, input2, options) {
|
|
|
272815
273130
|
const attrs = cellNode.attrs;
|
|
272816
273131
|
const currentColspan = attrs.colspan || 1;
|
|
272817
273132
|
const currentRowspan = attrs.rowspan || 1;
|
|
272818
|
-
if ((currentColspan > 1 || currentRowspan > 1) && input2.rows === currentRowspan && input2.columns === currentColspan) {
|
|
272819
|
-
return tablesUnmergeCellsAdapter2(editor, input2, options);
|
|
272820
|
-
}
|
|
272821
273133
|
if (input2.rows === 1 && input2.columns === 1 && currentColspan === 1 && currentRowspan === 1) {
|
|
272822
273134
|
return toTableFailure2("NO_OP", "Cell is already a single cell and split target is 1×1.");
|
|
272823
273135
|
}
|
|
@@ -272827,25 +273139,78 @@ function tablesSplitCellAdapter2(editor, input2, options) {
|
|
|
272827
273139
|
try {
|
|
272828
273140
|
const tr = editor.state.tr;
|
|
272829
273141
|
const tablePos = table2.candidate.pos;
|
|
272830
|
-
const tableStart = tablePos + 1;
|
|
272831
|
-
const tableNode = table2.candidate.node;
|
|
272832
|
-
const map8 = TableMap2.get(tableNode);
|
|
272833
273142
|
const schema = editor.state.schema;
|
|
272834
|
-
const
|
|
272835
|
-
const
|
|
272836
|
-
const
|
|
272837
|
-
|
|
272838
|
-
|
|
272839
|
-
|
|
272840
|
-
|
|
272841
|
-
|
|
272842
|
-
|
|
272843
|
-
const newCell = schema.nodes.tableCell.createAndFill();
|
|
272844
|
-
if (row2 < map8.height && col < map8.width) {
|
|
272845
|
-
const insertPos = map8.positionAt(row2, col, tableNode);
|
|
272846
|
-
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertPos), newCell);
|
|
272847
|
-
}
|
|
273143
|
+
const targetColumns = Math.max(input2.columns, currentColspan);
|
|
273144
|
+
const targetRows = Math.max(input2.rows, currentRowspan);
|
|
273145
|
+
const additionalColumns = Math.max(0, targetColumns - currentColspan);
|
|
273146
|
+
const additionalRows = Math.max(0, targetRows - currentRowspan);
|
|
273147
|
+
let updatedGrid = table2.candidate.node.attrs.grid;
|
|
273148
|
+
if (currentColspan > 1 || currentRowspan > 1) {
|
|
273149
|
+
const currentTableNode = tr.doc.nodeAt(tablePos);
|
|
273150
|
+
if (!currentTableNode || currentTableNode.type.name !== "table") {
|
|
273151
|
+
return toTableFailure2("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
272848
273152
|
}
|
|
273153
|
+
const currentCellPos = tr.mapping.map(cellPos, 1);
|
|
273154
|
+
const currentCellNode = tr.doc.nodeAt(currentCellPos);
|
|
273155
|
+
if (!currentCellNode || currentCellNode.type.name !== "tableCell" && currentCellNode.type.name !== "tableHeader") {
|
|
273156
|
+
return toTableFailure2("INVALID_TARGET", "Split target cell is unavailable.");
|
|
273157
|
+
}
|
|
273158
|
+
expandMergedCellIntoSingles2({
|
|
273159
|
+
tr,
|
|
273160
|
+
tablePos,
|
|
273161
|
+
tableNode: currentTableNode,
|
|
273162
|
+
cellPos: currentCellPos,
|
|
273163
|
+
cellNode: currentCellNode,
|
|
273164
|
+
rowIndex,
|
|
273165
|
+
columnIndex,
|
|
273166
|
+
rowspan: currentRowspan,
|
|
273167
|
+
colspan: currentColspan,
|
|
273168
|
+
schema
|
|
273169
|
+
});
|
|
273170
|
+
}
|
|
273171
|
+
for (let columnOffset = 0;columnOffset < additionalColumns; columnOffset++) {
|
|
273172
|
+
const insertColumnIndex = columnIndex + currentColspan + columnOffset;
|
|
273173
|
+
addColumnToTableForSplit2(tr, tablePos, insertColumnIndex, rowIndex, rowIndex + targetRows);
|
|
273174
|
+
updatedGrid = insertGridColumnWidth2(updatedGrid, insertColumnIndex) ?? updatedGrid;
|
|
273175
|
+
}
|
|
273176
|
+
for (let rowOffset = 0;rowOffset < additionalRows; rowOffset++) {
|
|
273177
|
+
const currentTableNode = tr.doc.nodeAt(tablePos);
|
|
273178
|
+
if (!currentTableNode || currentTableNode.type.name !== "table") {
|
|
273179
|
+
return toTableFailure2("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
273180
|
+
}
|
|
273181
|
+
const insertIndex = rowIndex + currentRowspan + rowOffset;
|
|
273182
|
+
const boundedInsertIndex = Math.max(0, Math.min(insertIndex, currentTableNode.childCount));
|
|
273183
|
+
const sourceRowIndex = Math.max(0, Math.min(boundedInsertIndex - 1, currentTableNode.childCount - 1));
|
|
273184
|
+
const didInsertRow = insertRowInTableForSplit2(tr, tablePos, sourceRowIndex, boundedInsertIndex, columnIndex, columnIndex + targetColumns, schema);
|
|
273185
|
+
if (!didInsertRow) {
|
|
273186
|
+
return toTableFailure2("INVALID_TARGET", "Cell split could not insert required rows.");
|
|
273187
|
+
}
|
|
273188
|
+
}
|
|
273189
|
+
const finalTableNode = tr.doc.nodeAt(tablePos);
|
|
273190
|
+
if (!finalTableNode || finalTableNode.type.name !== "table") {
|
|
273191
|
+
return toTableFailure2("INVALID_TARGET", "Cell split target table is unavailable.");
|
|
273192
|
+
}
|
|
273193
|
+
const mappedTargetCellPos = tr.mapping.map(cellPos, 1);
|
|
273194
|
+
let finalTargetCellPos = mappedTargetCellPos;
|
|
273195
|
+
let finalTargetCell = tr.doc.nodeAt(finalTargetCellPos);
|
|
273196
|
+
if (!finalTargetCell || finalTargetCell.type.name !== "tableCell" && finalTargetCell.type.name !== "tableHeader") {
|
|
273197
|
+
const tableStart = tablePos + 1;
|
|
273198
|
+
const finalMap = TableMap2.get(finalTableNode);
|
|
273199
|
+
const finalTargetRelPos = finalMap.positionAt(rowIndex, columnIndex, finalTableNode);
|
|
273200
|
+
finalTargetCellPos = tableStart + finalTargetRelPos;
|
|
273201
|
+
finalTargetCell = tr.doc.nodeAt(finalTargetCellPos);
|
|
273202
|
+
}
|
|
273203
|
+
if (!finalTargetCell || finalTargetCell.type.name !== "tableCell" && finalTargetCell.type.name !== "tableHeader") {
|
|
273204
|
+
return toTableFailure2("INVALID_TARGET", "Split target cell is unavailable.");
|
|
273205
|
+
}
|
|
273206
|
+
tr.setNodeMarkup(finalTargetCellPos, null, normalizeCellAttrsForSingleCell2(finalTargetCell.attrs));
|
|
273207
|
+
if (updatedGrid) {
|
|
273208
|
+
const currentTableAttrs = finalTableNode.attrs;
|
|
273209
|
+
tr.setNodeMarkup(tablePos, null, {
|
|
273210
|
+
...currentTableAttrs,
|
|
273211
|
+
grid: updatedGrid,
|
|
273212
|
+
userEdited: true
|
|
273213
|
+
});
|
|
272849
273214
|
}
|
|
272850
273215
|
applyDirectMutationMeta2(tr);
|
|
272851
273216
|
editor.dispatch(tr);
|
|
@@ -273647,7 +274012,6 @@ var init_tables_adapter = __esm(() => {
|
|
|
273647
274012
|
init_tracked_change_refs();
|
|
273648
274013
|
init_errors3();
|
|
273649
274014
|
init_node_address_resolver();
|
|
273650
|
-
init_appendRows();
|
|
273651
274015
|
init_helpers();
|
|
273652
274016
|
POINTS_TO_PIXELS2 = 96 / 72;
|
|
273653
274017
|
PIXELS_TO_TWIPS2 = 1440 / 96;
|