@superdoc-dev/cli 0.2.0-next.34 → 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 +923 -470
- 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,203 +115653,18 @@ function toTableFailure(code$1, message, details) {
|
|
|
115653
115653
|
}
|
|
115654
115654
|
};
|
|
115655
115655
|
}
|
|
115656
|
-
function
|
|
115657
|
-
|
|
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;
|
|
115656
|
+
function generateParaId() {
|
|
115657
|
+
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
115665
115658
|
}
|
|
115666
|
-
function
|
|
115667
|
-
const
|
|
115668
|
-
|
|
115669
|
-
tableNode.descendants((child) => {
|
|
115670
|
-
if (child.type === RowType)
|
|
115671
|
-
rows.push(child);
|
|
115672
|
-
});
|
|
115673
|
-
if (!rows.length)
|
|
115659
|
+
function createSeparatorParagraph(schema) {
|
|
115660
|
+
const paragraphType = schema.nodes.paragraph;
|
|
115661
|
+
if (!paragraphType)
|
|
115674
115662
|
return null;
|
|
115675
|
-
|
|
115676
|
-
|
|
115677
|
-
|
|
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
|
|
115663
|
+
const separatorAttrs = {
|
|
115664
|
+
sdBlockId: v4_default(),
|
|
115665
|
+
paraId: generateParaId()
|
|
115709
115666
|
};
|
|
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
|
-
function generateParaId() {
|
|
115852
|
-
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
115667
|
+
return paragraphType.createAndFill(separatorAttrs) ?? paragraphType.createAndFill();
|
|
115853
115668
|
}
|
|
115854
115669
|
function buildTableSuccess(tableAddress, trackedChangeRefs) {
|
|
115855
115670
|
return {
|
|
@@ -115969,6 +115784,47 @@ function removeGridColumnWidth(grid, deleteIndex) {
|
|
|
115969
115784
|
columns: colWidths
|
|
115970
115785
|
});
|
|
115971
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
|
+
}
|
|
115972
115828
|
function isBoundaryEdge(edge) {
|
|
115973
115829
|
return edge === "top" || edge === "bottom" || edge === "left" || edge === "right" || edge === "insideH" || edge === "insideV";
|
|
115974
115830
|
}
|
|
@@ -116158,6 +116014,186 @@ function removeColumnFromTable(tr, tablePos, col) {
|
|
|
116158
116014
|
row2 += rowspan;
|
|
116159
116015
|
}
|
|
116160
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
|
+
}
|
|
116161
116197
|
function tablesDeleteAdapter(editor, input2, options) {
|
|
116162
116198
|
const mode = options?.changeMode ?? "direct";
|
|
116163
116199
|
if (mode === "tracked")
|
|
@@ -116327,14 +116363,8 @@ function tablesInsertRowAdapter(editor, input2, options) {
|
|
|
116327
116363
|
break;
|
|
116328
116364
|
const insertIdx = input2.position === "above" ? rowIndex + i$1 : rowIndex + 1 + i$1;
|
|
116329
116365
|
const sourceIdx = input2.position === "above" ? rowIndex + i$1 : rowIndex;
|
|
116330
|
-
|
|
116331
|
-
|
|
116332
|
-
tablePos,
|
|
116333
|
-
tableNode: currentTableNode,
|
|
116334
|
-
sourceRowIndex: Math.min(sourceIdx, currentTableNode.childCount - 1),
|
|
116335
|
-
insertIndex: Math.min(insertIdx, currentTableNode.childCount),
|
|
116336
|
-
schema
|
|
116337
|
-
});
|
|
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.");
|
|
116338
116368
|
}
|
|
116339
116369
|
if (mode === "tracked")
|
|
116340
116370
|
applyTrackedMutationMeta(tr);
|
|
@@ -116840,8 +116870,12 @@ function tablesSplitAdapter(editor, input2, options) {
|
|
|
116840
116870
|
delete newTableAttrs.paraId;
|
|
116841
116871
|
delete newTableAttrs.textId;
|
|
116842
116872
|
const newTable = schema.nodes.table.create(newTableAttrs, secondTableRows);
|
|
116873
|
+
const separatorParagraph = createSeparatorParagraph(schema);
|
|
116874
|
+
if (!separatorParagraph)
|
|
116875
|
+
return toTableFailure("INVALID_TARGET", "Table split could not create a separator paragraph.");
|
|
116843
116876
|
const insertPos = tr.mapping.slice(mapFrom).map(tablePos + tableNode.nodeSize);
|
|
116844
|
-
tr.insert(insertPos,
|
|
116877
|
+
tr.insert(insertPos, separatorParagraph);
|
|
116878
|
+
tr.insert(insertPos + separatorParagraph.nodeSize, newTable);
|
|
116845
116879
|
applyDirectMutationMeta(tr);
|
|
116846
116880
|
editor.dispatch(tr);
|
|
116847
116881
|
clearIndexCache(editor);
|
|
@@ -117142,35 +117176,21 @@ function tablesUnmergeCellsAdapter(editor, input2, options) {
|
|
|
117142
117176
|
return buildTableSuccess(table2.address);
|
|
117143
117177
|
try {
|
|
117144
117178
|
const tr = editor.state.tr;
|
|
117145
|
-
const
|
|
117179
|
+
const tablePos = table2.candidate.pos;
|
|
117146
117180
|
const tableNode = table2.candidate.node;
|
|
117147
|
-
const map$22 = TableMap.get(tableNode);
|
|
117148
117181
|
const schema = editor.state.schema;
|
|
117149
|
-
|
|
117150
|
-
|
|
117151
|
-
|
|
117152
|
-
|
|
117153
|
-
|
|
117154
|
-
|
|
117155
|
-
|
|
117156
|
-
|
|
117157
|
-
|
|
117158
|
-
|
|
117159
|
-
|
|
117160
|
-
|
|
117161
|
-
const mapFrom = tr.mapping.maps.length;
|
|
117162
|
-
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--)
|
|
117163
|
-
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
117164
|
-
if (row2 === rowIndex && col === columnIndex)
|
|
117165
|
-
continue;
|
|
117166
|
-
const newCell = schema.nodes.tableCell.createAndFill();
|
|
117167
|
-
let insertRelPos;
|
|
117168
|
-
if (row2 === rowIndex)
|
|
117169
|
-
insertRelPos = map$22.positionAt(rowIndex, columnIndex, tableNode) + resetCell.nodeSize;
|
|
117170
|
-
else
|
|
117171
|
-
insertRelPos = map$22.positionAt(row2, col, tableNode);
|
|
117172
|
-
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
117173
|
-
}
|
|
117182
|
+
expandMergedCellIntoSingles({
|
|
117183
|
+
tr,
|
|
117184
|
+
tablePos,
|
|
117185
|
+
tableNode,
|
|
117186
|
+
cellPos,
|
|
117187
|
+
cellNode,
|
|
117188
|
+
rowIndex,
|
|
117189
|
+
columnIndex,
|
|
117190
|
+
rowspan,
|
|
117191
|
+
colspan,
|
|
117192
|
+
schema
|
|
117193
|
+
});
|
|
117174
117194
|
applyDirectMutationMeta(tr);
|
|
117175
117195
|
editor.dispatch(tr);
|
|
117176
117196
|
clearIndexCache(editor);
|
|
@@ -117187,37 +117207,74 @@ function tablesSplitCellAdapter(editor, input2, options) {
|
|
|
117187
117207
|
const attrs = cellNode.attrs;
|
|
117188
117208
|
const currentColspan = attrs.colspan || 1;
|
|
117189
117209
|
const currentRowspan = attrs.rowspan || 1;
|
|
117190
|
-
if ((currentColspan > 1 || currentRowspan > 1) && input2.rows === currentRowspan && input2.columns === currentColspan)
|
|
117191
|
-
return tablesUnmergeCellsAdapter(editor, input2, options);
|
|
117192
117210
|
if (input2.rows === 1 && input2.columns === 1 && currentColspan === 1 && currentRowspan === 1)
|
|
117193
117211
|
return toTableFailure("NO_OP", "Cell is already a single cell and split target is 1×1.");
|
|
117194
117212
|
if (options?.dryRun)
|
|
117195
117213
|
return buildTableSuccess(table2.address);
|
|
117196
117214
|
try {
|
|
117197
117215
|
const tr = editor.state.tr;
|
|
117198
|
-
const
|
|
117199
|
-
const tableNode = table2.candidate.node;
|
|
117200
|
-
const map$22 = TableMap.get(tableNode);
|
|
117216
|
+
const tablePos = table2.candidate.pos;
|
|
117201
117217
|
const schema = editor.state.schema;
|
|
117202
|
-
const
|
|
117203
|
-
const
|
|
117204
|
-
const
|
|
117205
|
-
|
|
117206
|
-
|
|
117207
|
-
|
|
117208
|
-
|
|
117209
|
-
|
|
117210
|
-
|
|
117211
|
-
|
|
117212
|
-
|
|
117213
|
-
|
|
117214
|
-
|
|
117215
|
-
|
|
117216
|
-
|
|
117217
|
-
|
|
117218
|
-
|
|
117219
|
-
|
|
117220
|
-
|
|
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
|
+
}
|
|
117221
117278
|
applyDirectMutationMeta(tr);
|
|
117222
117279
|
editor.dispatch(tr);
|
|
117223
117280
|
clearIndexCache(editor);
|
|
@@ -117601,6 +117658,38 @@ function tablesSetShadingAdapter(editor, input2, options) {
|
|
|
117601
117658
|
[propsKey]: currentProps,
|
|
117602
117659
|
...syncAttrs
|
|
117603
117660
|
});
|
|
117661
|
+
if (resolved.scope === "table") {
|
|
117662
|
+
const tableNode = resolved.node;
|
|
117663
|
+
const tableStart = resolved.pos + 1;
|
|
117664
|
+
const map$22 = TableMap.get(tableNode);
|
|
117665
|
+
const seen = /* @__PURE__ */ new Set;
|
|
117666
|
+
const mapFrom = tr.mapping.maps.length;
|
|
117667
|
+
for (let i$1 = 0;i$1 < map$22.map.length; i$1++) {
|
|
117668
|
+
const relPos = map$22.map[i$1];
|
|
117669
|
+
if (seen.has(relPos))
|
|
117670
|
+
continue;
|
|
117671
|
+
seen.add(relPos);
|
|
117672
|
+
const cellNode = tableNode.nodeAt(relPos);
|
|
117673
|
+
if (!cellNode)
|
|
117674
|
+
continue;
|
|
117675
|
+
const cellAttrs = cellNode.attrs;
|
|
117676
|
+
const cellProps = { ...cellAttrs.tableCellProperties ?? {} };
|
|
117677
|
+
cellProps.shading = {
|
|
117678
|
+
fill: input2.color,
|
|
117679
|
+
val: "clear",
|
|
117680
|
+
color: "auto"
|
|
117681
|
+
};
|
|
117682
|
+
const nextCellAttrs = {
|
|
117683
|
+
...cellAttrs,
|
|
117684
|
+
tableCellProperties: cellProps
|
|
117685
|
+
};
|
|
117686
|
+
if (input2.color === "auto")
|
|
117687
|
+
delete nextCellAttrs.background;
|
|
117688
|
+
else
|
|
117689
|
+
nextCellAttrs.background = { color: input2.color };
|
|
117690
|
+
tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(tableStart + relPos), null, nextCellAttrs);
|
|
117691
|
+
}
|
|
117692
|
+
}
|
|
117604
117693
|
applyDirectMutationMeta(tr);
|
|
117605
117694
|
editor.dispatch(tr);
|
|
117606
117695
|
clearIndexCache(editor);
|
|
@@ -138431,6 +138520,201 @@ function cellWrapping($pos) {
|
|
|
138431
138520
|
}
|
|
138432
138521
|
return null;
|
|
138433
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
|
+
}
|
|
138434
138718
|
function getCellType({ node: node3, state }) {
|
|
138435
138719
|
return tableNodeTypes(state.schema)[node3.type.spec.tableRole];
|
|
138436
138720
|
}
|
|
@@ -154686,13 +154970,7 @@ var Node$13 = class Node$14 {
|
|
|
154686
154970
|
console.warn("Failed to initialize developer tools:", error);
|
|
154687
154971
|
}
|
|
154688
154972
|
}
|
|
154689
|
-
}, 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) => {
|
|
154690
|
-
if (attrs?.borders !== null)
|
|
154691
|
-
return attrs;
|
|
154692
|
-
const nextAttrs = { ...attrs };
|
|
154693
|
-
delete nextAttrs.borders;
|
|
154694
|
-
return nextAttrs;
|
|
154695
|
-
}, 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 {
|
|
154696
154974
|
constructor(config2) {
|
|
154697
154975
|
this.search = config2.search;
|
|
154698
154976
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -168537,6 +168815,12 @@ var Node$13 = class Node$14 {
|
|
|
168537
168815
|
return false;
|
|
168538
168816
|
editor.commands.deleteTable();
|
|
168539
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;
|
|
168540
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) => {
|
|
168541
168825
|
if (!borders)
|
|
168542
168826
|
return {};
|
|
@@ -173086,7 +173370,7 @@ var Node$13 = class Node$14 {
|
|
|
173086
173370
|
trackedChanges: context.trackedChanges ?? []
|
|
173087
173371
|
});
|
|
173088
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;
|
|
173089
|
-
var
|
|
173373
|
+
var init_src_De1yZkuR_es = __esm(() => {
|
|
173090
173374
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
173091
173375
|
init_SuperConverter_BSZgN87C_es();
|
|
173092
173376
|
init_jszip_ChlR43oI_es();
|
|
@@ -203979,8 +204263,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
203979
204263
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
203980
204264
|
};
|
|
203981
204265
|
stubFalse_default = stubFalse;
|
|
203982
|
-
freeExports$2 = typeof
|
|
203983
|
-
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;
|
|
203984
204268
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
203985
204269
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
203986
204270
|
typedArrayTags = {};
|
|
@@ -203988,8 +204272,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
203988
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;
|
|
203989
204273
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
203990
204274
|
_baseUnary_default = baseUnary;
|
|
203991
|
-
freeExports$1 = typeof
|
|
203992
|
-
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;
|
|
203993
204277
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
203994
204278
|
_nodeUtil_default = function() {
|
|
203995
204279
|
try {
|
|
@@ -204094,8 +204378,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
204094
204378
|
Stack.prototype.has = _stackHas_default;
|
|
204095
204379
|
Stack.prototype.set = _stackSet_default;
|
|
204096
204380
|
_Stack_default = Stack;
|
|
204097
|
-
freeExports = typeof
|
|
204098
|
-
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;
|
|
204099
204383
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
204100
204384
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
204101
204385
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -211747,7 +212031,7 @@ var init_zipper_Cnk_HjM2_es = __esm(() => {
|
|
|
211747
212031
|
|
|
211748
212032
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
211749
212033
|
var init_super_editor_es = __esm(() => {
|
|
211750
|
-
|
|
212034
|
+
init_src_De1yZkuR_es();
|
|
211751
212035
|
init_SuperConverter_BSZgN87C_es();
|
|
211752
212036
|
init_jszip_ChlR43oI_es();
|
|
211753
212037
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -271253,146 +271537,20 @@ var init_table_target_resolver = __esm(() => {
|
|
|
271253
271537
|
init_errors3();
|
|
271254
271538
|
});
|
|
271255
271539
|
|
|
271256
|
-
// ../../packages/super-editor/src/extensions/table/tableHelpers/appendRows.js
|
|
271257
|
-
function extractRowTemplateFormatting2(cellNode, schema) {
|
|
271258
|
-
const ParagraphType = schema.nodes.paragraph;
|
|
271259
|
-
let blockType = ParagraphType;
|
|
271260
|
-
let blockAttrs = null;
|
|
271261
|
-
let textMarks = [];
|
|
271262
|
-
const blocks2 = cellNode?.content?.content || [];
|
|
271263
|
-
for (const block of blocks2) {
|
|
271264
|
-
const isParagraphish = block.type === ParagraphType || block.type.name === "heading";
|
|
271265
|
-
if (isParagraphish) {
|
|
271266
|
-
blockType = block.type || ParagraphType;
|
|
271267
|
-
blockAttrs = block.attrs || null;
|
|
271268
|
-
}
|
|
271269
|
-
let foundText = null;
|
|
271270
|
-
block.descendants?.((n) => {
|
|
271271
|
-
if (!foundText && n.isText)
|
|
271272
|
-
foundText = n;
|
|
271273
|
-
});
|
|
271274
|
-
if (foundText) {
|
|
271275
|
-
textMarks = foundText.marks ? Array.from(foundText.marks) : [];
|
|
271276
|
-
break;
|
|
271277
|
-
}
|
|
271278
|
-
}
|
|
271279
|
-
if (!blockType || !blockType.validContent)
|
|
271280
|
-
blockType = ParagraphType;
|
|
271281
|
-
return { blockType, blockAttrs, textMarks };
|
|
271282
|
-
}
|
|
271283
|
-
function buildFormattedCellBlock2(schema, value, { blockType, blockAttrs, textMarks }, copyRowStyle = false) {
|
|
271284
|
-
const text9 = typeof value === "string" ? value : value == null ? "" : String(value);
|
|
271285
|
-
const type = blockType || schema.nodes.paragraph;
|
|
271286
|
-
const marks = copyRowStyle ? textMarks || [] : [];
|
|
271287
|
-
if (!text9) {
|
|
271288
|
-
const content5 = marks.length > 0 ? schema.text(ZERO_WIDTH_SPACE2, marks) : null;
|
|
271289
|
-
return type.createAndFill(blockAttrs || null, content5);
|
|
271290
|
-
}
|
|
271291
|
-
const textNode = schema.text(text9, marks);
|
|
271292
|
-
return type.createAndFill(blockAttrs || null, textNode);
|
|
271293
|
-
}
|
|
271294
|
-
function insertRowAtIndex2({ tr, tablePos, tableNode, sourceRowIndex, insertIndex, schema }) {
|
|
271295
|
-
const sourceRow = tableNode.child(sourceRowIndex);
|
|
271296
|
-
if (!sourceRow)
|
|
271297
|
-
return false;
|
|
271298
|
-
const map8 = TableMap2.get(tableNode);
|
|
271299
|
-
const { width, height } = map8;
|
|
271300
|
-
const newCells = [];
|
|
271301
|
-
const cellsToExtend = [];
|
|
271302
|
-
const RowType = schema.nodes.tableRow;
|
|
271303
|
-
const CellType = schema.nodes.tableCell;
|
|
271304
|
-
const sourceFormatting = extractRowTemplateFormatting2(sourceRow.firstChild, schema);
|
|
271305
|
-
for (let col = 0;col < width; ) {
|
|
271306
|
-
if (insertIndex > 0 && insertIndex < height) {
|
|
271307
|
-
const indexAbove = (insertIndex - 1) * width + col;
|
|
271308
|
-
const indexAtInsert = insertIndex * width + col;
|
|
271309
|
-
if (map8.map[indexAbove] === map8.map[indexAtInsert]) {
|
|
271310
|
-
const cellPos = map8.map[indexAbove];
|
|
271311
|
-
const cell2 = tableNode.nodeAt(cellPos);
|
|
271312
|
-
if (cell2) {
|
|
271313
|
-
const attrs = cell2.attrs;
|
|
271314
|
-
cellsToExtend.push({
|
|
271315
|
-
pos: tablePos + 1 + cellPos,
|
|
271316
|
-
attrs: { ...attrs, rowspan: (attrs.rowspan || 1) + 1 }
|
|
271317
|
-
});
|
|
271318
|
-
col += attrs.colspan || 1;
|
|
271319
|
-
continue;
|
|
271320
|
-
}
|
|
271321
|
-
}
|
|
271322
|
-
}
|
|
271323
|
-
const sourceMapIndex = sourceRowIndex * width + col;
|
|
271324
|
-
const sourceCellPos = map8.map[sourceMapIndex];
|
|
271325
|
-
const sourceCell = tableNode.nodeAt(sourceCellPos);
|
|
271326
|
-
if (!sourceCell) {
|
|
271327
|
-
const fallbackCell = sourceRow.firstChild;
|
|
271328
|
-
const formatting2 = extractRowTemplateFormatting2(fallbackCell, schema);
|
|
271329
|
-
const content6 = buildFormattedCellBlock2(schema, "", formatting2, true);
|
|
271330
|
-
const newCell2 = CellType.createAndFill({ rowspan: 1, colspan: 1 }, content6);
|
|
271331
|
-
if (newCell2)
|
|
271332
|
-
newCells.push(newCell2);
|
|
271333
|
-
col += 1;
|
|
271334
|
-
continue;
|
|
271335
|
-
}
|
|
271336
|
-
const colspan = sourceCell.attrs.colspan || 1;
|
|
271337
|
-
const formatting = extractRowTemplateFormatting2(sourceCell, schema);
|
|
271338
|
-
const cellAttrs = {
|
|
271339
|
-
...sourceCell.attrs,
|
|
271340
|
-
rowspan: 1
|
|
271341
|
-
};
|
|
271342
|
-
const content5 = buildFormattedCellBlock2(schema, "", formatting, true);
|
|
271343
|
-
const targetCellType = sourceCell.type.name === "tableHeader" ? CellType : sourceCell.type;
|
|
271344
|
-
const normalizedCellAttrs = sourceCell.type.name === "tableHeader" ? normalizeHeaderAttrsForBodyCell2(cellAttrs) : cellAttrs;
|
|
271345
|
-
const newCell = targetCellType.createAndFill(normalizedCellAttrs, content5);
|
|
271346
|
-
if (newCell)
|
|
271347
|
-
newCells.push(newCell);
|
|
271348
|
-
col += colspan;
|
|
271349
|
-
}
|
|
271350
|
-
for (const { pos, attrs } of cellsToExtend) {
|
|
271351
|
-
tr.setNodeMarkup(pos, null, attrs);
|
|
271352
|
-
}
|
|
271353
|
-
let insertPos = tablePos + 1;
|
|
271354
|
-
for (let i5 = 0;i5 < insertIndex; i5++) {
|
|
271355
|
-
insertPos += tableNode.child(i5).nodeSize;
|
|
271356
|
-
}
|
|
271357
|
-
if (newCells.length > 0) {
|
|
271358
|
-
const newRow = RowType.createAndFill(null, newCells);
|
|
271359
|
-
if (newRow) {
|
|
271360
|
-
tr.insert(insertPos, newRow);
|
|
271361
|
-
const cursorPos = insertPos + ROW_START_TO_TEXT_OFFSET2;
|
|
271362
|
-
tr.setSelection(TextSelection4.create(tr.doc, cursorPos));
|
|
271363
|
-
const firstCellBlock = newCells[0].firstChild;
|
|
271364
|
-
const firstTextNode = firstCellBlock?.firstChild;
|
|
271365
|
-
if (firstTextNode?.marks?.length) {
|
|
271366
|
-
tr.setStoredMarks(firstTextNode.marks);
|
|
271367
|
-
} else if (sourceFormatting.textMarks?.length) {
|
|
271368
|
-
tr.setStoredMarks(sourceFormatting.textMarks);
|
|
271369
|
-
}
|
|
271370
|
-
}
|
|
271371
|
-
} else {
|
|
271372
|
-
if (cellsToExtend.length > 0) {
|
|
271373
|
-
const spanningCellPos = cellsToExtend[0].pos;
|
|
271374
|
-
const cursorPos = spanningCellPos + CELL_TO_TEXT_OFFSET2;
|
|
271375
|
-
tr.setSelection(TextSelection4.create(tr.doc, cursorPos));
|
|
271376
|
-
}
|
|
271377
|
-
}
|
|
271378
|
-
return true;
|
|
271379
|
-
}
|
|
271380
|
-
var ZERO_WIDTH_SPACE2 = "", ROW_START_TO_TEXT_OFFSET2 = 3, CELL_TO_TEXT_OFFSET2 = 2, normalizeHeaderAttrsForBodyCell2 = (attrs) => {
|
|
271381
|
-
if (attrs?.borders !== null)
|
|
271382
|
-
return attrs;
|
|
271383
|
-
const nextAttrs = { ...attrs };
|
|
271384
|
-
delete nextAttrs.borders;
|
|
271385
|
-
return nextAttrs;
|
|
271386
|
-
};
|
|
271387
|
-
var init_appendRows = __esm(() => {
|
|
271388
|
-
init_dist7();
|
|
271389
|
-
init_dist4();
|
|
271390
|
-
});
|
|
271391
|
-
|
|
271392
271540
|
// ../../packages/super-editor/src/document-api-adapters/tables-adapter.ts
|
|
271393
271541
|
function generateParaId2() {
|
|
271394
271542
|
return Array.from({ length: 8 }, () => Math.floor(Math.random() * 16).toString(16)).join("").toUpperCase();
|
|
271395
271543
|
}
|
|
271544
|
+
function createSeparatorParagraph2(schema) {
|
|
271545
|
+
const paragraphType = schema.nodes.paragraph;
|
|
271546
|
+
if (!paragraphType)
|
|
271547
|
+
return null;
|
|
271548
|
+
const separatorAttrs = {
|
|
271549
|
+
sdBlockId: v42(),
|
|
271550
|
+
paraId: generateParaId2()
|
|
271551
|
+
};
|
|
271552
|
+
return paragraphType.createAndFill(separatorAttrs) ?? paragraphType.createAndFill();
|
|
271553
|
+
}
|
|
271396
271554
|
function buildTableSuccess2(tableAddress, trackedChangeRefs) {
|
|
271397
271555
|
return {
|
|
271398
271556
|
success: true,
|
|
@@ -271494,6 +271652,64 @@ function removeGridColumnWidth2(grid, deleteIndex) {
|
|
|
271494
271652
|
colWidths.splice(boundedIndex, 1);
|
|
271495
271653
|
return serializeGridColumns2(grid, { ...normalized, columns: colWidths });
|
|
271496
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
|
+
}
|
|
271497
271713
|
function isBoundaryEdge2(edge) {
|
|
271498
271714
|
return edge === "top" || edge === "bottom" || edge === "left" || edge === "right" || edge === "insideH" || edge === "insideV";
|
|
271499
271715
|
}
|
|
@@ -271673,6 +271889,185 @@ function removeColumnFromTable2(tr, tablePos, col) {
|
|
|
271673
271889
|
row2 += rowspan;
|
|
271674
271890
|
}
|
|
271675
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
|
+
}
|
|
271676
272071
|
function tablesDeleteAdapter2(editor, input2, options) {
|
|
271677
272072
|
const mode = options?.changeMode ?? "direct";
|
|
271678
272073
|
if (mode === "tracked") {
|
|
@@ -271851,14 +272246,10 @@ function tablesInsertRowAdapter2(editor, input2, options) {
|
|
|
271851
272246
|
break;
|
|
271852
272247
|
const insertIdx = input2.position === "above" ? rowIndex + i5 : rowIndex + 1 + i5;
|
|
271853
272248
|
const sourceIdx = input2.position === "above" ? rowIndex + i5 : rowIndex;
|
|
271854
|
-
|
|
271855
|
-
|
|
271856
|
-
|
|
271857
|
-
|
|
271858
|
-
sourceRowIndex: Math.min(sourceIdx, currentTableNode.childCount - 1),
|
|
271859
|
-
insertIndex: Math.min(insertIdx, currentTableNode.childCount),
|
|
271860
|
-
schema
|
|
271861
|
-
});
|
|
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
|
+
}
|
|
271862
272253
|
}
|
|
271863
272254
|
if (mode === "tracked")
|
|
271864
272255
|
applyTrackedMutationMeta2(tr);
|
|
@@ -272367,8 +272758,13 @@ function tablesSplitAdapter2(editor, input2, options) {
|
|
|
272367
272758
|
delete newTableAttrs.paraId;
|
|
272368
272759
|
delete newTableAttrs.textId;
|
|
272369
272760
|
const newTable = schema.nodes.table.create(newTableAttrs, secondTableRows);
|
|
272761
|
+
const separatorParagraph = createSeparatorParagraph2(schema);
|
|
272762
|
+
if (!separatorParagraph) {
|
|
272763
|
+
return toTableFailure2("INVALID_TARGET", "Table split could not create a separator paragraph.");
|
|
272764
|
+
}
|
|
272370
272765
|
const insertPos = tr.mapping.slice(mapFrom).map(tablePos + tableNode.nodeSize);
|
|
272371
|
-
tr.insert(insertPos,
|
|
272766
|
+
tr.insert(insertPos, separatorParagraph);
|
|
272767
|
+
tr.insert(insertPos + separatorParagraph.nodeSize, newTable);
|
|
272372
272768
|
applyDirectMutationMeta2(tr);
|
|
272373
272769
|
editor.dispatch(tr);
|
|
272374
272770
|
clearIndexCache2(editor);
|
|
@@ -272702,40 +273098,20 @@ function tablesUnmergeCellsAdapter2(editor, input2, options) {
|
|
|
272702
273098
|
try {
|
|
272703
273099
|
const tr = editor.state.tr;
|
|
272704
273100
|
const tablePos = table2.candidate.pos;
|
|
272705
|
-
const tableStart = tablePos + 1;
|
|
272706
273101
|
const tableNode = table2.candidate.node;
|
|
272707
|
-
const map8 = TableMap2.get(tableNode);
|
|
272708
273102
|
const schema = editor.state.schema;
|
|
272709
|
-
|
|
272710
|
-
|
|
272711
|
-
|
|
272712
|
-
|
|
272713
|
-
|
|
272714
|
-
|
|
272715
|
-
|
|
272716
|
-
|
|
272717
|
-
|
|
272718
|
-
|
|
272719
|
-
|
|
272720
|
-
|
|
272721
|
-
}, cellNode.content);
|
|
272722
|
-
tr.replaceWith(cellPos, cellPos + cellNode.nodeSize, resetCell);
|
|
272723
|
-
const mapFrom = tr.mapping.maps.length;
|
|
272724
|
-
for (let row2 = rowIndex + rowspan - 1;row2 >= rowIndex; row2--) {
|
|
272725
|
-
for (let col = columnIndex + colspan - 1;col >= columnIndex; col--) {
|
|
272726
|
-
if (row2 === rowIndex && col === columnIndex)
|
|
272727
|
-
continue;
|
|
272728
|
-
const newCell = schema.nodes.tableCell.createAndFill();
|
|
272729
|
-
let insertRelPos;
|
|
272730
|
-
if (row2 === rowIndex) {
|
|
272731
|
-
const baseRelPos = map8.positionAt(rowIndex, columnIndex, tableNode);
|
|
272732
|
-
insertRelPos = baseRelPos + resetCell.nodeSize;
|
|
272733
|
-
} else {
|
|
272734
|
-
insertRelPos = map8.positionAt(row2, col, tableNode);
|
|
272735
|
-
}
|
|
272736
|
-
tr.insert(tr.mapping.slice(mapFrom).map(tableStart + insertRelPos), newCell);
|
|
272737
|
-
}
|
|
272738
|
-
}
|
|
273103
|
+
expandMergedCellIntoSingles2({
|
|
273104
|
+
tr,
|
|
273105
|
+
tablePos,
|
|
273106
|
+
tableNode,
|
|
273107
|
+
cellPos,
|
|
273108
|
+
cellNode,
|
|
273109
|
+
rowIndex,
|
|
273110
|
+
columnIndex,
|
|
273111
|
+
rowspan,
|
|
273112
|
+
colspan,
|
|
273113
|
+
schema
|
|
273114
|
+
});
|
|
272739
273115
|
applyDirectMutationMeta2(tr);
|
|
272740
273116
|
editor.dispatch(tr);
|
|
272741
273117
|
clearIndexCache2(editor);
|
|
@@ -272754,9 +273130,6 @@ function tablesSplitCellAdapter2(editor, input2, options) {
|
|
|
272754
273130
|
const attrs = cellNode.attrs;
|
|
272755
273131
|
const currentColspan = attrs.colspan || 1;
|
|
272756
273132
|
const currentRowspan = attrs.rowspan || 1;
|
|
272757
|
-
if ((currentColspan > 1 || currentRowspan > 1) && input2.rows === currentRowspan && input2.columns === currentColspan) {
|
|
272758
|
-
return tablesUnmergeCellsAdapter2(editor, input2, options);
|
|
272759
|
-
}
|
|
272760
273133
|
if (input2.rows === 1 && input2.columns === 1 && currentColspan === 1 && currentRowspan === 1) {
|
|
272761
273134
|
return toTableFailure2("NO_OP", "Cell is already a single cell and split target is 1×1.");
|
|
272762
273135
|
}
|
|
@@ -272766,25 +273139,78 @@ function tablesSplitCellAdapter2(editor, input2, options) {
|
|
|
272766
273139
|
try {
|
|
272767
273140
|
const tr = editor.state.tr;
|
|
272768
273141
|
const tablePos = table2.candidate.pos;
|
|
272769
|
-
const tableStart = tablePos + 1;
|
|
272770
|
-
const tableNode = table2.candidate.node;
|
|
272771
|
-
const map8 = TableMap2.get(tableNode);
|
|
272772
273142
|
const schema = editor.state.schema;
|
|
272773
|
-
const
|
|
272774
|
-
const
|
|
272775
|
-
const
|
|
272776
|
-
|
|
272777
|
-
|
|
272778
|
-
|
|
272779
|
-
|
|
272780
|
-
|
|
272781
|
-
|
|
272782
|
-
|
|
272783
|
-
|
|
272784
|
-
|
|
272785
|
-
|
|
272786
|
-
|
|
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.");
|
|
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.");
|
|
272787
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
|
+
});
|
|
272788
273214
|
}
|
|
272789
273215
|
applyDirectMutationMeta2(tr);
|
|
272790
273216
|
editor.dispatch(tr);
|
|
@@ -273134,6 +273560,34 @@ function tablesSetShadingAdapter2(editor, input2, options) {
|
|
|
273134
273560
|
currentProps.shading = { fill: input2.color, val: "clear", color: "auto" };
|
|
273135
273561
|
const syncAttrs = resolved.scope === "table" ? syncExtractedTableAttrs2(currentProps) : {};
|
|
273136
273562
|
tr.setNodeMarkup(resolved.pos, null, { ...currentAttrs, [propsKey]: currentProps, ...syncAttrs });
|
|
273563
|
+
if (resolved.scope === "table") {
|
|
273564
|
+
const tableNode = resolved.node;
|
|
273565
|
+
const tableStart = resolved.pos + 1;
|
|
273566
|
+
const map8 = TableMap2.get(tableNode);
|
|
273567
|
+
const seen = new Set;
|
|
273568
|
+
const mapFrom = tr.mapping.maps.length;
|
|
273569
|
+
for (let i5 = 0;i5 < map8.map.length; i5++) {
|
|
273570
|
+
const relPos = map8.map[i5];
|
|
273571
|
+
if (seen.has(relPos))
|
|
273572
|
+
continue;
|
|
273573
|
+
seen.add(relPos);
|
|
273574
|
+
const cellNode = tableNode.nodeAt(relPos);
|
|
273575
|
+
if (!cellNode)
|
|
273576
|
+
continue;
|
|
273577
|
+
const cellAttrs = cellNode.attrs;
|
|
273578
|
+
const cellProps = { ...cellAttrs.tableCellProperties ?? {} };
|
|
273579
|
+
cellProps.shading = { fill: input2.color, val: "clear", color: "auto" };
|
|
273580
|
+
const nextCellAttrs = {
|
|
273581
|
+
...cellAttrs,
|
|
273582
|
+
tableCellProperties: cellProps
|
|
273583
|
+
};
|
|
273584
|
+
if (input2.color === "auto")
|
|
273585
|
+
delete nextCellAttrs.background;
|
|
273586
|
+
else
|
|
273587
|
+
nextCellAttrs.background = { color: input2.color };
|
|
273588
|
+
tr.setNodeMarkup(tr.mapping.slice(mapFrom).map(tableStart + relPos), null, nextCellAttrs);
|
|
273589
|
+
}
|
|
273590
|
+
}
|
|
273137
273591
|
applyDirectMutationMeta2(tr);
|
|
273138
273592
|
editor.dispatch(tr);
|
|
273139
273593
|
clearIndexCache2(editor);
|
|
@@ -273558,7 +274012,6 @@ var init_tables_adapter = __esm(() => {
|
|
|
273558
274012
|
init_tracked_change_refs();
|
|
273559
274013
|
init_errors3();
|
|
273560
274014
|
init_node_address_resolver();
|
|
273561
|
-
init_appendRows();
|
|
273562
274015
|
init_helpers();
|
|
273563
274016
|
POINTS_TO_PIXELS2 = 96 / 72;
|
|
273564
274017
|
PIXELS_TO_TWIPS2 = 1440 / 96;
|