@colijnit/corecomponents_v12 256.1.24 → 256.1.26

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.
@@ -9458,12 +9458,135 @@ BaseSimpleGridComponent.propDecorators = {
9458
9458
  handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
9459
9459
  };
9460
9460
 
9461
+ class ExcelExportService {
9462
+ /**
9463
+ * Export data to Excel file
9464
+ * @param data - Array of objects to export
9465
+ * @param columns - Column configuration (optional)
9466
+ * @param fileName - Name of the exported file
9467
+ * @param sheetName - Name of the Excel sheet
9468
+ */
9469
+ exportToExcel(data, columns, fileName = 'export', sheetName = 'Sheet1') {
9470
+ // If columns are specified, transform data to match column structure
9471
+ let exportData = data;
9472
+ if (columns && columns.length > 0) {
9473
+ exportData = data.map(item => {
9474
+ const newItem = {};
9475
+ columns.forEach(col => {
9476
+ newItem[col.header] = this.getNestedValue(item, col.key);
9477
+ });
9478
+ return newItem;
9479
+ });
9480
+ }
9481
+ // Create workbook and worksheet
9482
+ const wb = XLSX.utils.book_new();
9483
+ const ws = XLSX.utils.json_to_sheet(exportData);
9484
+ // Set column widths if specified
9485
+ if (columns && columns.some(col => col.width)) {
9486
+ const colWidths = columns.map(col => ({ wch: col.width || 20 }));
9487
+ ws['!cols'] = colWidths;
9488
+ }
9489
+ // Add worksheet to workbook
9490
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9491
+ // Save file
9492
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9493
+ }
9494
+ /**
9495
+ * Export multiple sheets to one Excel file
9496
+ * @param sheets - Array of sheet data
9497
+ * @param fileName - Name of the exported file
9498
+ */
9499
+ exportMultipleSheets(sheets, fileName = 'multi-sheet-export') {
9500
+ const wb = XLSX.utils.book_new();
9501
+ sheets.forEach(sheet => {
9502
+ let exportData = sheet.data;
9503
+ if (sheet.columns && sheet.columns.length > 0) {
9504
+ exportData = sheet.data.map(item => {
9505
+ const newItem = {};
9506
+ sheet.columns.forEach(col => {
9507
+ newItem[col.header] = this.getNestedValue(item, col.key);
9508
+ });
9509
+ return newItem;
9510
+ });
9511
+ }
9512
+ const ws = XLSX.utils.json_to_sheet(exportData);
9513
+ if (sheet.columns && sheet.columns.some(col => col.width)) {
9514
+ const colWidths = sheet.columns.map(col => ({ wch: col.width || 20 }));
9515
+ ws['!cols'] = colWidths;
9516
+ }
9517
+ XLSX.utils.book_append_sheet(wb, ws, sheet.sheetName);
9518
+ });
9519
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9520
+ }
9521
+ /**
9522
+ * Export HTML table to Excel
9523
+ * @param tableId - ID of the HTML table element
9524
+ * @param fileName - Name of the exported file
9525
+ * @param sheetName - Name of the Excel sheet
9526
+ */
9527
+ exportTableToExcel(tableId, fileName = 'table-export', sheetName = 'Sheet1') {
9528
+ const table = document.getElementById(tableId);
9529
+ if (!table) {
9530
+ console.error(`Table with ID '${tableId}' not found`);
9531
+ return;
9532
+ }
9533
+ const wb = XLSX.utils.book_new();
9534
+ const ws = XLSX.utils.table_to_sheet(table);
9535
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9536
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9537
+ }
9538
+ /**
9539
+ * Get nested object value using dot notation
9540
+ * @param obj - Object to search in
9541
+ * @param path - Dot notation path (e.g., 'user.address.city')
9542
+ */
9543
+ getNestedValue(obj, path) {
9544
+ return path.split('.').reduce((current, key) => {
9545
+ return current && current[key] !== undefined ? current[key] : '';
9546
+ }, obj);
9547
+ }
9548
+ /**
9549
+ * Format date for Excel export
9550
+ * @param date - Date to format
9551
+ * @param format - Format string (default: 'MM/DD/YYYY')
9552
+ */
9553
+ formatDateForExport(date, format = 'MM/DD/YYYY') {
9554
+ if (!date) {
9555
+ return '';
9556
+ }
9557
+ const d = new Date(date);
9558
+ if (isNaN(d.getTime())) {
9559
+ return '';
9560
+ }
9561
+ const month = (d.getMonth() + 1).toString().padStart(2, '0');
9562
+ const day = d.getDate().toString().padStart(2, '0');
9563
+ const year = d.getFullYear();
9564
+ switch (format) {
9565
+ case 'MM/DD/YYYY':
9566
+ return `${month}/${day}/${year}`;
9567
+ case 'DD/MM/YYYY':
9568
+ return `${day}/${month}/${year}`;
9569
+ case 'YYYY-MM-DD':
9570
+ return `${year}-${month}-${day}`;
9571
+ default:
9572
+ return d.toLocaleDateString();
9573
+ }
9574
+ }
9575
+ }
9576
+ ExcelExportService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ExcelExportService_Factory() { return new ExcelExportService(); }, token: ExcelExportService, providedIn: "root" });
9577
+ ExcelExportService.decorators = [
9578
+ { type: Injectable, args: [{
9579
+ providedIn: 'root'
9580
+ },] }
9581
+ ];
9582
+
9461
9583
  class SimpleGridComponent extends BaseSimpleGridComponent {
9462
- constructor(icons, _changeDetection, _formMaster) {
9584
+ constructor(icons, _changeDetection, _formMaster, excelExportService) {
9463
9585
  super();
9464
9586
  this.icons = icons;
9465
9587
  this._changeDetection = _changeDetection;
9466
9588
  this._formMaster = _formMaster;
9589
+ this.excelExportService = excelExportService;
9467
9590
  this.defaultTextAlign = ColumnAlign.Left;
9468
9591
  this.showAdd = false;
9469
9592
  this.showDelete = false;
@@ -9542,13 +9665,6 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9542
9665
  }
9543
9666
  });
