@elisra-devops/docgen-skins 0.21.0 → 0.23.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/bin/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export default class Skins {
4
4
  SKIN_TYPE_TRACE: string;
5
5
  SKIN_TYPE_TABLE_STR: string;
6
6
  SKIN_TYPE_PARAGRAPH: string;
7
+ SKIN_TYPE_COVER_PAGE: string;
7
8
  SKIN_TYPE_TEST_PLAN: string;
8
9
  SKIN_TYPE_SYSTEM_OVERVIEW: string;
9
10
  SKIN_TYPE_INSTALLATION: string;
@@ -20,6 +21,8 @@ export default class Skins {
20
21
  generateSystemOverviewSkin(systemOverviewAdaptedData: any[], styles: StyleOptions): any[];
21
22
  generateInstallationSkin(installationAdaptedData: any[], styles: StyleOptions): any[];
22
23
  generateTestReporter(testReporterAdaptedData: any[], name: string): any[][];
24
+ private generateParagraphsFromData;
25
+ generateCoverPageParagraphs(data: any, styles: StyleOptions, headingLvl?: number): any[];
23
26
  generateQueryBasedParagraphs(data: any, styles: StyleOptions, headingLvl?: number): any[];
24
27
  generateTraceTable(data: any, headerStyles: StyleOptions, styles: StyleOptions, headingLvl?: number): any[];
25
28
  generateTestBasedSkin(suites: any, headerStyles: StyleOptions, styles: StyleOptions, headingLvl?: number, includeAttachments?: boolean, isFlattened?: boolean): any[];
package/bin/index.js CHANGED
@@ -26,6 +26,7 @@ class Skins {
26
26
  this.SKIN_TYPE_TRACE = 'trace-table';
27
27
  this.SKIN_TYPE_TABLE_STR = 'str-table';
28
28
  this.SKIN_TYPE_PARAGRAPH = 'paragraph';
29
+ this.SKIN_TYPE_COVER_PAGE = 'cover-page';
29
30
  this.SKIN_TYPE_TEST_PLAN = 'test-plan';
30
31
  this.SKIN_TYPE_SYSTEM_OVERVIEW = 'system-overview';
31
32
  this.SKIN_TYPE_INSTALLATION = 'installation';
@@ -62,6 +63,9 @@ class Skins {
62
63
  case this.SKIN_TYPE_PARAGRAPH:
63
64
  populatedSkin = this.generateQueryBasedParagraphs(data, styles, headingLvl);
64
65
  break;
66
+ case this.SKIN_TYPE_COVER_PAGE:
67
+ populatedSkin = this.generateCoverPageParagraphs(data, styles, headingLvl);
68
+ break;
65
69
  case this.SKIN_TYPE_TEST_PLAN:
66
70
  populatedSkin = this.generateTestBasedSkin(data, headerStyles, styles, headingLvl, includeAttachments, isFlattened);
67
71
  break;
@@ -267,55 +271,73 @@ class Skins {
267
271
  throw error;
268
272
  }
269
273
  }
274
+ generateParagraphsFromData(data, styles, headingLvl = 0) {
275
+ const paragraphs = [];
276
+ data.forEach((wi) => {
277
+ wi.fields.forEach((field) => {
278
+ // Description and Test Description are handled via rich-text handler
279
+ if (field.name === 'Description: ' || field.name === 'Test Description:') {
280
+ const paragraphSkin = new JSONRichTextParagraph_1.default(field, styles, wi.Source, headingLvl + wi.level);
281
+ paragraphs.push(paragraphSkin.getJSONRichTextParagraph());
282
+ }
283
+ // Exclude ID / Description / Test Description from the normal paragraph path
284
+ if (field.name !== 'ID' && field.name !== 'Description: ' && field.name !== 'Test Description:') {
285
+ const paragraphSkin = new JSONParagraph_1.default(field, styles, wi.Source, headingLvl + wi.level);
286
+ paragraphs.push(paragraphSkin.getJSONParagraph());
287
+ }
288
+ });
289
+ });
290
+ return paragraphs;
291
+ }
292
+ generateCoverPageParagraphs(data, styles, headingLvl = 0) {
293
+ logger_1.default.debug(`Generating cover-page paragraphs as ${this.skinFormat}`);
294
+ try {
295
+ switch (this.skinFormat) {
296
+ case 'json':
297
+ return this.generateParagraphsFromData(data, styles, headingLvl);
298
+ case 'html':
299
+ logger_1.default.info(`Generating html cover-page paragraphs!`);
300
+ return [];
301
+ default:
302
+ throw new Error(`Invalid skin format ${this.skinFormat}`);
303
+ }
304
+ }
305
+ catch (error) {
306
+ logger_1.default.error(`Error occurred in generateCoverPageParagraphs: ${error.message}`);
307
+ throw error;
308
+ }
309
+ }
270
310
  generateQueryBasedParagraphs(data, styles, headingLvl = 0) {
271
311
  logger_1.default.debug(`Generating paragraph as ${this.skinFormat}`);
272
312
  try {
273
313
  switch (this.skinFormat) {
274
314
  case 'json':
275
- let paragraphs = [];
276
- data.forEach((wi) => {
277
- wi.fields.forEach((field) => {
278
- //Description and Test Description are handled in richText handler
279
- if (field.name === 'Description: ' || field.name === 'Test Description:') {
280
- let paragraphSkin = new JSONRichTextParagraph_1.default(field, styles, wi.Source, headingLvl + wi.level);
281
- paragraphs.push(paragraphSkin.getJSONRichTextParagraph());
282
- }
283
- //making sure ID is not printed
284
- //excluding Description and Test Description are handled in richText handler
285
- if (field.name !== 'ID' &&
286
- field.name !== 'Description: ' &&
287
- field.name !== 'Test Description:') {
288
- let paragraphSkin = new JSONParagraph_1.default(field, styles, wi.Source, headingLvl + wi.level);
289
- paragraphs.push(paragraphSkin.getJSONParagraph());
290
- }
291
- });
292
- });
293
- return paragraphs;
315
+ return this.generateParagraphsFromData(data, styles, headingLvl);
294
316
  case 'html':
295
317
  logger_1.default.info(`Generating html paragraphs!`);
296
318
  return [];
297
319
  default:
298
320
  throw new Error(`Invalid skin format ${this.skinFormat}`);
299
- } //switch
321
+ }
300
322
  }
301
323
  catch (error) {
302
324
  logger_1.default.error(`Error occurred in generateQueryBasedParagraphs: ${error.message}`);
303
325
  throw error;
304
326
  }
305
- } //generateParagraph
327
+ }
306
328
  generateTraceTable(data, headerStyles, styles, headingLvl = 0) {
307
329
  logger_1.default.debug(`Generating table as ${this.skinFormat}`);
308
330
  try {
309
331
  switch (this.skinFormat) {
310
332
  case 'json':
311
333
  let traceSkin = [];
312
- const { title, adoptedData, errorMessage } = data;
334
+ const { title, adoptedData, errorMessage, groupedHeader } = data;
313
335
  if (title) {
314
336
  let traceTitle = new JSONTestSuiteHeaderParagraph_1.default(title.fields, styles, undefined, title.level);
315
337
  traceSkin.push(traceTitle.getJSONParagraph());
316
338
  }
317
339
  if ((adoptedData === null || adoptedData === void 0 ? void 0 : adoptedData.length) > 0) {
318
- let tableSkin = new JSONTable_1.default(adoptedData, headerStyles, styles, headingLvl);
340
+ let tableSkin = new JSONTable_1.default(adoptedData, headerStyles, styles, headingLvl, undefined, undefined, false, groupedHeader);
319
341
  traceSkin.push(tableSkin.getJSONTable());
320
342
  }
321
343
  else if (errorMessage !== null) {
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,26 @@
1
- import { Table, TableRow, WIQueryResults, WIData, StyleOptions } from '../wordJsonModels';
1
+ import { Table, TableRow, WIQueryResults, WIData, StyleOptions, Shading } from '../wordJsonModels';
2
2
  export default class JSONTable {
3
3
  tableTemplate: Table;
4
4
  tableStyles: StyleOptions;
5
- constructor(data: WIQueryResults, headerRowStyle: StyleOptions, tableStyles: StyleOptions, headingLvl: number, retrieveOriginal?: boolean, insertPageBreak?: boolean, isFlattened?: boolean);
6
- generateJsonRows(data: any, headerRowStyle: StyleOptions, tableStyles: StyleOptions, retrieveOriginal: boolean, isFlattened: boolean): TableRow[];
5
+ constructor(data: WIQueryResults, headerRowStyle: StyleOptions, tableStyles: StyleOptions, headingLvl: number, retrieveOriginal?: boolean, insertPageBreak?: boolean, isFlattened?: boolean, groupedHeader?: {
6
+ leftLabel: string;
7
+ rightLabel: string;
8
+ leftColumns?: number;
9
+ rightColumns?: number;
10
+ shading?: Shading;
11
+ leftShading?: Shading;
12
+ rightShading?: Shading;
13
+ });
14
+ generateJsonRows(data: any, headerRowStyle: StyleOptions, tableStyles: StyleOptions, retrieveOriginal: boolean, isFlattened: boolean, groupedHeader?: {
15
+ leftLabel: string;
16
+ rightLabel: string;
17
+ leftColumns?: number;
18
+ rightColumns?: number;
19
+ shading?: Shading;
20
+ leftShading?: Shading;
21
+ rightShading?: Shading;
22
+ }): TableRow[];
23
+ private tryBuildGroupedHeaderRow;
7
24
  private applyVerticalMerges;
8
25
  headersRowAdapter(data: WIData): WIData;
9
26
  getJSONTable(): Table;
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const logger_1 = __importDefault(require("../../../services/logger"));
7
7
  const JSONTableRow_1 = __importDefault(require("./JSONTableRow"));
8
8
  class JSONTable {
9
- constructor(data, headerRowStyle, tableStyles, headingLvl, retrieveOriginal = false, insertPageBreak = false, isFlattened = false) {
9
+ constructor(data, headerRowStyle, tableStyles, headingLvl, retrieveOriginal = false, insertPageBreak = false, isFlattened = false, groupedHeader) {
10
10
  this.tableStyles = tableStyles;
11
11
  this.tableTemplate = {
12
12
  type: 'table',
13
13
  headingLevel: headingLvl,
14
- Rows: this.generateJsonRows(data, headerRowStyle, this.tableStyles, retrieveOriginal, isFlattened),
14
+ Rows: this.generateJsonRows(data, headerRowStyle, this.tableStyles, retrieveOriginal, isFlattened, groupedHeader),
15
15
  insertPageBreak: insertPageBreak,
16
16
  };
17
17
  }
18
- generateJsonRows(data, headerRowStyle, tableStyles, retrieveOriginal, isFlattened) {
18
+ generateJsonRows(data, headerRowStyle, tableStyles, retrieveOriginal, isFlattened, groupedHeader) {
19
19
  let rows = [];
20
20
  let headersRowData = this.headersRowAdapter(data[0]);
21
21
  const defaultHeaderRowStyle = {
@@ -38,6 +38,11 @@ class JSONTable {
38
38
  fill: '17365D',
39
39
  themeFillShade: 'BF',
40
40
  };
41
+ // Optional grouped header row (two merged cells)
42
+ const groupedRow = this.tryBuildGroupedHeaderRow(headersRowData, groupedHeader, finalHeaderRowStyle);
43
+ if (groupedRow) {
44
+ rows.push(groupedRow);
45
+ }
41
46
  const headersRow = new JSONTableRow_1.default(headersRowData, finalHeaderRowStyle, undefined, headerShading);
42
47
  rows.push(headersRow.getRow());
43
48
  if (!data) {
@@ -51,10 +56,60 @@ class JSONTable {
51
56
  this.applyVerticalMerges(rows);
52
57
  return rows;
53
58
  } //generateJsonRows
59
+ // Builds a top grouped header row with two merged cells spanning left/right columns.
60
+ // Returns null if no groupedHeader is provided.
61
+ tryBuildGroupedHeaderRow(headersRowData, groupedHeader, textStyle) {
62
+ var _a, _b, _c, _d, _e;
63
+ try {
64
+ if (!groupedHeader || !groupedHeader.leftLabel || !groupedHeader.rightLabel)
65
+ return null;
66
+ const totalCols = ((_a = headersRowData === null || headersRowData === void 0 ? void 0 : headersRowData.fields) === null || _a === void 0 ? void 0 : _a.length) || 0;
67
+ if (totalCols === 0)
68
+ return null;
69
+ const leftCols = Math.max(1, (_b = groupedHeader.leftColumns) !== null && _b !== void 0 ? _b : Math.floor(totalCols / 2));
70
+ const rightCols = Math.max(1, (_c = groupedHeader.rightColumns) !== null && _c !== void 0 ? _c : totalCols - leftCols);
71
+ // Build simple table cells with Runs and gridSpan
72
+ const makeCell = (label, span, cellShading) => {
73
+ var _a, _b;
74
+ return {
75
+ attachments: [],
76
+ Paragraphs: [
77
+ {
78
+ Runs: [
79
+ {
80
+ text: label,
81
+ Bold: !!(textStyle === null || textStyle === void 0 ? void 0 : textStyle.isBold),
82
+ Italic: !!(textStyle === null || textStyle === void 0 ? void 0 : textStyle.IsItalic),
83
+ Underline: !!(textStyle === null || textStyle === void 0 ? void 0 : textStyle.IsUnderline),
84
+ Size: (_a = textStyle === null || textStyle === void 0 ? void 0 : textStyle.Size) !== null && _a !== void 0 ? _a : 12,
85
+ Uri: null,
86
+ Font: (_b = textStyle === null || textStyle === void 0 ? void 0 : textStyle.Font) !== null && _b !== void 0 ? _b : 'Arial',
87
+ InsertLineBreak: false,
88
+ InsertSpace: false,
89
+ },
90
+ ],
91
+ },
92
+ ],
93
+ Html: undefined,
94
+ width: '',
95
+ shading: cellShading !== null && cellShading !== void 0 ? cellShading : groupedHeader === null || groupedHeader === void 0 ? void 0 : groupedHeader.shading,
96
+ gridSpan: span,
97
+ };
98
+ };
99
+ const leftShade = (_d = groupedHeader.leftShading) !== null && _d !== void 0 ? _d : groupedHeader.shading;
100
+ const rightShade = (_e = groupedHeader.rightShading) !== null && _e !== void 0 ? _e : groupedHeader.shading;
101
+ const leftCell = makeCell(groupedHeader.leftLabel, leftCols, leftShade);
102
+ const rightCell = makeCell(groupedHeader.rightLabel, rightCols, rightShade);
103
+ return { Cells: [leftCell, rightCell] };
104
+ }
105
+ catch (_f) {
106
+ return null;
107
+ }
108
+ }
54
109
  applyVerticalMerges(rows) {
55
- var _a, _b, _c, _d, _e, _f, _g;
110
+ var _a, _b, _c, _d, _e, _f, _g, _h;
56
111
  if (!rows || rows.length <= 2)
57
- return; // header + at least 1 data row needed
112
+ return; // at least headers + one data row
58
113
  const getCellText = (cell) => {
59
114
  var _a, _b;
60
115
  try {
@@ -65,15 +120,17 @@ class JSONTable {
65
120
  return '';
66
121
  }
67
122
  };
68
- const dataRowStart = 1; // skip header
123
+ // Determine how many header rows are present at the top (1 or 2 if grouped header exists)
124
+ const hasGroupedHeader = Array.isArray((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.Cells) && rows[0].Cells.some((c) => (c === null || c === void 0 ? void 0 : c.gridSpan) && c.gridSpan > 1);
125
+ const dataRowStart = hasGroupedHeader ? 2 : 1; // skip grouped + column header
69
126
  const maxCols = Math.max(...rows.map((r) => { var _a; return (((_a = r === null || r === void 0 ? void 0 : r.Cells) === null || _a === void 0 ? void 0 : _a.length) || 0); }));
70
127
  for (let col = 0; col < maxCols; col++) {
71
128
  for (let i = dataRowStart + 1; i < rows.length; i++) {
72
- const prev = (_b = (_a = rows[i - 1]) === null || _a === void 0 ? void 0 : _a.Cells) === null || _b === void 0 ? void 0 : _b[col];
73
- const curr = (_d = (_c = rows[i]) === null || _c === void 0 ? void 0 : _c.Cells) === null || _d === void 0 ? void 0 : _d[col];
129
+ const prev = (_c = (_b = rows[i - 1]) === null || _b === void 0 ? void 0 : _b.Cells) === null || _c === void 0 ? void 0 : _c[col];
130
+ const curr = (_e = (_d = rows[i]) === null || _d === void 0 ? void 0 : _d.Cells) === null || _e === void 0 ? void 0 : _e[col];
74
131
  if (!prev || !curr)
75
132
  continue;
76
- const sameFill = (((_e = prev.shading) === null || _e === void 0 ? void 0 : _e.fill) || '') === (((_f = curr.shading) === null || _f === void 0 ? void 0 : _f.fill) || '');
133
+ const sameFill = (((_f = prev.shading) === null || _f === void 0 ? void 0 : _f.fill) || '') === (((_g = curr.shading) === null || _g === void 0 ? void 0 : _g.fill) || '');
77
134
  const prevTextEmpty = getCellText(prev) === '';
78
135
  const currTextEmpty = getCellText(curr) === '';
79
136
  if (!sameFill) {
@@ -81,7 +138,7 @@ class JSONTable {
81
138
  }
82
139
  // Start merge when prev has text and current is empty
83
140
  if (!prevTextEmpty && currTextEmpty) {
84
- prev.vMerge = (_g = prev.vMerge) !== null && _g !== void 0 ? _g : 'restart';
141
+ prev.vMerge = (_h = prev.vMerge) !== null && _h !== void 0 ? _h : 'restart';
85
142
  curr.vMerge = 'continue';
86
143
  }
87
144
  else if ((prev.vMerge === 'restart' || prev.vMerge === 'continue') && currTextEmpty) {
@@ -1 +1 @@
1
- {"version":3,"file":"JSONTable.js","sourceRoot":"","sources":["../../../../src/models/json/table/JSONTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONTable.js","sourceRoot":"","sources":["../../../../src/models/json/table/JSONTable.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ export interface TableCell {
37
37
  width?: string;
38
38
  Html?: JsonHtml;
39
39
  vMerge?: 'restart' | 'continue';
40
+ gridSpan?: number;
40
41
  }
41
42
  export interface Shading {
42
43
  color: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elisra-devops/docgen-skins",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "Can be outputed in various types:",
5
5
  "main": "./bin/index.js",
6
6
  "types": "./bin/index.d.ts",
package/src/index.ts CHANGED
@@ -20,6 +20,7 @@ export default class Skins {
20
20
  SKIN_TYPE_TRACE = 'trace-table';
21
21
  SKIN_TYPE_TABLE_STR = 'str-table';
22
22
  SKIN_TYPE_PARAGRAPH = 'paragraph';
23
+ SKIN_TYPE_COVER_PAGE = 'cover-page';
23
24
  SKIN_TYPE_TEST_PLAN = 'test-plan';
24
25
  SKIN_TYPE_SYSTEM_OVERVIEW = 'system-overview';
25
26
  SKIN_TYPE_INSTALLATION = 'installation';
@@ -73,6 +74,9 @@ export default class Skins {
73
74
  case this.SKIN_TYPE_PARAGRAPH:
74
75
  populatedSkin = this.generateQueryBasedParagraphs(data, styles, headingLvl);
75
76
  break;
77
+ case this.SKIN_TYPE_COVER_PAGE:
78
+ populatedSkin = this.generateCoverPageParagraphs(data, styles, headingLvl);
79
+ break;
76
80
  case this.SKIN_TYPE_TEST_PLAN:
77
81
  populatedSkin = this.generateTestBasedSkin(
78
82
  data,
@@ -327,49 +331,63 @@ export default class Skins {
327
331
  }
328
332
  }
329
333
 
334
+ private generateParagraphsFromData(data: any, styles: StyleOptions, headingLvl: number = 0): any[] {
335
+ const paragraphs: any[] = [];
336
+
337
+ data.forEach((wi: WIData) => {
338
+ wi.fields.forEach((field: WIProperty) => {
339
+ // Description and Test Description are handled via rich-text handler
340
+ if (field.name === 'Description: ' || field.name === 'Test Description:') {
341
+ const paragraphSkin = new JSONRichTextParagraph(field, styles, wi.Source, headingLvl + wi.level);
342
+ paragraphs.push(paragraphSkin.getJSONRichTextParagraph());
343
+ }
344
+
345
+ // Exclude ID / Description / Test Description from the normal paragraph path
346
+ if (field.name !== 'ID' && field.name !== 'Description: ' && field.name !== 'Test Description:') {
347
+ const paragraphSkin = new JSONParagraph(field, styles, wi.Source, headingLvl + wi.level);
348
+ paragraphs.push(paragraphSkin.getJSONParagraph());
349
+ }
350
+ });
351
+ });
352
+
353
+ return paragraphs;
354
+ }
355
+
356
+ generateCoverPageParagraphs(data: any, styles: StyleOptions, headingLvl: number = 0): any[] {
357
+ logger.debug(`Generating cover-page paragraphs as ${this.skinFormat}`);
358
+ try {
359
+ switch (this.skinFormat) {
360
+ case 'json':
361
+ return this.generateParagraphsFromData(data, styles, headingLvl);
362
+ case 'html':
363
+ logger.info(`Generating html cover-page paragraphs!`);
364
+ return [];
365
+ default:
366
+ throw new Error(`Invalid skin format ${this.skinFormat}`);
367
+ }
368
+ } catch (error: any) {
369
+ logger.error(`Error occurred in generateCoverPageParagraphs: ${error.message}`);
370
+ throw error;
371
+ }
372
+ }
373
+
330
374
  generateQueryBasedParagraphs(data: any, styles: StyleOptions, headingLvl: number = 0): any[] {
331
375
  logger.debug(`Generating paragraph as ${this.skinFormat}`);
332
376
  try {
333
377
  switch (this.skinFormat) {
334
378
  case 'json':
335
- let paragraphs: any[] = [];
336
- data.forEach((wi: WIData) => {
337
- wi.fields.forEach((field: WIProperty) => {
338
- //Description and Test Description are handled in richText handler
339
- if (field.name === 'Description: ' || field.name === 'Test Description:') {
340
- let paragraphSkin = new JSONRichTextParagraph(
341
- field,
342
- styles,
343
- wi.Source,
344
- headingLvl + wi.level
345
- );
346
- paragraphs.push(paragraphSkin.getJSONRichTextParagraph());
347
- }
348
-
349
- //making sure ID is not printed
350
- //excluding Description and Test Description are handled in richText handler
351
- if (
352
- field.name !== 'ID' &&
353
- field.name !== 'Description: ' &&
354
- field.name !== 'Test Description:'
355
- ) {
356
- let paragraphSkin = new JSONParagraph(field, styles, wi.Source, headingLvl + wi.level);
357
- paragraphs.push(paragraphSkin.getJSONParagraph());
358
- }
359
- });
360
- });
361
- return paragraphs;
379
+ return this.generateParagraphsFromData(data, styles, headingLvl);
362
380
  case 'html':
363
381
  logger.info(`Generating html paragraphs!`);
364
382
  return [];
365
383
  default:
366
384
  throw new Error(`Invalid skin format ${this.skinFormat}`);
367
- } //switch
368
- } catch (error) {
385
+ }
386
+ } catch (error: any) {
369
387
  logger.error(`Error occurred in generateQueryBasedParagraphs: ${error.message}`);
370
388
  throw error;
371
389
  }
372
- } //generateParagraph
390
+ }
373
391
 
374
392
  generateTraceTable(
375
393
  data: any,
@@ -382,14 +400,23 @@ export default class Skins {
382
400
  switch (this.skinFormat) {
383
401
  case 'json':
384
402
  let traceSkin: any[] = [];
385
- const { title, adoptedData, errorMessage } = data;
403
+ const { title, adoptedData, errorMessage, groupedHeader } = data;
386
404
  if (title) {
387
405
  let traceTitle = new JSONHeaderParagraph(title.fields, styles, undefined, title.level);
388
406
  traceSkin.push(traceTitle.getJSONParagraph());
389
407
  }
390
408
 
391
409
  if (adoptedData?.length > 0) {
392
- let tableSkin = new JSONTable(adoptedData, headerStyles, styles, headingLvl);
410
+ let tableSkin = new JSONTable(
411
+ adoptedData,
412
+ headerStyles,
413
+ styles,
414
+ headingLvl,
415
+ undefined,
416
+ undefined,
417
+ false,
418
+ groupedHeader
419
+ );
393
420
  traceSkin.push(tableSkin.getJSONTable());
394
421
  } else if (errorMessage !== null) {
395
422
  let errorSkin = new JSONParagraph({ name: 'Description', value: errorMessage }, styles, 0, 0);
@@ -441,7 +468,7 @@ export default class Skins {
441
468
  testSuite?.suiteSkinData?.fields && testSuite.suiteSkinData.fields.length > 1
442
469
  ? Number(testSuite.suiteSkinData.fields[1]?.value)
443
470
  : undefined;
444
-
471
+
445
472
  // Check if suite should be included (not flattened)
446
473
  if (testSuite.suiteSkinData) {
447
474
  let SuiteStyles = {
@@ -20,13 +20,29 @@ export default class JSONTable {
20
20
  headingLvl: number,
21
21
  retrieveOriginal = false,
22
22
  insertPageBreak: boolean = false,
23
- isFlattened = false
23
+ isFlattened = false,
24
+ groupedHeader?: {
25
+ leftLabel: string;
26
+ rightLabel: string;
27
+ leftColumns?: number;
28
+ rightColumns?: number;
29
+ shading?: Shading;
30
+ leftShading?: Shading;
31
+ rightShading?: Shading;
32
+ }
24
33
  ) {
25
34
  this.tableStyles = tableStyles;
26
35
  this.tableTemplate = {
27
36
  type: 'table',
28
37
  headingLevel: headingLvl,
29
- Rows: this.generateJsonRows(data, headerRowStyle, this.tableStyles, retrieveOriginal, isFlattened),
38
+ Rows: this.generateJsonRows(
39
+ data,
40
+ headerRowStyle,
41
+ this.tableStyles,
42
+ retrieveOriginal,
43
+ isFlattened,
44
+ groupedHeader
45
+ ),
30
46
  insertPageBreak: insertPageBreak,
31
47
  };
32
48
  }
@@ -36,7 +52,16 @@ export default class JSONTable {
36
52
  headerRowStyle: StyleOptions,
37
53
  tableStyles: StyleOptions,
38
54
  retrieveOriginal: boolean,
39
- isFlattened: boolean
55
+ isFlattened: boolean,
56
+ groupedHeader?: {
57
+ leftLabel: string;
58
+ rightLabel: string;
59
+ leftColumns?: number;
60
+ rightColumns?: number;
61
+ shading?: Shading;
62
+ leftShading?: Shading;
63
+ rightShading?: Shading;
64
+ }
40
65
  ): TableRow[] {
41
66
  let rows: TableRow[] = [];
42
67
  let headersRowData: WIData = this.headersRowAdapter(data[0]);
@@ -65,6 +90,12 @@ export default class JSONTable {
65
90
  themeFillShade: 'BF',
66
91
  };
67
92
 
93
+ // Optional grouped header row (two merged cells)
94
+ const groupedRow = this.tryBuildGroupedHeaderRow(headersRowData, groupedHeader, finalHeaderRowStyle);
95
+ if (groupedRow) {
96
+ rows.push(groupedRow);
97
+ }
98
+
68
99
  const headersRow = new JSONTableRow(headersRowData, finalHeaderRowStyle, undefined, headerShading);
69
100
  rows.push(headersRow.getRow());
70
101
  if (!data) {
@@ -81,8 +112,70 @@ export default class JSONTable {
81
112
  return rows;
82
113
  } //generateJsonRows
83
114
 
115
+ // Builds a top grouped header row with two merged cells spanning left/right columns.
116
+ // Returns null if no groupedHeader is provided.
117
+ private tryBuildGroupedHeaderRow(
118
+ headersRowData: WIData,
119
+ groupedHeader: {
120
+ leftLabel: string;
121
+ rightLabel: string;
122
+ leftColumns?: number;
123
+ rightColumns?: number;
124
+ shading?: Shading;
125
+ leftShading?: Shading;
126
+ rightShading?: Shading;
127
+ },
128
+ textStyle: StyleOptions
129
+ ): TableRow | null {
130
+ try {
131
+ if (!groupedHeader || !groupedHeader.leftLabel || !groupedHeader.rightLabel) return null;
132
+
133
+ const totalCols = headersRowData?.fields?.length || 0;
134
+ if (totalCols === 0) return null;
135
+
136
+ const leftCols = Math.max(1, groupedHeader.leftColumns ?? Math.floor(totalCols / 2));
137
+ const rightCols = Math.max(1, groupedHeader.rightColumns ?? totalCols - leftCols);
138
+
139
+ // Build simple table cells with Runs and gridSpan
140
+ const makeCell = (label: string, span: number, cellShading?: Shading): any => {
141
+ return {
142
+ attachments: [],
143
+ Paragraphs: [
144
+ {
145
+ Runs: [
146
+ {
147
+ text: label,
148
+ Bold: !!textStyle?.isBold,
149
+ Italic: !!textStyle?.IsItalic,
150
+ Underline: !!textStyle?.IsUnderline,
151
+ Size: textStyle?.Size ?? 12,
152
+ Uri: null,
153
+ Font: textStyle?.Font ?? 'Arial',
154
+ InsertLineBreak: false,
155
+ InsertSpace: false,
156
+ },
157
+ ],
158
+ },
159
+ ],
160
+ Html: undefined,
161
+ width: '',
162
+ shading: cellShading ?? groupedHeader?.shading,
163
+ gridSpan: span,
164
+ };
165
+ };
166
+
167
+ const leftShade = groupedHeader.leftShading ?? groupedHeader.shading;
168
+ const rightShade = groupedHeader.rightShading ?? groupedHeader.shading;
169
+ const leftCell = makeCell(groupedHeader.leftLabel, leftCols, leftShade);
170
+ const rightCell = makeCell(groupedHeader.rightLabel, rightCols, rightShade);
171
+ return { Cells: [leftCell, rightCell] } as TableRow;
172
+ } catch {
173
+ return null;
174
+ }
175
+ }
176
+
84
177
  private applyVerticalMerges(rows: TableRow[]) {
85
- if (!rows || rows.length <= 2) return; // header + at least 1 data row needed
178
+ if (!rows || rows.length <= 2) return; // at least headers + one data row
86
179
 
87
180
  const getCellText = (cell: any): string => {
88
181
  try {
@@ -93,7 +186,9 @@ export default class JSONTable {
93
186
  }
94
187
  };
95
188
 
96
- const dataRowStart = 1; // skip header
189
+ // Determine how many header rows are present at the top (1 or 2 if grouped header exists)
190
+ const hasGroupedHeader = Array.isArray(rows[0]?.Cells) && rows[0].Cells.some((c: any) => c?.gridSpan && c.gridSpan > 1);
191
+ const dataRowStart = hasGroupedHeader ? 2 : 1; // skip grouped + column header
97
192
  const maxCols = Math.max(...rows.map((r) => (r?.Cells?.length || 0)));
98
193
 
99
194
  for (let col = 0; col < maxCols; col++) {
@@ -37,6 +37,8 @@ export interface TableCell {
37
37
  width?: string;
38
38
  Html?: JsonHtml;
39
39
  vMerge?: 'restart' | 'continue';
40
+ // Optional: number of grid columns this cell spans (colspan)
41
+ gridSpan?: number;
40
42
  }
41
43
 
42
44
  export interface Shading {