ooxml-core 1.10.0 → 1.11.0
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/PptxHandler-DNZHAHUY.cjs +12 -0
- package/dist/PptxHandler-E44KDHMQ.mjs +3 -0
- package/dist/{PptxHandler-ADEFY476.mjs → PptxHandler-NROFYT2N.mjs} +2 -2
- package/dist/automation/index.cjs +3293 -2867
- package/dist/automation/index.mjs +3293 -2867
- package/dist/{chunk-3N6XMMTT.cjs → chunk-2UVH6RHI.cjs} +1138 -996
- package/dist/{chunk-ZOUGMAZG.mjs → chunk-7DSZI7S6.mjs} +1 -1
- package/dist/{chunk-S6DOCMQC.cjs → chunk-7QZGRB3T.cjs} +0 -10
- package/dist/chunk-ANZ4Q6I3.cjs +21 -0
- package/dist/{chunk-5NVJN4E6.mjs → chunk-EC2W2MDY.mjs} +1 -1
- package/dist/chunk-EGTRL3QJ.mjs +19 -0
- package/dist/chunk-GXHKNSZX.mjs +9 -0
- package/dist/{chunk-CCHYFCPD.mjs → chunk-HCXUI5UC.mjs} +296 -103
- package/dist/chunk-HDQXPSHY.cjs +17 -0
- package/dist/chunk-KTYBFGEY.mjs +14 -0
- package/dist/chunk-QOO36KG4.cjs +42 -0
- package/dist/chunk-R2KZXD6U.mjs +39 -0
- package/dist/{chunk-A6P7G3UK.mjs → chunk-U2DF3EGK.mjs} +1 -1
- package/dist/{chunk-R6KSBNKX.mjs → chunk-UAY26XOI.mjs} +1 -9
- package/dist/{chunk-WUE5ZHU3.mjs → chunk-W5ARCUJB.mjs} +3 -3
- package/dist/chunk-XZPZHXV4.cjs +12 -0
- package/dist/{chunk-ZE53K7DH.mjs → chunk-YB5SRNFS.mjs} +244 -102
- package/dist/docx/layout/flow-table.d.ts.map +1 -1
- package/dist/docx/layout/index.cjs +125 -56
- package/dist/docx/layout/index.mjs +125 -56
- package/dist/docx/layout/nested-fragment-edges.d.ts +9 -0
- package/dist/docx/layout/nested-fragment-edges.d.ts.map +1 -0
- package/dist/docx/layout/result.d.ts +7 -0
- package/dist/docx/layout/result.d.ts.map +1 -1
- package/dist/docx/layout/table-border-layout.d.ts +1 -1
- package/dist/docx/layout/table-border-layout.d.ts.map +1 -1
- package/dist/docx/layout/table-cell-layout.d.ts +1 -1
- package/dist/docx/layout/table-cell-layout.d.ts.map +1 -1
- package/dist/docx/layout/table-frames.d.ts.map +1 -1
- package/dist/docx/layout/table-layout.d.ts +1 -1
- package/dist/docx/layout/table-layout.d.ts.map +1 -1
- package/dist/pptx/automation/index.cjs +266 -114
- package/dist/pptx/automation/index.d.ts +5 -4
- package/dist/pptx/automation/index.d.ts.map +1 -1
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/chunks/{text-operations-BqHmLaLA.d.ts → elements-DD3UGOMd.d.ts} +17 -3262
- package/dist/pptx/chunks/elements-DD3UGOMd.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-DUCGeZh7.d.ts → index-BZrFyNtU.d.ts} +53 -5
- package/dist/pptx/chunks/index-BZrFyNtU.d.ts.map +1 -0
- package/dist/pptx/chunks/{index-Cuxtr76Y.d.ts → index-DdX02BSm.d.ts} +5 -3
- package/dist/pptx/chunks/index-DdX02BSm.d.ts.map +1 -0
- package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts +1512 -0
- package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts.map +1 -0
- package/dist/pptx/chunks/text-D49FKllA.d.ts +1473 -0
- package/dist/pptx/chunks/text-D49FKllA.d.ts.map +1 -0
- package/dist/pptx/chunks/text-operations-CyMTMfID.d.ts +3261 -0
- package/dist/pptx/chunks/text-operations-CyMTMfID.d.ts.map +1 -0
- package/dist/pptx/cli/index.cjs +266 -114
- package/dist/pptx/cli/index.d.ts +1 -1
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.d.ts +1 -1
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/editor/render/find-replace.cjs +17 -16
- package/dist/pptx/editor/render/find-replace.d.ts +2 -2
- package/dist/pptx/editor/render/find-replace.mjs +2 -1
- package/dist/pptx/editor/render/font-family-update.cjs +14 -0
- package/dist/pptx/editor/render/font-family-update.d.ts +17 -0
- package/dist/pptx/editor/render/font-family-update.d.ts.map +1 -0
- package/dist/pptx/editor/render/font-family-update.mjs +1 -0
- package/dist/pptx/editor/render/paragraph-geometry-overrides.cjs +14 -0
- package/dist/pptx/editor/render/paragraph-geometry-overrides.d.ts +17 -0
- package/dist/pptx/editor/render/paragraph-geometry-overrides.d.ts.map +1 -0
- package/dist/pptx/editor/render/paragraph-geometry-overrides.mjs +12 -0
- package/dist/pptx/editor/render/slide-operations.cjs +9 -8
- package/dist/pptx/editor/render/slide-operations.mjs +3 -2
- package/dist/pptx/editor/render/table-data-grid-ops.cjs +1 -1
- package/dist/pptx/editor/render/table-data-grid-ops.mjs +1 -1
- package/dist/pptx/editor/render/text-content-style.cjs +18 -0
- package/dist/pptx/editor/render/text-content-style.d.ts +9 -0
- package/dist/pptx/editor/render/text-content-style.d.ts.map +1 -0
- package/dist/pptx/editor/render/text-content-style.mjs +5 -0
- package/dist/pptx/editor/render/text-runs-style-patch.cjs +17 -0
- package/dist/pptx/editor/render/text-runs-style-patch.d.ts +7 -0
- package/dist/pptx/editor/render/text-runs-style-patch.d.ts.map +1 -0
- package/dist/pptx/editor/render/text-runs-style-patch.mjs +15 -0
- package/dist/pptx/editor/render/text-style-scope.cjs +173 -0
- package/dist/pptx/editor/render/text-style-scope.d.ts +76 -0
- package/dist/pptx/editor/render/text-style-scope.d.ts.map +1 -0
- package/dist/pptx/editor/render/text-style-scope.mjs +164 -0
- package/dist/pptx/editor/render/theme-editor-model.cjs +1 -1
- package/dist/pptx/editor/render/theme-editor-model.mjs +1 -1
- package/dist/pptx/editor/render/update-text-segment-style.cjs +11 -0
- package/dist/pptx/editor/render/update-text-segment-style.d.ts +14 -0
- package/dist/pptx/editor/render/update-text-segment-style.d.ts.map +1 -0
- package/dist/pptx/editor/render/update-text-segment-style.mjs +2 -0
- package/dist/pptx/index.cjs +329 -114
- package/dist/pptx/index.d.ts +7 -5
- package/dist/pptx/index.mjs +5 -5
- package/dist/pptx/smartart-layouts/index.d.ts +1 -1
- package/dist/teams/index.cjs +112 -16
- package/dist/teams/index.mjs +112 -16
- package/dist/visio/edit-commands.d.ts +3 -3
- package/dist/visio/edit-commands.d.ts.map +1 -1
- package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
- package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
- package/dist/visio/edit-text-field-commands.d.ts +15 -0
- package/dist/visio/edit-text-field-commands.d.ts.map +1 -1
- package/dist/visio/edit-text-field.d.ts +2 -2
- package/dist/visio/edit-text-field.d.ts.map +1 -1
- package/dist/visio/edit.d.ts +1 -1
- package/dist/visio/edit.d.ts.map +1 -1
- package/dist/visio/index.cjs +382 -210
- package/dist/visio/index.d.ts +1 -1
- package/dist/visio/index.d.ts.map +1 -1
- package/dist/visio/index.mjs +382 -210
- package/dist/visio/model.d.ts +6 -0
- package/dist/visio/model.d.ts.map +1 -1
- package/dist/visio/shapes.d.ts.map +1 -1
- package/dist/visio/style.d.ts +1 -1
- package/dist/visio/style.d.ts.map +1 -1
- package/dist/visio/text-field-display.d.ts +3 -0
- package/dist/visio/text-field-display.d.ts.map +1 -1
- package/dist/visio/text-field-editability.d.ts +6 -0
- package/dist/visio/text-field-editability.d.ts.map +1 -0
- package/dist/visio/text-field-independent.d.ts +4 -0
- package/dist/visio/text-field-independent.d.ts.map +1 -0
- package/dist/visio/text-field-source.d.ts +6 -0
- package/dist/visio/text-field-source.d.ts.map +1 -0
- package/dist/visio/ui/edit-commands.d.ts.map +1 -1
- package/dist/visio/ui/index.cjs +394 -211
- package/dist/visio/ui/index.mjs +394 -211
- package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
- package/dist/xlsx/edit/pivots.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +773 -514
- package/dist/xlsx/index.mjs +772 -515
- package/dist/xlsx/load/index.cjs +541 -292
- package/dist/xlsx/load/index.mjs +541 -292
- package/dist/xlsx/model-pivots.d.ts +8 -0
- package/dist/xlsx/model-pivots.d.ts.map +1 -1
- package/dist/xlsx/pivot/admission.d.ts.map +1 -1
- package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
- package/dist/xlsx/pivot/data.d.ts +2 -2
- package/dist/xlsx/pivot/data.d.ts.map +1 -1
- package/dist/xlsx/pivot/index.d.ts +2 -0
- package/dist/xlsx/pivot/index.d.ts.map +1 -1
- package/dist/xlsx/pivot/measures.d.ts +1 -1
- package/dist/xlsx/pivot/measures.d.ts.map +1 -1
- package/dist/xlsx/pivot/page-filter-admission.d.ts +5 -0
- package/dist/xlsx/pivot/page-filter-admission.d.ts.map +1 -0
- package/dist/xlsx/pivot/page-filter.d.ts +11 -0
- package/dist/xlsx/pivot/page-filter.d.ts.map +1 -0
- package/dist/xlsx/pivot/read.d.ts.map +1 -1
- package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
- package/dist/xlsx/pivot/values-axis.d.ts +4 -1
- package/dist/xlsx/pivot/values-axis.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
- package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
- package/dist/xlsx/ui/index.cjs +95 -12
- package/dist/xlsx/ui/index.mjs +95 -12
- package/package.json +2 -2
- package/dist/PptxHandler-5UURGJEV.mjs +0 -2
- package/dist/PptxHandler-U5XB2HUE.cjs +0 -11
- package/dist/pptx/chunks/index-Cuxtr76Y.d.ts.map +0 -1
- package/dist/pptx/chunks/index-DUCGeZh7.d.ts.map +0 -1
- package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts +0 -2980
- package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts.map +0 -1
- package/dist/pptx/chunks/text-operations-BqHmLaLA.d.ts.map +0 -1
|
@@ -4895,6 +4895,74 @@ function widowControlEnabled(value) {
|
|
|
4895
4895
|
return value !== false;
|
|
4896
4896
|
}
|
|
4897
4897
|
|
|
4898
|
+
// docx/layout/nested-frame-profile.ts
|
|
4899
|
+
var equal = (a, b) => a !== void 0 && b !== void 0 && a.style === b.style && a.color === b.color && Math.abs(a.widthPx - b.widthPx) < 1e-6;
|
|
4900
|
+
function nestedFrameProfile(table, tableWidthPx = table.widthPx) {
|
|
4901
|
+
const sides = table.rows.flatMap(
|
|
4902
|
+
(row) => row.cells.flatMap(
|
|
4903
|
+
(cell) => ["top", "right", "bottom", "left"].map((side) => cell.borders?.[side])
|
|
4904
|
+
)
|
|
4905
|
+
);
|
|
4906
|
+
if (sides.every((side) => !side)) return { leftPx: 0, rightPx: 0, bottomPx: 0 };
|
|
4907
|
+
if (!sides.every((side) => side?.style === "solid" && side.widthPx > 0)) return void 0;
|
|
4908
|
+
const first3 = table.rows[0], left = first3.cells[0].borders.left, right = first3.cells.at(-1).borders.right;
|
|
4909
|
+
for (const [index, row] of table.rows.entries()) {
|
|
4910
|
+
if (row.cells.length !== first3.cells.length || !equal(row.cells[0]?.borders?.left, left) || !equal(row.cells.at(-1)?.borders?.right, right))
|
|
4911
|
+
return void 0;
|
|
4912
|
+
for (const [column, cell] of row.cells.entries()) {
|
|
4913
|
+
const sourceWidth = cell.widthPx ?? (tableWidthPx === void 0 ? void 0 : tableWidthPx / row.cells.length);
|
|
4914
|
+
const paintWidth = sourceWidth === void 0 ? void 0 : sourceWidth + (cell.borders.left.widthPx - cell.borders.right.widthPx) / 2 + (column === row.cells.length - 1 ? cell.borders.right.widthPx : 0);
|
|
4915
|
+
if (paintWidth !== void 0 && paintWidth <= 0) return void 0;
|
|
4916
|
+
if (!equal(cell.borders?.top, row.cells[0]?.borders?.top) || !equal(cell.borders?.bottom, row.cells[0]?.borders?.bottom))
|
|
4917
|
+
return void 0;
|
|
4918
|
+
if (column && !equal(row.cells[column - 1]?.borders?.right, cell.borders?.left))
|
|
4919
|
+
return void 0;
|
|
4920
|
+
if (index) {
|
|
4921
|
+
const previous = table.rows[index - 1].cells[column];
|
|
4922
|
+
if (previous.xPx !== cell.xPx || previous.widthPx !== cell.widthPx || !equal(previous.borders?.bottom, cell.borders?.top))
|
|
4923
|
+
return void 0;
|
|
4924
|
+
}
|
|
4925
|
+
}
|
|
4926
|
+
}
|
|
4927
|
+
return {
|
|
4928
|
+
leftPx: left.widthPx,
|
|
4929
|
+
rightPx: right.widthPx,
|
|
4930
|
+
bottomPx: table.rows.at(-1).cells[0].borders.bottom.widthPx
|
|
4931
|
+
};
|
|
4932
|
+
}
|
|
4933
|
+
|
|
4934
|
+
// docx/layout/nested-fragment-edges.ts
|
|
4935
|
+
var plain = (paragraph) => !paragraph.keepLines && !paragraph.keepNext && !paragraph.pageBreakBefore && !paragraph.footnotes?.length && !paragraph.runs.some((run) => run.footnoteReferenceId !== void 0 || run.breakAfter);
|
|
4936
|
+
function nestedFragmentEdges(table) {
|
|
4937
|
+
if (table.widthPx === void 0 || !Number.isFinite(table.widthPx) || table.widthPx <= 0 || table.rows.length < 2 || !nestedFrameProfile(table, table.widthPx) || table.rows.some(
|
|
4938
|
+
(row) => row.heightPx !== void 0 || row.cantSplit || row.isHeader || row.cells.length !== 2 || row.cells.some(
|
|
4939
|
+
(cell) => cell.verticalAlign && cell.verticalAlign !== "top" || cell.blocks?.some((block) => block.kind !== "paragraph") || !(cell.blocks ?? cell.paragraphs).every(
|
|
4940
|
+
(block) => block.kind === "paragraph" && plain(block)
|
|
4941
|
+
)
|
|
4942
|
+
)
|
|
4943
|
+
))
|
|
4944
|
+
return void 0;
|
|
4945
|
+
const top = table.rows[0].cells.map((cell) => cell.borders?.top);
|
|
4946
|
+
const bottom = table.rows.at(-1).cells.map((cell) => cell.borders?.bottom);
|
|
4947
|
+
return top.every(Boolean) && bottom.every(Boolean) ? { top, bottom } : void 0;
|
|
4948
|
+
}
|
|
4949
|
+
function reflowNestedFragments(row) {
|
|
4950
|
+
if (row.heightPx !== void 0 || row.cantSplit || row.isHeader || row.cells.length !== 2)
|
|
4951
|
+
return false;
|
|
4952
|
+
let tables = 0;
|
|
4953
|
+
for (const cell of row.cells) {
|
|
4954
|
+
if (cell.verticalAlign && cell.verticalAlign !== "top") return false;
|
|
4955
|
+
for (const [index, block] of (cell.blocks ?? cell.paragraphs).entries()) {
|
|
4956
|
+
if (block.kind === "paragraph") {
|
|
4957
|
+
if (!plain(block)) return false;
|
|
4958
|
+
} else {
|
|
4959
|
+
if (index !== 0 || !nestedFragmentEdges(block) || ++tables > 1) return false;
|
|
4960
|
+
}
|
|
4961
|
+
}
|
|
4962
|
+
}
|
|
4963
|
+
return tables === 1;
|
|
4964
|
+
}
|
|
4965
|
+
|
|
4898
4966
|
// docx/layout/table-content.ts
|
|
4899
4967
|
function cellContentBottom(boxes, paddingBottom = 0) {
|
|
4900
4968
|
return Math.max(
|
|
@@ -4928,44 +4996,21 @@ function clipTableFrames(tables, start, end, inset = 0) {
|
|
|
4928
4996
|
}
|
|
4929
4997
|
];
|
|
4930
4998
|
});
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
);
|
|
4943
|
-
if (sides.every((side) => !side)) return { leftPx: 0, rightPx: 0, bottomPx: 0 };
|
|
4944
|
-
if (!sides.every((side) => side?.style === "solid" && side.widthPx > 0)) return void 0;
|
|
4945
|
-
const first3 = table.rows[0], left = first3.cells[0].borders.left, right = first3.cells.at(-1).borders.right;
|
|
4946
|
-
for (const [index, row] of table.rows.entries()) {
|
|
4947
|
-
if (row.cells.length !== first3.cells.length || !equal(row.cells[0]?.borders?.left, left) || !equal(row.cells.at(-1)?.borders?.right, right))
|
|
4948
|
-
return void 0;
|
|
4949
|
-
for (const [column, cell] of row.cells.entries()) {
|
|
4950
|
-
const sourceWidth = cell.widthPx ?? (tableWidthPx === void 0 ? void 0 : tableWidthPx / row.cells.length);
|
|
4951
|
-
const paintWidth = sourceWidth === void 0 ? void 0 : sourceWidth + (cell.borders.left.widthPx - cell.borders.right.widthPx) / 2 + (column === row.cells.length - 1 ? cell.borders.right.widthPx : 0);
|
|
4952
|
-
if (paintWidth !== void 0 && paintWidth <= 0) return void 0;
|
|
4953
|
-
if (!equal(cell.borders?.top, row.cells[0]?.borders?.top) || !equal(cell.borders?.bottom, row.cells[0]?.borders?.bottom))
|
|
4954
|
-
return void 0;
|
|
4955
|
-
if (column && !equal(row.cells[column - 1]?.borders?.right, cell.borders?.left))
|
|
4956
|
-
return void 0;
|
|
4957
|
-
if (index) {
|
|
4958
|
-
const previous = table.rows[index - 1].cells[column];
|
|
4959
|
-
if (previous.xPx !== cell.xPx || previous.widthPx !== cell.widthPx || !equal(previous.borders?.bottom, cell.borders?.top))
|
|
4960
|
-
return void 0;
|
|
4999
|
+
if (table.fragmentEdges && rows.length) {
|
|
5000
|
+
const edges = table.fragmentEdges;
|
|
5001
|
+
for (const [row, side] of [
|
|
5002
|
+
[rows[0], "top"],
|
|
5003
|
+
[rows.at(-1), "bottom"]
|
|
5004
|
+
]) {
|
|
5005
|
+
if (row.geometry)
|
|
5006
|
+
row.geometry = row.geometry.map((cell, index) => ({
|
|
5007
|
+
...cell,
|
|
5008
|
+
borders: { ...cell.borders, [side]: edges[side][index] }
|
|
5009
|
+
}));
|
|
4961
5010
|
}
|
|
4962
5011
|
}
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
leftPx: left.widthPx,
|
|
4966
|
-
rightPx: right.widthPx,
|
|
4967
|
-
bottomPx: table.rows.at(-1).cells[0].borders.bottom.widthPx
|
|
4968
|
-
};
|
|
5012
|
+
return [{ ...table, yPx: top - start + inset, heightPx: bottom - top, rows }];
|
|
5013
|
+
});
|
|
4969
5014
|
}
|
|
4970
5015
|
|
|
4971
5016
|
// docx/layout/table-cell-layout.ts
|
|
@@ -4975,7 +5020,7 @@ function cellParagraphs(cell) {
|
|
|
4975
5020
|
);
|
|
4976
5021
|
return cell.blocks ? walk(cell.blocks) : cell.paragraphs;
|
|
4977
5022
|
}
|
|
4978
|
-
function stackCellBlocks(cell, width, measurer, note, top, starts) {
|
|
5023
|
+
function stackCellBlocks(cell, width, measurer, note, top, starts, physicalFragments = false) {
|
|
4979
5024
|
if (!cell.blocks)
|
|
4980
5025
|
return stackParagraphs(
|
|
4981
5026
|
starts ? cell.paragraphs.filter((p) => starts.has(p.id)) : cell.paragraphs,
|
|
@@ -4996,6 +5041,7 @@ function stackCellBlocks(cell, width, measurer, note, top, starts) {
|
|
|
4996
5041
|
y = result.heightPx;
|
|
4997
5042
|
continue;
|
|
4998
5043
|
}
|
|
5044
|
+
const edges = physicalFragments ? nestedFragmentEdges(block) : void 0;
|
|
4999
5045
|
const tableWidth = block.widthPx ?? width;
|
|
5000
5046
|
const profile = nestedFrameProfile(block, tableWidth);
|
|
5001
5047
|
const reserveBorders = profile !== void 0;
|
|
@@ -5013,13 +5059,21 @@ function stackCellBlocks(cell, width, measurer, note, top, starts) {
|
|
|
5013
5059
|
widthPx: paintedWidth,
|
|
5014
5060
|
yPx: y,
|
|
5015
5061
|
heightPx: 0,
|
|
5016
|
-
rows: []
|
|
5062
|
+
rows: [],
|
|
5063
|
+
...edges ? { fragmentEdges: edges } : {}
|
|
5017
5064
|
};
|
|
5018
5065
|
for (const row of block.rows) {
|
|
5019
5066
|
if (starts && !row.cells.some((nested) => cellParagraphs(nested).some((p) => starts.has(p.id))))
|
|
5020
5067
|
continue;
|
|
5068
|
+
const visibleRow = edges && starts && !frame.rows.length ? {
|
|
5069
|
+
...row,
|
|
5070
|
+
cells: row.cells.map((cell2, index) => ({
|
|
5071
|
+
...cell2,
|
|
5072
|
+
borders: { ...cell2.borders, top: edges.top[index] }
|
|
5073
|
+
}))
|
|
5074
|
+
} : row;
|
|
5021
5075
|
const layout = layoutRow(
|
|
5022
|
-
|
|
5076
|
+
visibleRow,
|
|
5023
5077
|
tableWidth,
|
|
5024
5078
|
measurer,
|
|
5025
5079
|
note,
|
|
@@ -5045,6 +5099,7 @@ function stackCellBlocks(cell, width, measurer, note, top, starts) {
|
|
|
5045
5099
|
xPx: x + geometry.xPx + geometry.paddingLeftPx + (paragraph.xPx ?? 0),
|
|
5046
5100
|
widthPx: paragraph.widthPx ?? Math.max(1, geometry.widthPx - geometry.paddingLeftPx - geometry.paddingRightPx),
|
|
5047
5101
|
readOnly: true,
|
|
5102
|
+
...edges ? { tableFragmentBottomPx: edges.bottom[index].widthPx } : {},
|
|
5048
5103
|
tableFrameInsets: {
|
|
5049
5104
|
top: (paragraph.tableFrameInsets?.top ?? 0) + (reserveBorders ? geometry.borders?.top?.widthPx ?? 0 : 0),
|
|
5050
5105
|
bottom: (paragraph.tableFrameInsets?.bottom ?? 0) + (reserveBorders ? geometry.borders?.bottom?.widthPx ?? 0 : 0)
|
|
@@ -5093,7 +5148,7 @@ function stackParagraphs(paragraphs, widthPx, measurer, note, topPx = 0, startTo
|
|
|
5093
5148
|
}
|
|
5094
5149
|
return { heightPx: y, boxes };
|
|
5095
5150
|
}
|
|
5096
|
-
function layoutRow(row, tableWidthPx, measurer, note, remaining, startTokens, frameBorders = false, frameLeftBorderPx) {
|
|
5151
|
+
function layoutRow(row, tableWidthPx, measurer, note, remaining, startTokens, frameBorders = false, frameLeftBorderPx, physicalFragments = reflowNestedFragments(row)) {
|
|
5097
5152
|
const count = row.cells.length || 1;
|
|
5098
5153
|
let x = 0;
|
|
5099
5154
|
const geometry = [];
|
|
@@ -5119,7 +5174,8 @@ function layoutRow(row, tableWidthPx, measurer, note, remaining, startTokens, fr
|
|
|
5119
5174
|
measurer,
|
|
5120
5175
|
note,
|
|
5121
5176
|
padding.top,
|
|
5122
|
-
starts
|
|
5177
|
+
starts,
|
|
5178
|
+
physicalFragments
|
|
5123
5179
|
);
|
|
5124
5180
|
const heightPx2 = content2.heightPx + padding.bottom;
|
|
5125
5181
|
geometry.push({
|
|
@@ -5156,16 +5212,16 @@ function splitCellAtHeight(boxes, cutHeightPx, paragraphCuts) {
|
|
|
5156
5212
|
let beforeHeightPx = 0;
|
|
5157
5213
|
for (const box of boxes) {
|
|
5158
5214
|
const cut = paragraphCuts?.get(box.blockId) ?? cutHeightPx;
|
|
5159
|
-
if (box.yPx + box.heightPx + (box.tableFrameInsets?.bottom ?? 0) <= cut) {
|
|
5215
|
+
if (box.yPx + box.heightPx + (box.tableFragmentBottomPx ?? box.tableFrameInsets?.bottom ?? 0) <= cut) {
|
|
5160
5216
|
before.push(box);
|
|
5161
5217
|
beforeHeightPx = Math.max(
|
|
5162
5218
|
beforeHeightPx,
|
|
5163
|
-
box.yPx + box.heightPx + (box.tableFrameInsets?.bottom ?? 0)
|
|
5219
|
+
box.yPx + box.heightPx + (box.tableFragmentBottomPx ?? box.tableFrameInsets?.bottom ?? 0)
|
|
5164
5220
|
);
|
|
5165
5221
|
continue;
|
|
5166
5222
|
}
|
|
5167
5223
|
const beforeLines = box.lines.filter(
|
|
5168
|
-
(line2) => box.yPx + line2.yPx + line2.heightPx + (box.tableFrameInsets?.bottom ?? 0) <= cut
|
|
5224
|
+
(line2) => box.yPx + line2.yPx + line2.heightPx + (box.tableFragmentBottomPx ?? box.tableFrameInsets?.bottom ?? 0) <= cut
|
|
5169
5225
|
);
|
|
5170
5226
|
const afterLines = box.lines.slice(beforeLines.length);
|
|
5171
5227
|
if (beforeLines.length) {
|
|
@@ -5173,7 +5229,7 @@ function splitCellAtHeight(boxes, cutHeightPx, paragraphCuts) {
|
|
|
5173
5229
|
before.push({ ...box, heightPx: bottom, lines: beforeLines });
|
|
5174
5230
|
beforeHeightPx = Math.max(
|
|
5175
5231
|
beforeHeightPx,
|
|
5176
|
-
box.yPx + bottom + (box.tableFrameInsets?.bottom ?? 0)
|
|
5232
|
+
box.yPx + bottom + (box.tableFragmentBottomPx ?? box.tableFrameInsets?.bottom ?? 0)
|
|
5177
5233
|
);
|
|
5178
5234
|
}
|
|
5179
5235
|
if (afterLines.length) {
|
|
@@ -6020,7 +6076,7 @@ function measuredNoteReferences(paragraphs) {
|
|
|
6020
6076
|
}
|
|
6021
6077
|
|
|
6022
6078
|
// docx/layout/table-border-layout.ts
|
|
6023
|
-
function layoutBorderedRow(row, width, measurer, note, profile, remaining) {
|
|
6079
|
+
function layoutBorderedRow(row, width, measurer, note, profile, remaining, physicalFragments) {
|
|
6024
6080
|
const reserved = profile !== void 0 && (profile.leftPx > 0 || profile.rightPx > 0 || profile.bottomPx > 0);
|
|
6025
6081
|
const layout = layoutRow(
|
|
6026
6082
|
row,
|
|
@@ -6030,7 +6086,8 @@ function layoutBorderedRow(row, width, measurer, note, profile, remaining) {
|
|
|
6030
6086
|
remaining,
|
|
6031
6087
|
void 0,
|
|
6032
6088
|
reserved,
|
|
6033
|
-
profile?.leftPx
|
|
6089
|
+
profile?.leftPx,
|
|
6090
|
+
physicalFragments
|
|
6034
6091
|
);
|
|
6035
6092
|
if (!reserved) return layout;
|
|
6036
6093
|
const bottom = Math.max(0, ...layout.geometry.map((cell) => cell.borders?.bottom?.widthPx ?? 0));
|
|
@@ -6330,6 +6387,7 @@ var TableFootnotes = class {
|
|
|
6330
6387
|
function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
6331
6388
|
const firstBodyRow = table.rows.findIndex((row) => !row.isHeader);
|
|
6332
6389
|
const headerRows = table.rows.slice(0, firstBodyRow < 0 ? table.rows.length : firstBodyRow);
|
|
6390
|
+
const nativeFragments = new Map(table.rows.map((row) => [row, reflowNestedFragments(row)]));
|
|
6333
6391
|
const xPosition = () => {
|
|
6334
6392
|
const width = (table.widthPx ?? cursor.columnWidthPx) + (activeBorders ? (profile.leftPx + profile.rightPx) / 2 : 0);
|
|
6335
6393
|
return table.alignment === "center" ? Math.max(0, (cursor.columnWidthPx - width) / 2) : table.alignment === "right" ? Math.max(0, cursor.columnWidthPx - width) : table.indentPx ?? 0;
|
|
@@ -6340,13 +6398,14 @@ function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
|
6340
6398
|
note(
|
|
6341
6399
|
"Ordinary table border occupancy remains approximate for missing edges, non-solid or conflicting shared borders and changing row grids."
|
|
6342
6400
|
);
|
|
6343
|
-
const layoutRow2 = (row, width, m, n2, remaining) => layoutBorderedRow(
|
|
6401
|
+
const layoutRow2 = (row, width, m, n2, remaining, sourceRow = row) => layoutBorderedRow(
|
|
6344
6402
|
row,
|
|
6345
6403
|
activeBorders ? table.widthPx ?? width : width,
|
|
6346
6404
|
m,
|
|
6347
6405
|
n2,
|
|
6348
6406
|
profile,
|
|
6349
|
-
remaining
|
|
6407
|
+
remaining,
|
|
6408
|
+
nativeFragments.get(sourceRow) ?? false
|
|
6350
6409
|
);
|
|
6351
6410
|
const fragmentBorders = new TableFragmentBorders();
|
|
6352
6411
|
let fragmentRows = [];
|
|
@@ -6419,7 +6478,8 @@ function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
|
6419
6478
|
cursor.columnWidthPx,
|
|
6420
6479
|
measurer,
|
|
6421
6480
|
note,
|
|
6422
|
-
remainingRow.cells
|
|
6481
|
+
remainingRow.cells,
|
|
6482
|
+
row
|
|
6423
6483
|
);
|
|
6424
6484
|
if (fragmentRows.length) {
|
|
6425
6485
|
fragmentRows = [];
|
|
@@ -6451,7 +6511,8 @@ function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
|
6451
6511
|
cursor.columnWidthPx,
|
|
6452
6512
|
measurer,
|
|
6453
6513
|
note,
|
|
6454
|
-
after2.cells
|
|
6514
|
+
after2.cells,
|
|
6515
|
+
row
|
|
6455
6516
|
) : after2;
|
|
6456
6517
|
continue;
|
|
6457
6518
|
}
|
|
@@ -6464,7 +6525,8 @@ function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
|
6464
6525
|
cursor.columnWidthPx,
|
|
6465
6526
|
measurer,
|
|
6466
6527
|
note,
|
|
6467
|
-
remainingRow === initial ? void 0 : remainingRow.cells
|
|
6528
|
+
remainingRow === initial ? void 0 : remainingRow.cells,
|
|
6529
|
+
row
|
|
6468
6530
|
);
|
|
6469
6531
|
continue;
|
|
6470
6532
|
}
|
|
@@ -6511,17 +6573,24 @@ function placeTable(cursor, table, measurer, note, resolveFootnotes) {
|
|
|
6511
6573
|
const previousWidth = cursor.columnWidthPx;
|
|
6512
6574
|
if (before.cells.some((cell) => cell.length)) fragmentRows.push(toRowBox(before, false));
|
|
6513
6575
|
startNewFragment();
|
|
6514
|
-
remainingRow = after && previousWidth !== cursor.columnWidthPx ? layoutRow2(
|
|
6576
|
+
remainingRow = after && (previousWidth !== cursor.columnWidthPx || nativeFragments.get(row)) ? layoutRow2(
|
|
6515
6577
|
{ ...row, heightPx: 0, heightRule: "atLeast" },
|
|
6516
6578
|
cursor.columnWidthPx,
|
|
6517
6579
|
measurer,
|
|
6518
6580
|
note,
|
|
6519
|
-
after.cells
|
|
6581
|
+
after.cells,
|
|
6582
|
+
row
|
|
6520
6583
|
) : after;
|
|
6521
6584
|
}
|
|
6522
6585
|
}
|
|
6523
6586
|
for (const row of table.rows) {
|
|
6524
6587
|
const layout = layoutRow2(row, cursor.columnWidthPx, measurer, note);
|
|
6588
|
+
if (layout.heightPx > cursor.remainingHeightPx() && !nativeFragments.get(row) && row.cells.some(
|
|
6589
|
+
(cell) => cell.blocks?.some((block) => block.kind === "table" && block.rows.length > 1)
|
|
6590
|
+
))
|
|
6591
|
+
note(
|
|
6592
|
+
"Nested physical border edges at page cuts remain approximate outside automatic, top-aligned tables with two or more two-cell, note-free rows, direct paragraphs and complete shared borders."
|
|
6593
|
+
);
|
|
6525
6594
|
if (activeBorders && layout.heightPx > cursor.remainingHeightPx() && row.cells.some(
|
|
6526
6595
|
(cell) => (!measuredNoteReferences(row.cells.flatMap(cellParagraphs)) || !independentNoteStories(cell)) && cell.blocks?.some((block) => block.kind === "table") && cellParagraphs(cell).some((p) => p.footnotes?.length)
|
|
6527
6596
|
))
|
|
@@ -6785,9 +6854,9 @@ var SectionFlow = class {
|
|
|
6785
6854
|
const page = this.cursor.page;
|
|
6786
6855
|
const exclusions = this.exclusions?.get(page.index);
|
|
6787
6856
|
if (!exclusions) return void 0;
|
|
6788
|
-
const
|
|
6857
|
+
const plain2 = this.paragraphLayout(index);
|
|
6789
6858
|
const topPx = page.marginTopPx + this.cursor.y + spacingBeforePx;
|
|
6790
|
-
const bottomPx = topPx +
|
|
6859
|
+
const bottomPx = topPx + plain2.contentHeightPx;
|
|
6791
6860
|
if (!exclusions.some((item) => item.yPx < bottomPx && item.yPx + item.heightPx > topPx))
|
|
6792
6861
|
return void 0;
|
|
6793
6862
|
return layoutParagraph(
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LayoutTable, LayoutTableRow } from './input.js';
|
|
2
|
+
/** Two or more automatic top-aligned rows with direct paragraphs and complete shared edges. */
|
|
3
|
+
export declare function nestedFragmentEdges(table: LayoutTable): {
|
|
4
|
+
top: (import("./input.js").LayoutBorder | undefined)[];
|
|
5
|
+
bottom: (import("./input.js").LayoutBorder | undefined)[];
|
|
6
|
+
} | undefined;
|
|
7
|
+
/** The enclosing story must also remain within the measured automatic, note-free profile. */
|
|
8
|
+
export declare function reflowNestedFragments(row: LayoutTableRow): boolean;
|
|
9
|
+
//# sourceMappingURL=nested-fragment-edges.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nested-fragment-edges.d.ts","sourceRoot":"","sources":["../../../docx/layout/nested-fragment-edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ5E,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW;;;cA2BrD;AACD,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAelE"}
|
|
@@ -62,6 +62,8 @@ export interface LayoutParagraphBox {
|
|
|
62
62
|
top: number;
|
|
63
63
|
bottom: number;
|
|
64
64
|
};
|
|
65
|
+
/** Measured physical bottom edge width, distinct from an interior shared row edge. */
|
|
66
|
+
tableFragmentBottomPx?: number;
|
|
65
67
|
}
|
|
66
68
|
export interface LayoutParagraphFrame {
|
|
67
69
|
leftPx: number;
|
|
@@ -104,6 +106,11 @@ export interface LayoutTableBox {
|
|
|
104
106
|
yPx: number;
|
|
105
107
|
heightPx: number;
|
|
106
108
|
rows: LayoutTableRowBox[];
|
|
109
|
+
/** Source outer edges repainted at each measured nested physical fragment. */
|
|
110
|
+
fragmentEdges?: {
|
|
111
|
+
top: (import('./input.js').LayoutBorder | undefined)[];
|
|
112
|
+
bottom: (import('./input.js').LayoutBorder | undefined)[];
|
|
113
|
+
};
|
|
107
114
|
}
|
|
108
115
|
export type LayoutBlockBox = LayoutParagraphBox | LayoutTableBox;
|
|
109
116
|
export interface LayoutColumnBox {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../docx/layout/result.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,cAAc,EAAE,SAAS,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,SAAS,EAAE,YAAY,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACzB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;CACjE;AAED,yEAAyE;AACzE,MAAM,WAAW,UAAU;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../docx/layout/result.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { LayoutParagraphBox } from './result.js';
|
|
|
4
4
|
import type { TextMeasurer } from './measure.js';
|
|
5
5
|
import { type RowLayout } from './table-layout.js';
|
|
6
6
|
/** Native row heights include the top edge; the physical fragment also reserves its last bottom. */
|
|
7
|
-
export declare function layoutBorderedRow(row: LayoutTableRow, width: number, measurer: TextMeasurer, note: (message: string) => void, profile: NestedFrameProfile | undefined, remaining?: LayoutParagraphBox[][]): RowLayout;
|
|
7
|
+
export declare function layoutBorderedRow(row: LayoutTableRow, width: number, measurer: TextMeasurer, note: (message: string) => void, profile: NestedFrameProfile | undefined, remaining?: LayoutParagraphBox[][], physicalFragments?: boolean): RowLayout;
|
|
8
8
|
/** Share a horizontal stroke with the next row, retaining it when a fragment is flushed. */
|
|
9
9
|
export declare class TableFragmentBorders {
|
|
10
10
|
private bottom;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-border-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-border-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,oGAAoG;AACpG,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"table-border-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-border-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,oGAAoG;AACpG,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAClC,iBAAiB,CAAC,EAAE,OAAO,GACzB,SAAS,CAyBX;AAED,4FAA4F;AAC5F,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAQ;IACxB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGvC;IACD,MAAM,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKpE;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKrE;CACD"}
|
|
@@ -4,7 +4,7 @@ import type { TextMeasurer } from './measure.js';
|
|
|
4
4
|
/** All nested source paragraphs, in OOXML story order. */
|
|
5
5
|
export declare function cellParagraphs(cell: LayoutTableCell): LayoutParagraph[];
|
|
6
6
|
/** Project read-only nested cell stories using the same paragraph and row layout as body tables. */
|
|
7
|
-
export declare function stackCellBlocks(cell: LayoutTableCell, width: number, measurer: TextMeasurer, note: (message: string) => void, top: number, starts?: ReadonlyMap<string, number
|
|
7
|
+
export declare function stackCellBlocks(cell: LayoutTableCell, width: number, measurer: TextMeasurer, note: (message: string) => void, top: number, starts?: ReadonlyMap<string, number>, physicalFragments?: boolean): {
|
|
8
8
|
heightPx: number;
|
|
9
9
|
boxes: LayoutParagraphBox[];
|
|
10
10
|
tables?: LayoutTableBox[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-cell-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-cell-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-cell-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-cell-layout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,CAQvE;AACD,oGAAoG;AACpG,wBAAgB,eAAe,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,iBAAiB,UAAQ,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;CAAE,CAoH9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-frames.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-frames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,iGAAiG;AACjG,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACP,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"table-frames.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-frames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,iGAAiG;AACjG,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACP,cAAc,EAAE,CAwClB"}
|
|
@@ -23,7 +23,7 @@ export declare function stackParagraphs(paragraphs: LayoutParagraph[], widthPx:
|
|
|
23
23
|
* Lays out one table row. Cells take their grid position and width when the table has a grid,
|
|
24
24
|
* otherwise the table width split evenly, and their content is inset by the cell margins.
|
|
25
25
|
*/
|
|
26
|
-
export declare function layoutRow(row: LayoutTableRow, tableWidthPx: number, measurer: TextMeasurer, note: (message: string) => void, remaining?: LayoutParagraphBox[][], startTokens?: ReadonlyMap<string, number>, frameBorders?: boolean, frameLeftBorderPx?: number): RowLayout;
|
|
26
|
+
export declare function layoutRow(row: LayoutTableRow, tableWidthPx: number, measurer: TextMeasurer, note: (message: string) => void, remaining?: LayoutParagraphBox[][], startTokens?: ReadonlyMap<string, number>, frameBorders?: boolean, frameLeftBorderPx?: number, physicalFragments?: boolean): RowLayout;
|
|
27
27
|
export interface RowSplit {
|
|
28
28
|
before: RowLayout;
|
|
29
29
|
after: RowLayout | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-layout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIvF,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAChC,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC9B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,KAAK,SAAI,EACT,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,CA0BnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAClC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,YAAY,UAAQ,EACpB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,UAA6B,GAC5C,SAAS,CAuEX;AAgED,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,EAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,QAAQ,CAiFV"}
|