9544
9667
  }
9545
- isSingleColumn(column) {
9546
- return column.singleColumn;
9547
- }
9548
- rowContainsSingleColumn(row, columns) {
9549
- const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);
9550
- return !!singleColumn;
9551
- }
9552
9668
  addNewRow() {
9553
9669
  return __awaiter(this, void 0, void 0, function* () {
9554
9670
  if (this.inlineEdit) {
@@ -9691,74 +9807,44 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9691
9807
  return obj !== col;
9692
9808
  });
9693
9809
  }
9694
- // TODO Fix this sort method
9695
- // public sortColumn(col: any, columnValue: string): void {
9696
- // console.log(col);
9697
- // console.log("columnValue " + columnValue);
9698
- // col.isSelected = false;
9699
- //
9700
- // if (this.sortColumnValue === columnValue) {
9701
- // this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
9702
- // } else {
9703
- // this.sortColumnValue = columnValue;
9704
- // this.sortDirection = 'asc';
9705
- // }
9706
- //
9707
- // console.log(this.data);
9708
- // // this.data = this._sortData(this.data);
9709
- //
9710
- //
9711
- // this.data.sort((a, b) => {
9712
- // const sign = this.sortDirection === 'asc' ? 1 : -1;
9713
- //
9714
- // console.log("a " + a);
9715
- // console.log("b " + b);
9716
- // console.log(a[this.sortColumnValue]);
9717
- // console.log(b[this.sortColumnValue]);
9718
- // console.log("sign " + sign);
9719
- //
9720
- // if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
9721
- // return -1 * sign;
9722
- // } else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
9723
- // return 1 * sign;
9724
- // }
9725
- // return 0;
9726
- // });
9727
- //
9728
- //
9729
- //
9730
- // this._detectChanges();
9731
- // // this.data.sort((a, b) => a[this.sortColumnValue] - b[this.sortColumnValue]);
9732
- // console.log(this.data);
9733
- // }
9734
- _sortData(tableData) {
9735
- return tableData.sort((a, b) => {
9736
- const sign = this.sortDirection === 'asc' ? 1 : -1;
9737
- console.log("a " + a);
9738
- console.log("b " + b);
9739
- console.log(a[this.sortColumnValue]);
9740
- console.log(b[this.sortColumnValue]);
9741
- console.log("sign " + sign);
9742
- if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
9743
- return -1 * sign;
9744
- }
9745
- else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
9746
- return 1 * sign;
9747
- }
9748
- return 0;
9749
- });
9750
- }
9751
9810
  showAllColumns() {
9752
9811
  this.isSettingsMenuOpen = false;
9753
9812
  this.headerColumnsCopy = this.headerColumns;
9754
9813
  }
