@json-to-office/core-docx 4.3.0 → 4.4.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/core/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/core/layout.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3293,6 +3293,7 @@ import {
3293
3293
  Header,
3294
3294
  ImageRun,
3295
3295
  Packer,
3296
+ LineRuleType as LineRuleType2,
3296
3297
  Paragraph as Paragraph2
3297
3298
  } from "docx";
3298
3299
  function createDocxJsRenderer() {
@@ -3546,21 +3547,33 @@ function sectionChildren(section2, resources) {
3546
3547
  const blocks = section2.children.map((block2) => emitBlock(block2, resources));
3547
3548
  const bookmark = section2.bookmark;
3548
3549
  if (!bookmark) return blocks;
3549
- const out = [];
3550
+ const out = [...blocks];
3550
3551
  if (bookmark.opens) {
3551
- out.push(
3552
- new Paragraph2({
3553
- children: [new BookmarkStart2(bookmark.name, bookmark.id)],
3554
- spacing: { before: 0, after: 0, line: 0 }
3555
- })
3556
- );
3552
+ const start = new BookmarkStart2(bookmark.name, bookmark.id);
3553
+ const first = out[0];
3554
+ if (first instanceof Paragraph2) {
3555
+ first.addRunToFront(start);
3556
+ } else {
3557
+ out.unshift(anchorParagraph(start));
3558
+ }
3557
3559
  }
3558
- out.push(...blocks);
3559
3560
  if (bookmark.closes) {
3560
- out.push(new Paragraph2({ children: [new BookmarkEnd2(bookmark.id)] }));
3561
+ const end = new BookmarkEnd2(bookmark.id);
3562
+ const last = out[out.length - 1];
3563
+ if (last instanceof Paragraph2) {
3564
+ last.addChildElement(end);
3565
+ } else {
3566
+ out.push(anchorParagraph(end));
3567
+ }
3561
3568
  }
3562
3569
  return out;
3563
3570
  }
3571
+ function anchorParagraph(anchor) {
3572
+ return new Paragraph2({
3573
+ children: [anchor],
3574
+ spacing: { before: 0, after: 0, line: 20, lineRule: LineRuleType2.EXACT }
3575
+ });
3576
+ }
3564
3577
  function coreProperties(ir) {
3565
3578
  const { metadata } = ir;
3566
3579
  return {
@@ -9059,6 +9072,15 @@ function compileColumns(component, scope) {
9059
9072
  if (configs.length === 0) return [];
9060
9073
  const available = getAvailableWidthTwips(ctx.theme, ctx.themeName);
9061
9074
  const { widths, gaps } = columnMetrics(configs, props.gap, available);
9075
+ const stated = widths.map(
9076
+ (width, index) => width + gaps[index] / 2 + (index > 0 ? gaps[index - 1] / 2 : 0)
9077
+ );
9078
+ const statedTotal = stated.reduce((sum, cell) => sum + cell, 0);
9079
+ const scale = statedTotal > available ? available / statedTotal : 1;
9080
+ const exact = stated.map((cell) => cell * scale);
9081
+ const cells = exact.map((cell) => Math.round(cell));
9082
+ const total = exact.reduce((sum, cell) => sum + cell, 0);
9083
+ cells[cells.length - 1] += Math.round(total) - cells.reduce((a, b) => a + b, 0);
9062
9084
  const contents = configs.map(() => []);
9063
9085
  const children = component.children ?? [];
9064
9086
  children.forEach((child, index) => {
@@ -9070,7 +9092,7 @@ function compileColumns(component, scope) {
9070
9092
  kind: "table",
9071
9093
  id: scope.id,
9072
9094
  path: path4,
9073
- columnGrid: { unit: "twips", values: [] },
9095
+ columnGrid: { unit: "twips", values: cells },
9074
9096
  width: { kind: "percent", value: 100 },
9075
9097
  layout: "fixed",
9076
9098
  borders: NO_BORDERS,
@@ -9095,7 +9117,7 @@ function compileColumns(component, scope) {
9095
9117
  children: []
9096
9118
  }
9097
9119
  ],
9098
- widthTwips: widths[index],
9120
+ widthTwips: cells[index],
9099
9121
  margins: {
9100
9122
  topTwips: 0,
9101
9123
  rightTwips: gaps[index] / 2,
@@ -11432,12 +11454,6 @@ function determineComponentLayout(component) {
11432
11454
  }
11433
11455
  return "single";
11434
11456
  }
11435
- if ("children" in component && component.children) {
11436
- const hasColumns = component.children.some(
11437
- (child) => isColumnsComponent(child)
11438
- );
11439
- return hasColumns ? "multi-column" : "single";
11440
- }
11441
11457
  return "single";
11442
11458
  }
11443
11459
  function processLayoutComponents(components) {
@@ -15117,7 +15133,7 @@ var client_report_docx_blueprint_default = {
15117
15133
  slots: {
15118
15134
  number: "01",
15119
15135
  title: "{{Section title: the finding, as a statement}}",
15120
- tracker: "{{Tracker: one or two words}}"
15136
+ tracker: "{{Tracker: one word}}"
15121
15137
  }
15122
15138
  }
15123
15139
  },
@@ -15175,7 +15191,7 @@ var client_report_docx_blueprint_default = {
15175
15191
  slots: {
15176
15192
  number: "02",
15177
15193
  title: "{{Section title: the finding, as a statement}}",
15178
- tracker: "{{Tracker: one or two words}}"
15194
+ tracker: "{{Tracker: one word}}"
15179
15195
  }
15180
15196
  }
15181
15197
  },
@@ -15248,7 +15264,7 @@ var client_report_docx_blueprint_default = {
15248
15264
  slots: {
15249
15265
  number: "03",
15250
15266
  title: "{{Section title: the finding, as a statement}}",
15251
- tracker: "{{Tracker: one or two words}}"
15267
+ tracker: "{{Tracker: one word}}"
15252
15268
  }
15253
15269
  }
15254
15270
  },
@@ -15302,7 +15318,7 @@ var client_report_docx_blueprint_default = {
15302
15318
  slots: {
15303
15319
  number: "04",
15304
15320
  title: "{{Section title: the finding, as a statement}}",
15305
- tracker: "{{Tracker: one or two words}}"
15321
+ tracker: "{{Tracker: one word}}"
15306
15322
  }
15307
15323
  }
15308
15324
  },
@@ -15374,7 +15390,7 @@ var client_report_docx_blueprint_default = {
15374
15390
  slots: {
15375
15391
  number: "01",
15376
15392
  title: "{{Section title: the finding, as a statement}}",
15377
- tracker: "{{Tracker: one or two words}}"
15393
+ tracker: "{{Tracker: one word}}"
15378
15394
  }
15379
15395
  }
15380
15396
  },
@@ -15415,7 +15431,7 @@ var client_report_docx_blueprint_default = {
15415
15431
  slots: {
15416
15432
  number: "02",
15417
15433
  title: "{{Section title: the finding, as a statement}}",
15418
- tracker: "{{Tracker: one or two words}}"
15434
+ tracker: "{{Tracker: one word}}"
15419
15435
  }
15420
15436
  }
15421
15437
  },
@@ -15453,7 +15469,7 @@ var client_report_docx_blueprint_default = {
15453
15469
  slots: {
15454
15470
  number: "03",
15455
15471
  title: "{{Section title: the finding, as a statement}}",
15456
- tracker: "{{Tracker: one or two words}}"
15472
+ tracker: "{{Tracker: one word}}"
15457
15473
  }
15458
15474
  }
15459
15475
  },
@@ -15504,7 +15520,7 @@ var client_report_docx_blueprint_default = {
15504
15520
  slots: {
15505
15521
  number: "04",
15506
15522
  title: "{{Section title: the finding, as a statement}}",
15507
- tracker: "{{Tracker: one or two words}}"
15523
+ tracker: "{{Tracker: one word}}"
15508
15524
  }
15509
15525
  }
15510
15526
  },