osl-base-extended 1.1.37 → 1.1.39

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.
@@ -1673,7 +1673,7 @@ class OslAutocomplete extends baseComponent {
1673
1673
  this.syncInputFromModel();
1674
1674
  }
1675
1675
  ngOnChanges() {
1676
- this.filteredItems = [...this.datasource];
1676
+ this.filteredItems = [...(this.datasource || [])];
1677
1677
  this.syncInputFromModel();
1678
1678
  }
1679
1679
  syncInputFromModel() {
@@ -3760,8 +3760,25 @@ class OslReportGrid {
3760
3760
  // Render table: clean black-bordered financial-report style
3761
3761
  const colStylesMap = {};
3762
3762
  cols.forEach((col, i) => { colStylesMap[i] = { cellWidth: colWidths[i] }; });
3763
+ // Build double header rows when headerGroup is used
3764
+ const colLabelsRow = cols.map((c, i) => ({ content: c.label, styles: { halign: c.align ?? 'left', cellWidth: colWidths[i] } }));
3765
+ const pdfHead = [];
3766
+ if (this.hasHeaderGroups) {
3767
+ const groupRow = [];
3768
+ let i = 0;
3769
+ while (i < cols.length) {
3770
+ const groupLabel = cols[i].headerGroup ?? '';
3771
+ let span = 1;
3772
+ while (i + span < cols.length && (cols[i + span].headerGroup ?? '') === groupLabel)
3773
+ span++;
3774
+ groupRow.push({ content: groupLabel, colSpan: span, styles: { halign: 'center', fontStyle: 'bold' } });
3775
+ i += span;
3776
+ }
3777
+ pdfHead.push(groupRow);
3778
+ }
3779
+ pdfHead.push(colLabelsRow);
3763
3780
  autoTable(doc, {
3764
- head: [cols.map((c, i) => ({ content: c.label, styles: { halign: c.align ?? 'left', cellWidth: colWidths[i] } }))],
3781
+ head: pdfHead,
3765
3782
  body,
3766
3783
  startY: yPos,
3767
3784
  margin: { left: margin, right: margin, top: margin, bottom: margin + 18 },