9755
9814
  exportToExcel() {
9756
9815
  this.isSettingsMenuOpen = false;
9757
- let element = document.getElementById('simple-grid-table');
9758
- const ws = XLSX.utils.table_to_sheet(element);
9759
- const wb = XLSX.utils.book_new();
9760
- XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
9761
- XLSX.writeFile(wb, 'ExcelSheet.xlsx');
9816
+ const columns = this.headerColumnsCopy.map(column => {
9817
+ return ({
9818
+ key: column.field,
9819
+ header: column.headerText
9820
+ });
9821
+ });
9822
+ const headers = columns.map(col => col.header);
9823
+ const rows = this.data.map(row => columns.map(col => {
9824
+ const value = row[col.key];
9825
+ if (value instanceof Date) {
9826
+ const pad = (n) => String(n).padStart(2, '0');
9827
+ return `${value.getFullYear()}-${pad(value.getMonth() + 1)}-${pad(value.getDate())}T${pad(value.getHours())}:${pad(value.getMinutes())}:${pad(value.getSeconds())}`;
9828
+ }
9829
+ else if (Array.isArray(value)) {
9830
+ return value.join(', ');
9831
+ }
9832
+ else if (typeof value === 'object' && value !== null) {
9833
+ return JSON.stringify(value);
9834
+ }
9835
+ else {
9836
+ return String(value !== null && value !== void 0 ? value : '');
9837
+ }
9838
+ }));
9839
+ const csvContent = [headers, ...rows].map(row => row.map(cell => `"${cell.replace(/"/g, '""')}"`).join(',')).join('\r\n');
9840
+ const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
9841
+ const link = document.createElement('a');
9842
+ const url = URL.createObjectURL(blob);
9843
+ link.href = url;
9844
+ link.setAttribute('download', 'ExcelSheet');
9845
+ document.body.appendChild(link);
9846
+ link.click();
9847
+ document.body.removeChild(link);
9762
9848
  }
