@colijnit/corecomponents_v12 257.1.25 → 257.1.27

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.
@@ -7450,6 +7450,7 @@ class InputNumberPickerComponent extends BaseInputComponent {
7450
7450
  this.ngZoneWrapper = ngZoneWrapper;
7451
7451
  this.elementRef = elementRef;
7452
7452
  this.modelChangeOnEnter = true;
7453
+ this.showPermanentLabel = false;
7453
7454
  this.minusIcon = CoreComponentsIcon.MinusSimple;
7454
7455
  this.plusIcon = CoreComponentsIcon.PlusSimple;
7455
7456
  // Whether to show buttons 'always', 'onFocusOnly', or 'never'
@@ -7675,16 +7676,19 @@ InputNumberPickerComponent.decorators = [
7675
7676
  (mousedown)="onMinusMouseDown($event)"
7676
7677
  (mouseup)="stopAutoCounting()" (mouseleave)="stopAutoCounting()"></co-button>
7677
7678
  </div>
7678
- <input type="text"
7679
- [tabIndex]="readonly ? -1 : 0"
7680
- [ngModel]="model"
7681
- [readonly]="readonly"
7682
- [disabled]="disabled"
7683
- [required]="required"
7684
- [placeholder]="label"
7685
- (ngModelChange)="handleChangeModel($event)"
7686
- (keydown)="handleInputKeyDown($event)"
7687
- (blur)="handleBlur()"/>
7679
+ <div class="input-wrapper">
7680
+ <span class='permanent-label' [textContent]="label" *ngIf="showPermanentLabel"></span>
7681
+ <input type="text"
7682
+ [tabIndex]="readonly ? -1 : 0"
7683
+ [ngModel]="model"
7684
+ [readonly]="readonly"
7685
+ [disabled]="disabled"
7686
+ [required]="required"
7687
+ [placeholder]="label"
7688
+ (ngModelChange)="handleChangeModel($event)"
7689
+ (keydown)="handleInputKeyDown($event)"
7690
+ (blur)="handleBlur()"/>
7691
+ </div>
7688
7692
  <div class="button-wrapper">
7689
7693
  <co-button *ngIf="showButtons" class="plus-operator" [class.select]="plusSelected" tabindex="-1"
7690
7694
  [disabled]="readonly"
@@ -7719,6 +7723,7 @@ InputNumberPickerComponent.ctorParameters = () => [
7719
7723
  InputNumberPickerComponent.propDecorators = {
7720
7724
  model: [{ type: Input }],
7721
7725
  modelChangeOnEnter: [{ type: Input }],
7726
+ showPermanentLabel: [{ type: Input }],
7722
7727
  leftIconData: [{ type: HostBinding, args: ['class.has-icon',] }, { type: Input }],
7723
7728
  min: [{ type: Input }],
7724
7729
  step: [{ type: Input }],
@@ -9475,12 +9480,135 @@ BaseSimpleGridComponent.propDecorators = {
9475
9480
  handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
9476
9481
  };
9477
9482
 
9483
+ class ExcelExportService {
9484
+ /**
9485
+ * Export data to Excel file
9486
+ * @param data - Array of objects to export
9487
+ * @param columns - Column configuration (optional)
9488
+ * @param fileName - Name of the exported file
9489
+ * @param sheetName - Name of the Excel sheet
9490
+ */
9491
+ exportToExcel(data, columns, fileName = 'export', sheetName = 'Sheet1') {
9492
+ // If columns are specified, transform data to match column structure
9493
+ let exportData = data;
9494
+ if (columns && columns.length > 0) {
9495
+ exportData = data.map(item => {
9496
+ const newItem = {};
9497
+ columns.forEach(col => {
9498
+ newItem[col.header] = this.getNestedValue(item, col.key);
9499
+ });
9500
+ return newItem;
9501
+ });
9502
+ }
9503
+ // Create workbook and worksheet
9504
+ const wb = XLSX.utils.book_new();
9505
+ const ws = XLSX.utils.json_to_sheet(exportData);
9506
+ // Set column widths if specified
9507
+ if (columns && columns.some(col => col.width)) {
9508
+ const colWidths = columns.map(col => ({ wch: col.width || 20 }));
9509
+ ws['!cols'] = colWidths;
9510
+ }
9511
+ // Add worksheet to workbook
9512
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9513
+ // Save file
9514
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9515
+ }
9516
+ /**
9517
+ * Export multiple sheets to one Excel file
9518
+ * @param sheets - Array of sheet data
9519
+ * @param fileName - Name of the exported file
9520
+ */
9521
+ exportMultipleSheets(sheets, fileName = 'multi-sheet-export') {
9522
+ const wb = XLSX.utils.book_new();
9523
+ sheets.forEach(sheet => {
9524
+ let exportData = sheet.data;
9525
+ if (sheet.columns && sheet.columns.length > 0) {
9526
+ exportData = sheet.data.map(item => {
9527
+ const newItem = {};
9528
+ sheet.columns.forEach(col => {
9529
+ newItem[col.header] = this.getNestedValue(item, col.key);
9530
+ });
9531
+ return newItem;
9532
+ });
9533
+ }
9534
+ const ws = XLSX.utils.json_to_sheet(exportData);
9535
+ if (sheet.columns && sheet.columns.some(col => col.width)) {
9536
+ const colWidths = sheet.columns.map(col => ({ wch: col.width || 20 }));
9537
+ ws['!cols'] = colWidths;
9538
+ }
9539
+ XLSX.utils.book_append_sheet(wb, ws, sheet.sheetName);
9540
+ });
9541
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9542
+ }
9543
+ /**
9544
+ * Export HTML table to Excel
9545
+ * @param tableId - ID of the HTML table element
9546
+ * @param fileName - Name of the exported file
9547
+ * @param sheetName - Name of the Excel sheet
9548
+ */
9549
+ exportTableToExcel(tableId, fileName = 'table-export', sheetName = 'Sheet1') {
9550
+ const table = document.getElementById(tableId);
9551
+ if (!table) {
9552
+ console.error(`Table with ID '${tableId}' not found`);
9553
+ return;
9554
+ }
9555
+ const wb = XLSX.utils.book_new();
9556
+ const ws = XLSX.utils.table_to_sheet(table);
9557
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9558
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9559
+ }
9560
+ /**
9561
+ * Get nested object value using dot notation
9562
+ * @param obj - Object to search in
9563
+ * @param path - Dot notation path (e.g., 'user.address.city')
9564
+ */
9565
+ getNestedValue(obj, path) {
9566
+ return path.split('.').reduce((current, key) => {
9567
+ return current && current[key] !== undefined ? current[key] : '';
9568
+ }, obj);
9569
+ }
9570
+ /**
9571
+ * Format date for Excel export
9572
+ * @param date - Date to format
9573
+ * @param format - Format string (default: 'MM/DD/YYYY')
9574
+ */
9575
+ formatDateForExport(date, format = 'MM/DD/YYYY') {
9576
+ if (!date) {
9577
+ return '';
9578
+ }
9579
+ const d = new Date(date);
9580
+ if (isNaN(d.getTime())) {
9581
+ return '';
9582
+ }
9583
+ const month = (d.getMonth() + 1).toString().padStart(2, '0');
9584
+ const day = d.getDate().toString().padStart(2, '0');
9585
+ const year = d.getFullYear();
9586
+ switch (format) {
9587
+ case 'MM/DD/YYYY':
9588
+ return `${month}/${day}/${year}`;
9589
+ case 'DD/MM/YYYY':
9590
+ return `${day}/${month}/${year}`;
9591
+ case 'YYYY-MM-DD':
9592
+ return `${year}-${month}-${day}`;
9593
+ default:
9594
+ return d.toLocaleDateString();
9595
+ }
9596
+ }
9597
+ }
9598
+ ExcelExportService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ExcelExportService_Factory() { return new ExcelExportService(); }, token: ExcelExportService, providedIn: "root" });
9599
+ ExcelExportService.decorators = [
9600
+ { type: Injectable, args: [{
9601
+ providedIn: 'root'
9602
+ },] }
9603
+ ];
9604
+
9478
9605
  class SimpleGridComponent extends BaseSimpleGridComponent {
9479
- constructor(icons, _changeDetection, _formMaster) {
9606
+ constructor(icons, _changeDetection, _formMaster, excelExportService) {
9480
9607
  super();
9481
9608
  this.icons = icons;
9482
9609
  this._changeDetection = _changeDetection;
9483
9610
  this._formMaster = _formMaster;
9611
+ this.excelExportService = excelExportService;
9484
9612
  this.defaultTextAlign = ColumnAlign.Left;
9485
9613
  this.showAdd = false;
9486
9614
  this.showDelete = false;
@@ -9560,13 +9688,6 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9560
9688
  }
9561
9689
  });
9562
9690
  }
9563
- isSingleColumn(column) {
9564
- return column.singleColumn;
9565
- }
9566
- rowContainsSingleColumn(row, columns) {
9567
- const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);
9568
- return !!singleColumn;
9569
- }
9570
9691
  addNewRow() {
9571
9692
  return __awaiter(this, void 0, void 0, function* () {
9572
9693
  if (this.inlineEdit) {
@@ -9722,12 +9843,15 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9722
9843
  const sorted = [...this.data].sort((a, b) => {
9723
9844
  let valA = a[columnValue];
9724
9845
  let valB = b[columnValue];
9725
- if (valA == null && valB == null)
9846
+ if (valA == null && valB == null) {
9726
9847
  return 0;
9727
- if (valA == null)
9848
+ }
9849
+ if (valA == null) {
9728
9850
  return -1 * direction;
9729
- if (valB == null)
9851
+ }
9852
+ if (valB == null) {
9730
9853
  return 1 * direction;
9854
+ }
9731
9855
  // Handle ISO date string
9732
9856
  const isDateA = typeof valA === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valA);
9733
9857
  const isDateB = typeof valB === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valB);
@@ -9745,34 +9869,12 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9745
9869
  this.data = sorted;
9746
9870
  this._detectChanges();
9747
9871
  }
9748
- _sortData(tableData) {
9749
- return tableData.sort((a, b) => {
9750
- const sign = this.sortDirection === 'asc' ? 1 : -1;
9751
- console.log("a " + a);
9752
- console.log("b " + b);
9753
- console.log(a[this.sortColumnValue]);
9754
- console.log(b[this.sortColumnValue]);
9755
- console.log("sign " + sign);
9756
- if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
9757
- return -1 * sign;
9758
- }
9759
- else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
9760
- return 1 * sign;
9761
- }
9762
- return 0;
9763
- });
9764
- }
9765
9872
  showAllColumns() {
9766
9873
  this.isSettingsMenuOpen = false;
9767
9874
  this.headerColumnsCopy = this.headerColumns;
9768
9875
  }
9769
9876
  exportToExcel() {
9770
- this.isSettingsMenuOpen = false;
9771
- let element = document.getElementById('simple-grid-table');
9772
- const ws = XLSX.utils.table_to_sheet(element);
9773
- const wb = XLSX.utils.book_new();
9774
- XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
9775
- XLSX.writeFile(wb, 'ExcelSheet.xlsx');
9877
+ this.excelExportService.exportTableToExcel('simple-grid-table', 'ExcelSheet', 'Sheet1');
9776
9878
  }
9777
9879
  prepareDataRow(row, index) {
9778
9880
  this.isRowDisabled(row, index);
@@ -9919,147 +10021,156 @@ SimpleGridComponent.decorators = [
9919
10021
  { type: Component, args: [{
9920
10022
  selector: 'co-simple-grid',
9921
10023
  template: `
9922
- <co-grid-toolbar *ngIf="showToolbar" [class.right]="rightToolbar"
9923
- [showEdit]="showEdit"
9924
- [showAdd]="showAdd"
9925
- [showDelete]="showDelete"
9926
- [deleteEnabled]="selectedRowIndex > -1"
9927
- (addClick)="addNewRow()"
9928
- (editClick)="editRow($event)"
9929
- (saveClick)="validateAndSave()"
9930
- (cancelClick)="cancelEditRow()"
9931
- (deleteClick)="removeRow()"
9932
- ></co-grid-toolbar>
9933
- <table
9934
- id="simple-grid-table"
9935
- class="simple-grid-table"
9936
- [clickOutside]="editing"
9937
- (clickOutside)="handleClickOutsideRow()">
9938
- <colgroup>
9939
- <col *ngFor="let column of headerColumnsCopy; let index = index"
9940
- [class.simple-grid-column-auto-fit]="column.autoFit"
9941
- [style.width.px]="column.width"
9942
- [style.min-width.px]="MIN_COLUMN_WIDTH">
9943
- </colgroup>
9944
- <thead>
9945
- <tr>
9946
- <th
9947
- scope="col"
9948
- #headerCell
9949
- class="simple-grid-column-header"
9950
- *ngFor="let column of headerColumnsCopy; let index = index">
9951
- <div
9952
- class="simple-grid-column-header-wrapper"
9953
- [class.resizable]="resizable"
9954
- [class.selected]="column.isSelected"
9955
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
9956
- <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
9957
- <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
9958
- </ng-container>
9959
- <ng-template #noHeaderTemplate>
9960
- <div class="simple-grid-column-header-label"
9961
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
9962
- [class.with-menu]="showGridSettings"
9963
- [class.with-sort]="showColumnSort"
9964
- [textContent]="column.headerText || '&nbsp;'"
9965
- (click)="showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)">
9966
- </div>
10024
+ <co-grid-toolbar
10025
+ *ngIf="showToolbar" [class.right]="rightToolbar"
10026
+ [showEdit]="showEdit"
10027
+ [showAdd]="showAdd"
10028
+ [showDelete]="showDelete"
10029
+ [deleteEnabled]="selectedRowIndex > -1"
10030
+ (addClick)="addNewRow()"
10031
+ (editClick)="editRow($event)"
10032
+ (saveClick)="validateAndSave()"
10033
+ (cancelClick)="cancelEditRow()"
10034
+ (deleteClick)="removeRow()">
10035
+ </co-grid-toolbar>
9967
10036
 
9968
- <div class="sort-column" *ngIf="showColumnSort">
9969
- <co-button (click)="sortColumn(column, column?.field)"
9970
- [iconData]="icons.getIcon(Icons.ArrowUpArrowDown)">
9971
- </co-button>
9972
- </div>
10037
+ <table
10038
+ id="simple-grid-table"
10039
+ class="simple-grid-table"
10040
+ [clickOutside]="editing"
10041
+ (clickOutside)="handleClickOutsideRow()">
10042
+ <colgroup>
10043
+ <col
10044
+ *ngFor="let column of headerColumnsCopy; let index = index"
10045
+ [class.simple-grid-column-auto-fit]="column.autoFit"
10046
+ [style.width.px]="column.width"
10047
+ [style.min-width.px]="MIN_COLUMN_WIDTH">
10048
+ </colgroup>
10049
+ <thead>
10050
+ <tr>
10051
+ <th
10052
+ scope="col"
10053
+ #headerCell
10054
+ class="simple-grid-column-header"
10055
+ *ngFor="let column of headerColumnsCopy; let index = index">
10056
+ <div
10057
+ class="simple-grid-column-header-wrapper"
10058
+ [class.resizable]="resizable"
10059
+ [class.selected]="column.isSelected"
10060
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
10061
+ <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
10062
+ <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
10063
+ </ng-container>
10064
+ <ng-template #noHeaderTemplate>
10065
+ <div
10066
+ class="simple-grid-column-header-label"
10067
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
10068
+ [class.with-menu]="showGridSettings"
10069
+ [class.with-sort]="showColumnSort"
10070
+ [textContent]="column.headerText || '&nbsp;'"
10071
+ (click)="showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)">
10072
+ </div>
9973
10073
 
9974
- <div class="column-menu" *ngIf="column.isSelected">
9975
- <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
9976
- <ul>
9977
- <li (click)="hideColumn(column)">Hide Column</li>
9978
- <li (click)="sortColumn(column, column.field)">Sort Column</li>
9979
- </ul>
10074
+ <div class="sort-column" *ngIf="showColumnSort">
10075
+ <co-button
10076
+ (click)="sortColumn(column, column?.field)"
10077
+ [iconData]="icons.getIcon(Icons.ArrowUpArrowDown)">
10078
+ </co-button>
10079
+ </div>
10080
+
10081
+ <div class="column-menu" *ngIf="column.isSelected">
10082
+ <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
10083
+ <ul>
10084
+ <li (click)="hideColumn(column)">Hide Column</li>
10085
+ <li (click)="sortColumn(column, column.field)">Sort Column</li>
10086
+ </ul>
10087
+ </div>
10088
+ </ng-template>
10089
+ <div
10090
+ *ngIf="resizable && column.resizable"
10091
+ class="simple-grid-column-sizer"
10092
+ (mousedown)="handleSizerMouseDown($event, column)">
10093
+ </div>
10094
+ </div>
10095
+ </th>
10096
+ </tr>
10097
+
10098
+ <div *ngIf="showGridSettings" class="grid-settings">
10099
+ <co-button
10100
+ [class.selected]="isSettingsMenuOpen"
10101
+ [iconData]="icons.getIcon(Icons.CogWheels)"
10102
+ (click)="toggleSettingsMenu()">
10103
+ </co-button>
10104
+
10105
+ <div class="settings-menu" *ngIf="isSettingsMenuOpen">
10106
+ <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
10107
+ <ul>
10108
+ <li (click)="exportToExcel()">Export to Excel</li>
10109
+ <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">
10110
+ Show All Columns
10111
+ </li>
10112
+ </ul>
9980
10113
  </div>
9981
- </ng-template>
9982
- <div *ngIf="resizable && column.resizable" class="simple-grid-column-sizer"
9983
- (mousedown)="handleSizerMouseDown($event, column)"
9984
- ></div>
9985
10114
  </div>
9986
- </th>
9987
- <th *ngIf="showGridSettings" class="simple-grid-column-header grid-settings">
9988
- <co-button
9989
- [class.selected]="isSettingsMenuOpen"
9990
- [iconData]="icons.getIcon(Icons.CogWheels)"
9991
- (click)="toggleSettingsMenu()">
9992
- </co-button>
10115
+ </thead>
9993
10116
 
9994
- <div class="settings-menu" *ngIf="isSettingsMenuOpen">
9995
- <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
9996
- <ul>
9997
- <li (click)="exportToExcel()">Export to Excel</li>
9998
- <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">Show All
9999
- Columns
10000
- </li>
10001
- </ul>
10002
- </div>
10003
- </th>
10004
- </tr>
10005
- </thead>
10006
- <tbody #dropList cdkDropList cdkDropListOrientation="vertical"
10007
- class="simple-grid-drag-drop-list"
10008
- [cdkDropListDisabled]="!dragDropEnabled || editing"
10009
- [cdkDropListData]="data"
10010
- [cdkDropListEnterPredicate]="handleCanDragDrop"
10011
- (cdkDropListDropped)="handleDrop($event)">
10012
- <tr
10013
- class="simple-grid-row"
10014
- [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
10015
- [class.disabled]="getIsRowDisabled(rowIndex)"
10016
- [class.editing]="rowIndex === editRowIndex"
10017
- *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
10018
- cdkDrag
10019
- (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
10020
- (visibilityChange)="rowVisible.next(row)">
10021
- <co-form class="simple-grid-row-form">
10022
- <ng-container *ngIf="isSingleColumnRow(row)">
10023
- <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10024
- <co-simple-grid-cell
10025
- [column]="columns[singleColumnIndex(row)]"
10026
- [row]="row"
10027
- [editMode]="false"
10028
- ></co-simple-grid-cell>
10029
- </td>
10030
- </ng-container>
10031
- <ng-container *ngIf="!isSingleColumnRow(row)">
10032
- <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10033
- <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10034
- <co-simple-grid-cell
10035
- [column]="column"
10036
- [row]="row"
10037
- [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10038
- [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10039
- (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)"
10040
- ></co-simple-grid-cell>
10041
- <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10042
- </td>
10043
- </ng-container>
10044
- </ng-container>
10045
- <td *ngIf="showGridSettings"></td>
10046
- </co-form>
10047
- </tr>
10048
- </tbody>
10049
- </table>
10050
- <co-pagination-bar *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10051
- [itemsPerPage]="rowsPerPage"
10052
- [currentPage]="currentPage"
10053
- [totalItems]="data.length"
10054
- [autoHide]="true"
10055
- (previousClick)="goToPreviousPage()"
10056
- (nextClick)="goToNextPage()"
10057
- (pageClick)="setCurrentPage($event)"
10058
- ></co-pagination-bar>
10117
+ <tbody
10118
+ #dropList cdkDropList cdkDropListOrientation="vertical"
10119
+ class="simple-grid-drag-drop-list"
10120
+ [cdkDropListDisabled]="!dragDropEnabled || editing"
10121
+ [cdkDropListData]="data"
10122
+ [cdkDropListEnterPredicate]="handleCanDragDrop"
10123
+ (cdkDropListDropped)="handleDrop($event)">
10124
+ <co-form class="simple-grid-row-form">
10125
+ <tr
10126
+ class="simple-grid-row"
10127
+ [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
10128
+ [class.disabled]="getIsRowDisabled(rowIndex)"
10129
+ [class.editing]="rowIndex === editRowIndex"
10130
+ *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
10131
+ cdkDrag
10132
+ (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
10133
+ (visibilityChange)="rowVisible.next(row)">
10134
+ <ng-container *ngIf="isSingleColumnRow(row)">
10135
+ <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10136
+ <co-simple-grid-cell
10137
+ [column]="columns[singleColumnIndex(row)]"
10138
+ [row]="row"
10139
+ [editMode]="false">
10140
+ </co-simple-grid-cell>
10141
+ </td>
10142
+ </ng-container>
10143
+ <ng-container *ngIf="!isSingleColumnRow(row)">
10144
+ <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10145
+ <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10146
+ <co-simple-grid-cell
10147
+ [column]="column"
10148
+ [row]="row"
10149
+ [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10150
+ [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10151
+ (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)">
10152
+ </co-simple-grid-cell>
10153
+ <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10154
+ </td>
10155
+ </ng-container>
10156
+ </ng-container>
10157
+ </tr>
10158
+ </co-form>
10159
+ </tbody>
10160
+ </table>
10161
+
10162
+ <co-pagination-bar
10163
+ *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10164
+ [itemsPerPage]="rowsPerPage"
10165
+ [currentPage]="currentPage"
10166
+ [totalItems]="data.length"
10167
+ [autoHide]="true"
10168
+ (previousClick)="goToPreviousPage()"
10169
+ (nextClick)="goToNextPage()"
10170
+ (pageClick)="setCurrentPage($event)">
10171
+ </co-pagination-bar>
10059
10172
  `,
10060
- providers: [
10061
- FormMasterService
10062
- ],
10173
+ providers: [FormMasterService],
10063
10174
  changeDetection: ChangeDetectionStrategy.OnPush,
10064
10175
  encapsulation: ViewEncapsulation.None
10065
10176
  },] }
@@ -10067,7 +10178,8 @@ SimpleGridComponent.decorators = [
10067
10178
  SimpleGridComponent.ctorParameters = () => [
10068
10179
  { type: IconCacheService },
10069
10180
  { type: ChangeDetectorRef },
10070
- { type: FormMasterService }
10181
+ { type: FormMasterService },
10182
+ { type: ExcelExportService }
10071
10183
  ];
10072
10184
  SimpleGridComponent.propDecorators = {
10073
10185
  headerCells: [{ type: ViewChildren, args: ['headerCell',] }],
@@ -14811,5 +14923,5 @@ HourSchedulingExpandableComponentModule.decorators = [
14811
14923
  * Generated bundle index. Do not edit.
14812
14924
  */
14813
14925
 
14814
- 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 };
14926
+ 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 };
14815
14927
  //# sourceMappingURL=colijnit-corecomponents_v12.js.map