@json-to-office/core-docx 4.2.0 → 4.4.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.
@@ -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
@@ -9059,6 +9059,15 @@ function compileColumns(component, scope) {
9059
9059
  if (configs.length === 0) return [];
9060
9060
  const available = getAvailableWidthTwips(ctx.theme, ctx.themeName);
9061
9061
  const { widths, gaps } = columnMetrics(configs, props.gap, available);
9062
+ const stated = widths.map(
9063
+ (width, index) => width + gaps[index] / 2 + (index > 0 ? gaps[index - 1] / 2 : 0)
9064
+ );
9065
+ const statedTotal = stated.reduce((sum, cell) => sum + cell, 0);
9066
+ const scale = statedTotal > available ? available / statedTotal : 1;
9067
+ const exact = stated.map((cell) => cell * scale);
9068
+ const cells = exact.map((cell) => Math.round(cell));
9069
+ const total = exact.reduce((sum, cell) => sum + cell, 0);
9070
+ cells[cells.length - 1] += Math.round(total) - cells.reduce((a, b) => a + b, 0);
9062
9071
  const contents = configs.map(() => []);
9063
9072
  const children = component.children ?? [];
9064
9073
  children.forEach((child, index) => {
@@ -9070,7 +9079,7 @@ function compileColumns(component, scope) {
9070
9079
  kind: "table",
9071
9080
  id: scope.id,
9072
9081
  path: path4,
9073
- columnGrid: { unit: "twips", values: [] },
9082
+ columnGrid: { unit: "twips", values: cells },
9074
9083
  width: { kind: "percent", value: 100 },
9075
9084
  layout: "fixed",
9076
9085
  borders: NO_BORDERS,
@@ -9095,7 +9104,7 @@ function compileColumns(component, scope) {
9095
9104
  children: []
9096
9105
  }
9097
9106
  ],
9098
- widthTwips: widths[index],
9107
+ widthTwips: cells[index],
9099
9108
  margins: {
9100
9109
  topTwips: 0,
9101
9110
  rightTwips: gaps[index] / 2,
@@ -9673,6 +9682,11 @@ function compileList(component, scope, referencePrefix = "list", explicitLevels)
9673
9682
  const props = component.props ?? {};
9674
9683
  const items = props.items ?? [];
9675
9684
  if (items.length === 0) return [];
9685
+ const base = runFormatting3(
9686
+ props.font ?? {},
9687
+ props,
9688
+ ctx
9689
+ );
9676
9690
  const notes = createNoteBinding(props.footnotes, props.endnotes, ctx);
9677
9691
  const reference = declareNumbering(
9678
9692
  props,
@@ -9708,17 +9722,21 @@ function compileList(component, scope, referencePrefix = "list", explicitLevels)
9708
9722
  paragraphNode(
9709
9723
  { ctx, path: itemPath, id: `${scope.id}:i${index}` },
9710
9724
  revision === void 0 ? parseInline(text, {
9711
- base: {},
9725
+ base,
9712
9726
  hyperlinks: true,
9713
9727
  ...notes ? { resolveNote: notes.resolve } : {},
9714
9728
  resolvePlaceholder: placeholderResolver(ctx),
9715
9729
  resolveCrossReference: crossReferenceResolver(ctx, itemPath)
9716
- }) : compileRevision(revision, {}, ctx),
9730
+ }) : compileRevision(revision, base, ctx),
9717
9731
  {
9718
9732
  styleId: "Normal",
9719
9733
  formatting: {
9720
9734
  alignment: compileAlignment(props.alignment) ?? "left",
9721
- spacing: itemSpacing(props.spacing, index, items.length)
9735
+ spacing: itemSpacing(props.spacing, index, items.length),
9736
+ // Every item carries the flags, not just the first: keeping a list
9737
+ // with what introduces it means keeping it whole.
9738
+ ...props.keepNext !== void 0 ? { keepNext: props.keepNext } : {},
9739
+ ...props.keepLines !== void 0 ? { keepLines: props.keepLines } : {}
9722
9740
  },
9723
9741
  ...commentIds && index === firstRendered ? { commentOpen: commentIds } : {},
9724
9742
  ...commentIds && index === lastRendered ? { commentClose: commentIds } : {},
@@ -11423,12 +11441,6 @@ function determineComponentLayout(component) {
11423
11441
  }
11424
11442
  return "single";
11425
11443
  }
11426
- if ("children" in component && component.children) {
11427
- const hasColumns = component.children.some(
11428
- (child) => isColumnsComponent(child)
11429
- );
11430
- return hasColumns ? "multi-column" : "single";
11431
- }
11432
11444
  return "single";
11433
11445
  }
11434
11446
  function processLayoutComponents(components) {
@@ -15108,7 +15120,7 @@ var client_report_docx_blueprint_default = {
15108
15120
  slots: {
15109
15121
  number: "01",
15110
15122
  title: "{{Section title: the finding, as a statement}}",
15111
- tracker: "{{Tracker: one or two words}}"
15123
+ tracker: "{{Tracker: one word}}"
15112
15124
  }
15113
15125
  }
15114
15126
  },
@@ -15166,7 +15178,7 @@ var client_report_docx_blueprint_default = {
15166
15178
  slots: {
15167
15179
  number: "02",
15168
15180
  title: "{{Section title: the finding, as a statement}}",
15169
- tracker: "{{Tracker: one or two words}}"
15181
+ tracker: "{{Tracker: one word}}"
15170
15182
  }
15171
15183
  }
15172
15184
  },
@@ -15239,7 +15251,7 @@ var client_report_docx_blueprint_default = {
15239
15251
  slots: {
15240
15252
  number: "03",
15241
15253
  title: "{{Section title: the finding, as a statement}}",
15242
- tracker: "{{Tracker: one or two words}}"
15254
+ tracker: "{{Tracker: one word}}"
15243
15255
  }
15244
15256
  }
15245
15257
  },
@@ -15293,7 +15305,7 @@ var client_report_docx_blueprint_default = {
15293
15305
  slots: {
15294
15306
  number: "04",
15295
15307
  title: "{{Section title: the finding, as a statement}}",
15296
- tracker: "{{Tracker: one or two words}}"
15308
+ tracker: "{{Tracker: one word}}"
15297
15309
  }
15298
15310
  }
15299
15311
  },