9763
9849
  prepareDataRow(row, index) {
9764
9850
  this.isRowDisabled(row, index);
@@ -9905,140 +9991,148 @@ SimpleGridComponent.decorators = [
9905
9991
  { type: Component, args: [{
9906
9992
  selector: 'co-simple-grid',
9907
9993
  template: `
9908
- <co-grid-toolbar *ngIf="showToolbar" [class.right]="rightToolbar"
9909
- [showEdit]="showEdit"
9910
- [showAdd]="showAdd"
9911
- [showDelete]="showDelete"
9912
- [deleteEnabled]="selectedRowIndex > -1"
9913
- (addClick)="addNewRow()"
9914
- (editClick)="editRow($event)"
9915
- (saveClick)="validateAndSave()"
9916
- (cancelClick)="cancelEditRow()"
9917
- (deleteClick)="removeRow()"
9918
- ></co-grid-toolbar>
9919
- <table
9920
- id="simple-grid-table"
9921
- class="simple-grid-table"
9922
- [clickOutside]="editing"
9923
- (clickOutside)="handleClickOutsideRow()">
9924
- <colgroup>
9925
- <col *ngFor="let column of headerColumnsCopy; let index = index"
9926
- [class.simple-grid-column-auto-fit]="column.autoFit"
9927
- [style.width.px]="column.width"
9928
- [style.min-width.px]="MIN_COLUMN_WIDTH">
9929
- </colgroup>
9930
- <thead>
9931
- <tr>
9932
- <th
9933
- scope="col"
9934
- #headerCell
9935
- class="simple-grid-column-header"
9936
- *ngFor="let column of headerColumnsCopy; let index = index">
9937
- <div
9938
- class="simple-grid-column-header-wrapper"
9939
- [class.resizable]="resizable"
9940
- [class.selected]="column.isSelected"
9941
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
9942
- <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
9943
- <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
9944
- </ng-container>
9945
- <ng-template #noHeaderTemplate>
9946
- <div class="simple-grid-column-header-label"
9947
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
9948
- [class.with-menu]="showGridSettings"
9949
- [textContent]="column.headerText || '&nbsp;'"
9950
- (click)="toggleColumnMenu(column)">
9951
- </div>
9994
+ <co-grid-toolbar
9995
+ *ngIf="showToolbar" [class.right]="rightToolbar"
9996
+ [showEdit]="showEdit"
9997
+ [showAdd]="showAdd"
9998
+ [showDelete]="showDelete"
9999
+ [deleteEnabled]="selectedRowIndex > -1"
10000
+ (addClick)="addNewRow()"
10001
+ (editClick)="editRow($event)"
10002
+ (saveClick)="validateAndSave()"
10003
+ (cancelClick)="cancelEditRow()"
10004
+ (deleteClick)="removeRow()">
10005
+ </co-grid-toolbar>
9952
10006
 
9953
- <div class="column-menu" *ngIf="column.isSelected">
9954
- <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
9955
- <ul>
9956
- <li (click)="hideColumn(column)">Hide Column</li>
9957
- <!-- <li (click)="sortColumn(column, column.field)">Sort Column</li>-->
9958
- </ul>
10007
+ <table
10008
+ id="simple-grid-table"
10009
+ class="simple-grid-table"
10010
+ [clickOutside]="editing"
10011
+ (clickOutside)="handleClickOutsideRow()">
10012
+ <colgroup>
10013
+ <col
10014
+ *ngFor="let column of headerColumnsCopy; let index = index"
10015
+ [class.simple-grid-column-auto-fit]="column.autoFit"
10016
+ [style.width.px]="column.width"
10017
+ [style.min-width.px]="MIN_COLUMN_WIDTH">
10018
+ </colgroup>
10019
+ <thead>
10020
+ <tr>
10021
+ <th
10022
+ scope="col"
10023
+ #headerCell
10024
+ class="simple-grid-column-header"
10025
+ *ngFor="let column of headerColumnsCopy; let index = index">
10026
+ <div
10027
+ class="simple-grid-column-header-wrapper"
10028
+ [class.resizable]="resizable"
10029
+ [class.selected]="column.isSelected"
10030
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
10031
+ <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
10032
+ <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
10033
+ </ng-container>
10034
+ <ng-template #noHeaderTemplate>
10035
+ <div
10036
+ class="simple-grid-column-header-label"
10037
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
10038
+ [class.with-menu]="showGridSettings"
10039
+ [textContent]="column.headerText || '&nbsp;'"
10040
+ (click)="toggleColumnMenu(column)">
10041
+ </div>
10042
+
10043
+ <div class="column-menu" *ngIf="column.isSelected">
10044
+ <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
10045
+ <ul>
10046
+ <li (click)="hideColumn(column)">Hide Column</li>
10047
+ <!-- <li (click)="sortColumn(column, column.field)">Sort Column</li>-->
10048
+ </ul>
10049
+ </div>
10050
+ </ng-template>
10051
+ <div
10052
+ *ngIf="resizable && column.resizable"
10053
+ class="simple-grid-column-sizer"
10054
+ (mousedown)="handleSizerMouseDown($event, column)">
10055
+ </div>
10056
+ </div>
10057
+ </th>
10058
+ </tr>
10059
+
10060
+ <div *ngIf="showGridSettings" class="grid-settings">
10061
+ <co-button
10062
+ [class.selected]="isSettingsMenuOpen"
10063
+ [iconData]="icons.getIcon(Icons.CogWheels)"
10064
+ (click)="toggleSettingsMenu()">
10065
+ </co-button>
10066
+
10067
+ <div class="settings-menu" *ngIf="isSettingsMenuOpen">
10068
+ <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
10069
+ <ul>
10070
+ <li (click)="exportToExcel()">Export to Excel</li>
10071
+ <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">
10072
+ Show All Columns
10073
+ </li>
10074
+ </ul>
9959
10075
  </div>
9960
- </ng-template>
9961
- <div *ngIf="resizable && column.resizable" class="simple-grid-column-sizer"
9962
- (mousedown)="handleSizerMouseDown($event, column)"
9963
- ></div>
9964
10076
  </div>
9965
- </th>
9966
- <th *ngIf="showGridSettings" class="simple-grid-column-header grid-settings">
9967
- <co-button
9968
- [class.selected]="isSettingsMenuOpen"
9969
- [iconData]="icons.getIcon(Icons.CogWheels)"
9970
- (click)="toggleSettingsMenu()">
9971
- </co-button>
9972
10077
 
9973
- <div class="settings-menu" *ngIf="isSettingsMenuOpen">
9974
- <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
9975
- <ul>
9976
- <li (click)="exportToExcel()">Export to Excel</li>
9977
- <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">Show All
9978
- Columns
9979
- </li>
9980
- </ul>
9981
- </div>
9982
- </th>
9983
- </tr>
9984
- </thead>
9985
- <tbody #dropList cdkDropList cdkDropListOrientation="vertical"
9986
- class="simple-grid-drag-drop-list"
9987
- [cdkDropListDisabled]="!dragDropEnabled || editing"
9988
- [cdkDropListData]="data"
9989
- [cdkDropListEnterPredicate]="handleCanDragDrop"
9990
- (cdkDropListDropped)="handleDrop($event)">
9991
- <tr
9992
- class="simple-grid-row"
9993
- [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
9994
- [class.disabled]="getIsRowDisabled(rowIndex)"
9995
- [class.editing]="rowIndex === editRowIndex"
9996
- *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
9997
- cdkDrag
9998
- (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
9999
- (visibilityChange)="rowVisible.next(row)">
10000
- <co-form class="simple-grid-row-form">
10001
- <ng-container *ngIf="isSingleColumnRow(row)">
10002
- <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10003
- <co-simple-grid-cell
10004
- [column]="columns[singleColumnIndex(row)]"
10005
- [row]="row"
10006
- [editMode]="false"
10007
- ></co-simple-grid-cell>
10008
- </td>
10009
- </ng-container>
10010
- <ng-container *ngIf="!isSingleColumnRow(row)">
10011
- <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10012
- <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10013
- <co-simple-grid-cell
10014
- [column]="column"
10015
- [row]="row"
10016
- [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10017
- [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10018
- (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)"
10019
- ></co-simple-grid-cell>
10020
- <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10021
- </td>
10022
- </ng-container>
10023
- </ng-container>
10024
- <td *ngIf="showGridSettings"></td>
10025
- </co-form>
10026
- </tr>
10027
- </tbody>
10028
- </table>
10029
- <co-pagination-bar *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10030
- [itemsPerPage]="rowsPerPage"
10031
- [currentPage]="currentPage"
10032
- [totalItems]="data.length"
10033
- [autoHide]="true"
10034
- (previousClick)="goToPreviousPage()"
10035
- (nextClick)="goToNextPage()"
10036
- (pageClick)="setCurrentPage($event)"
10037
- ></co-pagination-bar>
10078
+ </thead>
10079
+ <tbody
10080
+ #dropList cdkDropList cdkDropListOrientation="vertical"
10081
+ class="simple-grid-drag-drop-list"
10082
+ [cdkDropListDisabled]="!dragDropEnabled || editing"
10083
+ [cdkDropListData]="data"
10084
+ [cdkDropListEnterPredicate]="handleCanDragDrop"
10085
+ (cdkDropListDropped)="handleDrop($event)">
10086
+ <co-form class="simple-grid-row-form">
10087
+ <tr
10088
+ class="simple-grid-row"
10089
+ [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
10090
+ [class.disabled]="getIsRowDisabled(rowIndex)"
10091
+ [class.editing]="rowIndex === editRowIndex"
10092
+ *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
10093
+ cdkDrag
10094
+ (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
10095
+ (visibilityChange)="rowVisible.next(row)">
10096
+ <ng-container *ngIf="isSingleColumnRow(row)">
10097
+ <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10098
+ <co-simple-grid-cell
10099
+ [column]="columns[singleColumnIndex(row)]"
10100
+ [row]="row"
10101
+ [editMode]="false">
10102
+ </co-simple-grid-cell>
10103
+ </td>
10104
+ </ng-container>
10105
+ <ng-container *ngIf="!isSingleColumnRow(row)">
10106
+ <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10107
+ <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10108
+ <co-simple-grid-cell
10109
+ [column]="column"
10110
+ [row]="row"
10111
+ [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10112
+ [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10113
+ (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)">
10114
+ </co-simple-grid-cell>
10115
+ <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10116
+ </td>
10117
+ </ng-container>
10118
+ </ng-container>
10119
+ </tr>
10120
+ </co-form>
10121
+ </tbody>
10122
+ </table>
10123
+
10124
+ <co-pagination-bar
10125
+ *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10126
+ [itemsPerPage]="rowsPerPage"
10127
+ [currentPage]="currentPage"
10128
+ [totalItems]="data.length"
10129
+ [autoHide]="true"
10130
+ (previousClick)="goToPreviousPage()"
10131
+ (nextClick)="goToNextPage()"
10132
+ (pageClick)="setCurrentPage($event)">
10133
+ </co-pagination-bar>
10038
10134
  `,
10039
- providers: [
10040
- FormMasterService
10041
- ],
10135
+ providers: [FormMasterService],
10042
10136
  changeDetection: ChangeDetectionStrategy.OnPush,
10043
10137
  encapsulation: ViewEncapsulation.None
10044
10138
  },] }
@@ -10046,7 +10140,8 @@ SimpleGridComponent.decorators = [
10046
10140
  SimpleGridComponent.ctorParameters = () => [
10047
10141
  { type: IconCacheService },
10048
10142
  { type: ChangeDetectorRef },
10049
- { type: FormMasterService }
10143
+ { type: FormMasterService },
10144
+ { type: ExcelExportService }
10050
10145
  ];
10051
10146
  SimpleGridComponent.propDecorators = {
10052
10147
  headerCells: [{ type: ViewChildren, args: ['headerCell',] }],
@@ -14778,5 +14873,5 @@ HourSchedulingExpandableComponentModule.decorators = [
14778
14873
  * Generated bundle index. Do not edit.
14779
14874
  */
14780
14875
 
14781
- export { ArticleTileComponent, ArticleTileModule, BaseInputComponent, BaseInputDatePickerDirective, BaseModuleScreenConfigService, BaseModuleService, ButtonComponent, ButtonModule, CalendarComponent, CalendarModule, CardComponent, CardModule, Carousel3dComponent, Carousel3dModule, CarouselComponent, CarouselHammerConfig, CarouselModule, CheckmarkOverlayModule, ClickoutsideModule, CoDialogComponent, CoDialogModule, CoDialogWizardComponent, CoDialogWizardModule, CoDirection, CoOrientation, CollapsibleComponent, CollapsibleModule, ColorPickerComponent, ColorPickerModule, ColorSequenceService, ColumnAlign, ContentViewMode, CoreComponentsIcon, CoreComponentsTranslationModule, CoreComponentsTranslationService, CoreDialogModule, CoreDialogService, DoubleCalendarComponent, DoubleCalendarModule, FilterItemComponent, FilterItemMode, FilterItemModule, FilterItemViewmodel, FilterPipe, FilterPipeModule, FilterViewmodel, FormComponent, FormInputUserModelChangeListenerService, FormMasterService, FormModule, GridToolbarButtonComponent, GridToolbarButtonModule, GridToolbarComponent, GridToolbarModule, HourSchedulingComponent, HourSchedulingComponentModule, HourSchedulingExpandableComponent, HourSchedulingExpandableComponentModule, HourSchedulingExpandableTemplateComponent, IconCacheService, IconCollapseHandleComponent, IconCollapseHandleModule, IconComponent, IconModule, ImageComponent, ImageModule, InputCheckboxComponent, InputCheckboxModule, InputDatePickerComponent, InputDatePickerModule, InputDateRangePickerComponent, InputDateRangePickerModule, InputNumberPickerComponent, InputNumberPickerModule, InputRadioButtonComponent, InputRadioButtonModule, InputScannerComponent, InputScannerModule, InputSearchComponent, InputSearchModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, LevelIndicatorComponent, LevelIndicatorModule, ListOfIconsComponent, ListOfIconsModule, ListOfValuesComponent, ListOfValuesModule, ListOfValuesPopupComponent, LoaderComponent, LoaderModule, NgZoneWrapperService, ObserveVisibilityModule, OrientationOfDirection, OverlayModule, OverlayService, PaginationBarComponent, PaginationBarModule, PaginationComponent, PaginationModule, PopupButtonsComponent, PopupMessageDisplayComponent, PopupModule, PopupWindowShellComponent, PriceDisplayPipe, PriceDisplayPipeModule, PromptService, ResponsiveTextComponent, ResponsiveTextModule, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, ScreenConfigurationDirective, ScreenConfigurationModule, SimpleGridColumnDirective, SimpleGridComponent, SimpleGridModule, TemplateWrapperDirective, TemplateWrapperModule, TextInputPopupComponent, TileComponent, TileModule, TileSelectComponent, TileSelectModule, TooltipDirectiveModule, ViewModeButtonsComponent, ViewModeButtonsModule, emailValidator, equalValidator, getValidatePasswordErrorString, maxStringLengthValidator, passwordValidator, precisionScaleValidator, requiredValidator, showHideDialog, InputBoolean as ɵa, RippleModule as ɵb, PaginationService as ɵba, PaginatePipe as ɵbb, SimpleGridCellComponent as ɵbc, ListOfValuesMultiselectPopupComponent as ɵbd, ConfirmationDialogComponent as ɵbe, DialogBaseComponent as ɵbf, CoreDynamicComponentService as ɵbg, PrependPipeModule as ɵbh, PrependPipe as ɵbi, CheckmarkOverlayComponent as ɵbj, ScannerService as ɵbk, TooltipModule as ɵbl, TooltipComponent as ɵbm, TooltipDirective as ɵbn, HourSchedulingTestObjectComponent as ɵbo, MD_RIPPLE_GLOBAL_OPTIONS as ɵc, CoRippleDirective as ɵd, CoViewportRulerService as ɵe, CoScrollDispatcherService as ɵf, CoScrollableDirective as ɵg, StopClickModule as ɵh, StopClickDirective as ɵi, BaseModule as ɵj, AppendPipeModule as ɵk, AppendPipe as ɵl, ValidationErrorModule as ɵm, OverlayDirective as ɵn, OverlayParentDirective as ɵo, CoreLocalizePipe as ɵp, CoreDictionaryService as ɵq, ValidationErrorComponent as ɵr, CommitButtonsModule as ɵs, CommitButtonsComponent as ɵt, ClickOutsideDirective as ɵu, ClickOutsideMasterService as ɵv, CalendarTemplateComponent as ɵw, PopupShowerService as ɵx, BaseSimpleGridComponent as ɵy, ObserveVisibilityDirective as ɵz };
14876
+ export { ArticleTileComponent, ArticleTileModule, BaseInputComponent, BaseInputDatePickerDirective, BaseModuleScreenConfigService, BaseModuleService, ButtonComponent, ButtonModule, CalendarComponent, CalendarModule, CardComponent, CardModule, Carousel3dComponent, Carousel3dModule, CarouselComponent, CarouselHammerConfig, CarouselModule, CheckmarkOverlayModule, ClickoutsideModule, CoDialogComponent, CoDialogModule, CoDialogWizardComponent, CoDialogWizardModule, CoDirection, CoOrientation, CollapsibleComponent, CollapsibleModule, ColorPickerComponent, ColorPickerModule, ColorSequenceService, ColumnAlign, ContentViewMode, CoreComponentsIcon, CoreComponentsTranslationModule, CoreComponentsTranslationService, CoreDialogModule, CoreDialogService, DoubleCalendarComponent, DoubleCalendarModule, FilterItemComponent, FilterItemMode, FilterItemModule, FilterItemViewmodel, FilterPipe, FilterPipeModule, FilterViewmodel, FormComponent, FormInputUserModelChangeListenerService, FormMasterService, FormModule, GridToolbarButtonComponent, GridToolbarButtonModule, GridToolbarComponent, GridToolbarModule, HourSchedulingComponent, HourSchedulingComponentModule, HourSchedulingExpandableComponent, HourSchedulingExpandableComponentModule, HourSchedulingExpandableTemplateComponent, IconCacheService, IconCollapseHandleComponent, IconCollapseHandleModule, IconComponent, IconModule, ImageComponent, ImageModule, InputCheckboxComponent, InputCheckboxModule, InputDatePickerComponent, InputDatePickerModule, InputDateRangePickerComponent, InputDateRangePickerModule, InputNumberPickerComponent, InputNumberPickerModule, InputRadioButtonComponent, InputRadioButtonModule, InputScannerComponent, InputScannerModule, InputSearchComponent, InputSearchModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, LevelIndicatorComponent, LevelIndicatorModule, ListOfIconsComponent, ListOfIconsModule, ListOfValuesComponent, ListOfValuesModule, ListOfValuesPopupComponent, LoaderComponent, LoaderModule, NgZoneWrapperService, ObserveVisibilityModule, OrientationOfDirection, OverlayModule, OverlayService, PaginationBarComponent, PaginationBarModule, PaginationComponent, PaginationModule, PopupButtonsComponent, PopupMessageDisplayComponent, PopupModule, PopupWindowShellComponent, PriceDisplayPipe, PriceDisplayPipeModule, PromptService, ResponsiveTextComponent, ResponsiveTextModule, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, ScreenConfigurationDirective, ScreenConfigurationModule, SimpleGridColumnDirective, SimpleGridComponent, SimpleGridModule, TemplateWrapperDirective, TemplateWrapperModule, TextInputPopupComponent, TileComponent, TileModule, TileSelectComponent, TileSelectModule, TooltipDirectiveModule, ViewModeButtonsComponent, ViewModeButtonsModule, emailValidator, equalValidator, getValidatePasswordErrorString, maxStringLengthValidator, passwordValidator, precisionScaleValidator, requiredValidator, showHideDialog, InputBoolean as ɵa, RippleModule as ɵb, ObserveVisibilityDirective as ɵba, PaginationService as ɵbb, PaginatePipe as ɵbc, SimpleGridCellComponent as ɵbd, ListOfValuesMultiselectPopupComponent as ɵbe, ConfirmationDialogComponent as ɵbf, DialogBaseComponent as ɵbg, CoreDynamicComponentService as ɵbh, PrependPipeModule as ɵbi, PrependPipe as ɵbj, CheckmarkOverlayComponent as ɵbk, ScannerService as ɵbl, TooltipModule as ɵbm, TooltipComponent as ɵbn, TooltipDirective as ɵbo, HourSchedulingTestObjectComponent as ɵbp, MD_RIPPLE_GLOBAL_OPTIONS as ɵc, CoRippleDirective as ɵd, CoViewportRulerService as ɵe, CoScrollDispatcherService as ɵf, CoScrollableDirective as ɵg, StopClickModule as ɵh, StopClickDirective as ɵi, BaseModule as ɵj, AppendPipeModule as ɵk, AppendPipe as ɵl, ValidationErrorModule as ɵm, OverlayDirective as ɵn, OverlayParentDirective as ɵo, CoreLocalizePipe as ɵp, CoreDictionaryService as ɵq, ValidationErrorComponent as ɵr, CommitButtonsModule as ɵs, CommitButtonsComponent as ɵt, ClickOutsideDirective as ɵu, ClickOutsideMasterService as ɵv, CalendarTemplateComponent as ɵw, PopupShowerService as ɵx, BaseSimpleGridComponent as ɵy, ExcelExportService as ɵz };
14782
14877
  //# sourceMappingURL=colijnit-corecomponents_v12.js.map