@@ -15365,7 +15377,7 @@ var client_report_docx_blueprint_default = {
15365
15377
  slots: {
15366
15378
  number: "01",
15367
15379
  title: "{{Section title: the finding, as a statement}}",
15368
- tracker: "{{Tracker: one or two words}}"
15380
+ tracker: "{{Tracker: one word}}"
15369
15381
  }
15370
15382
  }
15371
15383
  },
@@ -15406,7 +15418,7 @@ var client_report_docx_blueprint_default = {
15406
15418
  slots: {
15407
15419
  number: "02",
15408
15420
  title: "{{Section title: the finding, as a statement}}",
15409
- tracker: "{{Tracker: one or two words}}"
15421
+ tracker: "{{Tracker: one word}}"
15410
15422
  }
15411
15423
  }
15412
15424
  },
@@ -15444,7 +15456,7 @@ var client_report_docx_blueprint_default = {
15444
15456
  slots: {
15445
15457
  number: "03",
15446
15458
  title: "{{Section title: the finding, as a statement}}",
15447
- tracker: "{{Tracker: one or two words}}"
15459
+ tracker: "{{Tracker: one word}}"
15448
15460
  }
15449
15461
  }
15450
15462
  },
@@ -15495,7 +15507,7 @@ var client_report_docx_blueprint_default = {
15495
15507
  slots: {
15496
15508
  number: "04",
15497
15509
  title: "{{Section title: the finding, as a statement}}",
15498
- tracker: "{{Tracker: one or two words}}"
15510
+ tracker: "{{Tracker: one word}}"
15499
15511
  }
15500
15512
  }
15501
15513
  },