@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.
@@ -7945,6 +7945,7 @@
7945
7945
  _this.ngZoneWrapper = ngZoneWrapper;
7946
7946
  _this.elementRef = elementRef;
7947
7947
  _this.modelChangeOnEnter = true;
7948
+ _this.showPermanentLabel = false;
7948
7949
  _this.minusIcon = exports.CoreComponentsIcon.MinusSimple;
7949
7950
  _this.plusIcon = exports.CoreComponentsIcon.PlusSimple;
7950
7951
  // Whether to show buttons 'always', 'onFocusOnly', or 'never'
@@ -8196,7 +8197,7 @@
8196
8197
  InputNumberPickerComponent.decorators = [
8197
8198
  { type: i0.Component, args: [{
8198
8199
  selector: 'co-input-number-picker',
8199
- template: "\n <div class=\"icon-wrapper\" *ngIf=\"leftIconData\">\n <co-icon class=\"input-number-picker-icon\" [iconData]=\"leftIconData\" (click)=\"iconClick.emit($event)\"></co-icon>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator\" [class.select]=\"minSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <input type=\"text\"\n [tabIndex]=\"readonly ? -1 : 0\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [placeholder]=\"label\"\n (ngModelChange)=\"handleChangeModel($event)\"\n (keydown)=\"handleInputKeyDown($event)\"\n (blur)=\"handleBlur()\"/>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator\" [class.select]=\"plusSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n ",
8200
+ template: "\n <div class=\"icon-wrapper\" *ngIf=\"leftIconData\">\n <co-icon class=\"input-number-picker-icon\" [iconData]=\"leftIconData\" (click)=\"iconClick.emit($event)\"></co-icon>\n <div class=\"spacer\"></div>\n </div>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"minus-operator\" [class.select]=\"minSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(minusIcon)\"\n (mousedown)=\"onMinusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n <div class=\"input-wrapper\">\n <span class='permanent-label' [textContent]=\"label\" *ngIf=\"showPermanentLabel\"></span>\n <input type=\"text\"\n [tabIndex]=\"readonly ? -1 : 0\"\n [ngModel]=\"model\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [placeholder]=\"label\"\n (ngModelChange)=\"handleChangeModel($event)\"\n (keydown)=\"handleInputKeyDown($event)\"\n (blur)=\"handleBlur()\"/>\n </div>\n <div class=\"button-wrapper\">\n <co-button *ngIf=\"showButtons\" class=\"plus-operator\" [class.select]=\"plusSelected\" tabindex=\"-1\"\n [disabled]=\"readonly\"\n [iconData]=\"iconCacheService.getIcon(plusIcon)\"\n (mousedown)=\"onPlusMouseDown($event)\"\n (mouseup)=\"stopAutoCounting()\" (mouseleave)=\"stopAutoCounting()\"></co-button>\n </div>\n ",
8200
8201
  providers: [
8201
8202
  OverlayService, {
8202
8203
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: i0.forwardRef(function () { return InputNumberPickerComponent; })
@@ -8223,6 +8224,7 @@
8223
8224
  InputNumberPickerComponent.propDecorators = {
8224
8225
  model: [{ type: i0.Input }],
8225
8226
  modelChangeOnEnter: [{ type: i0.Input }],
8227
+ showPermanentLabel: [{ type: i0.Input }],
8226
8228
  leftIconData: [{ type: i0.HostBinding, args: ['class.has-icon',] }, { type: i0.Input }],
8227
8229
  min: [{ type: i0.Input }],
8228
8230
  step: [{ type: i0.Input }],
@@ -10090,13 +10092,147 @@
10090
10092
  handleMouseUp: [{ type: i0.HostListener, args: ['document:mouseup', ['$event'],] }]
10091
10093
  };
10092
10094
 
10095
+ var ExcelExportService = /** @class */ (function () {
10096
+ function ExcelExportService() {
10097
+ }
10098
+ /**
10099
+ * Export data to Excel file
10100
+ * @param data - Array of objects to export
10101
+ * @param columns - Column configuration (optional)
10102
+ * @param fileName - Name of the exported file
10103
+ * @param sheetName - Name of the Excel sheet
10104
+ */
10105
+ ExcelExportService.prototype.exportToExcel = function (data, columns, fileName, sheetName) {
10106
+ var _this = this;
10107
+ if (fileName === void 0) { fileName = 'export'; }
10108
+ if (sheetName === void 0) { sheetName = 'Sheet1'; }
10109
+ // If columns are specified, transform data to match column structure
10110
+ var exportData = data;
10111
+ if (columns && columns.length > 0) {
10112
+ exportData = data.map(function (item) {
10113
+ var newItem = {};
10114
+ columns.forEach(function (col) {
10115
+ newItem[col.header] = _this.getNestedValue(item, col.key);
10116
+ });
10117
+ return newItem;
10118
+ });
10119
+ }
10120
+ // Create workbook and worksheet
10121
+ var wb = XLSX__namespace.utils.book_new();
10122
+ var ws = XLSX__namespace.utils.json_to_sheet(exportData);
10123
+ // Set column widths if specified
10124
+ if (columns && columns.some(function (col) { return col.width; })) {
10125
+ var colWidths = columns.map(function (col) { return ({ wch: col.width || 20 }); });
10126
+ ws['!cols'] = colWidths;
10127
+ }
10128
+ // Add worksheet to workbook
10129
+ XLSX__namespace.utils.book_append_sheet(wb, ws, sheetName);
10130
+ // Save file
10131
+ XLSX__namespace.writeFile(wb, fileName + ".xlsx");
10132
+ };
10133
+ /**
10134
+ * Export multiple sheets to one Excel file
10135
+ * @param sheets - Array of sheet data
10136
+ * @param fileName - Name of the exported file
10137
+ */
10138
+ ExcelExportService.prototype.exportMultipleSheets = function (sheets, fileName) {
10139
+ var _this = this;
10140
+ if (fileName === void 0) { fileName = 'multi-sheet-export'; }
10141
+ var wb = XLSX__namespace.utils.book_new();
10142
+ sheets.forEach(function (sheet) {
10143
+ var exportData = sheet.data;
10144
+ if (sheet.columns && sheet.columns.length > 0) {
10145
+ exportData = sheet.data.map(function (item) {
10146
+ var newItem = {};
10147
+ sheet.columns.forEach(function (col) {
10148
+ newItem[col.header] = _this.getNestedValue(item, col.key);
10149
+ });
10150
+ return newItem;
10151
+ });
10152
+ }
10153
+ var ws = XLSX__namespace.utils.json_to_sheet(exportData);
10154
+ if (sheet.columns && sheet.columns.some(function (col) { return col.width; })) {
10155
+ var colWidths = sheet.columns.map(function (col) { return ({ wch: col.width || 20 }); });
10156
+ ws['!cols'] = colWidths;
10157
+ }
10158
+ XLSX__namespace.utils.book_append_sheet(wb, ws, sheet.sheetName);
10159
+ });
10160
+ XLSX__namespace.writeFile(wb, fileName + ".xlsx");
10161
+ };
10162
+ /**
10163
+ * Export HTML table to Excel
10164
+ * @param tableId - ID of the HTML table element
10165
+ * @param fileName - Name of the exported file
10166
+ * @param sheetName - Name of the Excel sheet
10167
+ */
10168
+ ExcelExportService.prototype.exportTableToExcel = function (tableId, fileName, sheetName) {
10169
+ if (fileName === void 0) { fileName = 'table-export'; }
10170
+ if (sheetName === void 0) { sheetName = 'Sheet1'; }
10171
+ var table = document.getElementById(tableId);
10172
+ if (!table) {
10173
+ console.error("Table with ID '" + tableId + "' not found");
10174
+ return;
10175
+ }
10176
+ var wb = XLSX__namespace.utils.book_new();
10177
+ var ws = XLSX__namespace.utils.table_to_sheet(table);
10178
+ XLSX__namespace.utils.book_append_sheet(wb, ws, sheetName);
10179
+ XLSX__namespace.writeFile(wb, fileName + ".xlsx");
10180
+ };
10181
+ /**
10182
+ * Get nested object value using dot notation
10183
+ * @param obj - Object to search in
10184
+ * @param path - Dot notation path (e.g., 'user.address.city')
10185
+ */
10186
+ ExcelExportService.prototype.getNestedValue = function (obj, path) {
10187
+ return path.split('.').reduce(function (current, key) {
10188
+ return current && current[key] !== undefined ? current[key] : '';
10189
+ }, obj);
10190
+ };
10191
+ /**
10192
+ * Format date for Excel export
10193
+ * @param date - Date to format
10194
+ * @param format - Format string (default: 'MM/DD/YYYY')
10195
+ */
10196
+ ExcelExportService.prototype.formatDateForExport = function (date, format) {
10197
+ if (format === void 0) { format = 'MM/DD/YYYY'; }
10198
+ if (!date) {
10199
+ return '';
10200
+ }
10201
+ var d = new Date(date);
10202
+ if (isNaN(d.getTime())) {
10203
+ return '';
10204
+ }
10205
+ var month = (d.getMonth() + 1).toString().padStart(2, '0');
10206
+ var day = d.getDate().toString().padStart(2, '0');
10207
+ var year = d.getFullYear();
10208
+ switch (format) {
10209
+ case 'MM/DD/YYYY':
10210
+ return month + "/" + day + "/" + year;
10211
+ case 'DD/MM/YYYY':
10212
+ return day + "/" + month + "/" + year;
10213
+ case 'YYYY-MM-DD':
10214
+ return year + "-" + month + "-" + day;
10215
+ default:
10216
+ return d.toLocaleDateString();
10217
+ }
10218
+ };
10219
+ return ExcelExportService;
10220
+ }());
10221
+ ExcelExportService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ExcelExportService_Factory() { return new ExcelExportService(); }, token: ExcelExportService, providedIn: "root" });
10222
+ ExcelExportService.decorators = [
10223
+ { type: i0.Injectable, args: [{
10224
+ providedIn: 'root'
10225
+ },] }
10226
+ ];
10227
+
10093
10228
  var SimpleGridComponent = /** @class */ (function (_super) {
10094
10229
  __extends(SimpleGridComponent, _super);
10095
- function SimpleGridComponent(icons, _changeDetection, _formMaster) {
10230
+ function SimpleGridComponent(icons, _changeDetection, _formMaster, excelExportService) {
10096
10231
  var _this = _super.call(this) || this;
10097
10232
  _this.icons = icons;
10098
10233
  _this._changeDetection = _changeDetection;
10099
10234
  _this._formMaster = _formMaster;
10235
+ _this.excelExportService = excelExportService;
10100
10236
  _this.defaultTextAlign = exports.ColumnAlign.Left;
10101
10237
  _this.showAdd = false;
10102
10238
  _this.showDelete = false;
@@ -10187,14 +10323,6 @@
10187
10323
  });
10188
10324
  });
10189
10325
  };
10190
- SimpleGridComponent.prototype.isSingleColumn = function (column) {
10191
- return column.singleColumn;
10192
- };
10193
- SimpleGridComponent.prototype.rowContainsSingleColumn = function (row, columns) {
10194
- var _this = this;
10195
- var singleColumn = columns.find(function (column) { return _this.isSingleColumn(column) && !!row[column.field]; });
10196
- return !!singleColumn;
10197
- };
10198
10326
  SimpleGridComponent.prototype.addNewRow = function () {
10199
10327
  return __awaiter(this, void 0, void 0, function () {
10200
10328
  var valid, _a;
@@ -10384,12 +10512,15 @@
10384
10512
  var sorted = __spreadArray([], __read(this.data)).sort(function (a, b) {
10385
10513
  var valA = a[columnValue];
10386
10514
  var valB = b[columnValue];
10387
- if (valA == null && valB == null)
10515
+ if (valA == null && valB == null) {
10388
10516
  return 0;
10389
- if (valA == null)
10517
+ }
10518
+ if (valA == null) {
10390
10519
  return -1 * direction;
10391
- if (valB == null)
10520
+ }
10521
+ if (valB == null) {
10392
10522
  return 1 * direction;
10523
+ }
10393
10524
  // Handle ISO date string
10394
10525
  var isDateA = typeof valA === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valA);
10395
10526
  var isDateB = typeof valB === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valB);
@@ -10407,35 +10538,12 @@
10407
10538
  this.data = sorted;
10408
10539
  this._detectChanges();
10409
10540
  };
10410
- SimpleGridComponent.prototype._sortData = function (tableData) {
10411
- var _this = this;
10412
- return tableData.sort(function (a, b) {
10413
- var sign = _this.sortDirection === 'asc' ? 1 : -1;
10414
- console.log("a " + a);
10415
- console.log("b " + b);
10416
- console.log(a[_this.sortColumnValue]);
10417
- console.log(b[_this.sortColumnValue]);
10418
- console.log("sign " + sign);
10419
- if (a[_this.sortColumnValue] < b[_this.sortColumnValue]) {
10420
- return -1 * sign;
10421
- }
10422
- else if (a[_this.sortColumnValue] > b[_this.sortColumnValue]) {
10423
- return 1 * sign;
10424
- }
10425
- return 0;
10426
- });
10427
- };
10428
10541
  SimpleGridComponent.prototype.showAllColumns = function () {
10429
10542
  this.isSettingsMenuOpen = false;
10430
10543
  this.headerColumnsCopy = this.headerColumns;
10431
10544
  };
10432
10545
  SimpleGridComponent.prototype.exportToExcel = function () {
10433
- this.isSettingsMenuOpen = false;
10434
- var element = document.getElementById('simple-grid-table');
10435
- var ws = XLSX__namespace.utils.table_to_sheet(element);
10436
- var wb = XLSX__namespace.utils.book_new();
10437
- XLSX__namespace.utils.book_append_sheet(wb, ws, 'Sheet1');
10438
- XLSX__namespace.writeFile(wb, 'ExcelSheet.xlsx');
10546
+ this.excelExportService.exportTableToExcel('simple-grid-table', 'ExcelSheet', 'Sheet1');
10439
10547
  };
10440
10548
  SimpleGridComponent.prototype.prepareDataRow = function (row, index) {
10441
10549
  this.isRowDisabled(row, index);
@@ -10588,10 +10696,8 @@
10588
10696
  SimpleGridComponent.decorators = [
10589
10697
  { type: i0.Component, args: [{
10590
10698
  selector: 'co-simple-grid',
10591
- template: "\n <co-grid-toolbar *ngIf=\"showToolbar\" [class.right]=\"rightToolbar\"\n [showEdit]=\"showEdit\"\n [showAdd]=\"showAdd\"\n [showDelete]=\"showDelete\"\n [deleteEnabled]=\"selectedRowIndex > -1\"\n (addClick)=\"addNewRow()\"\n (editClick)=\"editRow($event)\"\n (saveClick)=\"validateAndSave()\"\n (cancelClick)=\"cancelEditRow()\"\n (deleteClick)=\"removeRow()\"\n ></co-grid-toolbar>\n <table\n id=\"simple-grid-table\"\n class=\"simple-grid-table\"\n [clickOutside]=\"editing\"\n (clickOutside)=\"handleClickOutsideRow()\">\n <colgroup>\n <col *ngFor=\"let column of headerColumnsCopy; let index = index\"\n [class.simple-grid-column-auto-fit]=\"column.autoFit\"\n [style.width.px]=\"column.width\"\n [style.min-width.px]=\"MIN_COLUMN_WIDTH\">\n </colgroup>\n <thead>\n <tr>\n <th\n scope=\"col\"\n #headerCell\n class=\"simple-grid-column-header\"\n *ngFor=\"let column of headerColumnsCopy; let index = index\">\n <div\n class=\"simple-grid-column-header-wrapper\"\n [class.resizable]=\"resizable\"\n [class.selected]=\"column.isSelected\"\n [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\n <ng-container *ngIf=\"column.headerTemplate; else noHeaderTemplate\">\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #noHeaderTemplate>\n <div class=\"simple-grid-column-header-label\"\n [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\n [class.with-menu]=\"showGridSettings\"\n [class.with-sort]=\"showColumnSort\"\n [textContent]=\"column.headerText || '&nbsp;'\"\n (click)=\"showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)\">\n </div>\n\n <div class=\"sort-column\" *ngIf=\"showColumnSort\">\n <co-button (click)=\"sortColumn(column, column?.field)\"\n [iconData]=\"icons.getIcon(Icons.ArrowUpArrowDown)\">\n </co-button>\n </div>\n\n <div class=\"column-menu\" *ngIf=\"column.isSelected\">\n <h3 [textContent]=\"'COLUMN_OPTIONS' | coreLocalize\"></h3>\n <ul>\n <li (click)=\"hideColumn(column)\">Hide Column</li>\n <li (click)=\"sortColumn(column, column.field)\">Sort Column</li>\n </ul>\n </div>\n </ng-template>\n <div *ngIf=\"resizable && column.resizable\" class=\"simple-grid-column-sizer\"\n (mousedown)=\"handleSizerMouseDown($event, column)\"\n ></div>\n </div>\n </th>\n <th *ngIf=\"showGridSettings\" class=\"simple-grid-column-header grid-settings\">\n <co-button\n [class.selected]=\"isSettingsMenuOpen\"\n [iconData]=\"icons.getIcon(Icons.CogWheels)\"\n (click)=\"toggleSettingsMenu()\">\n </co-button>\n\n <div class=\"settings-menu\" *ngIf=\"isSettingsMenuOpen\">\n <h3 [textContent]=\"'GRID_OPTIONS' | coreLocalize\"></h3>\n <ul>\n <li (click)=\"exportToExcel()\">Export to Excel</li>\n <li *ngIf=\"headerColumnsCopy.length !== headerColumns.length\" (click)=\"showAllColumns()\">Show All\n Columns\n </li>\n </ul>\n </div>\n </th>\n </tr>\n </thead>\n <tbody #dropList cdkDropList cdkDropListOrientation=\"vertical\"\n class=\"simple-grid-drag-drop-list\"\n [cdkDropListDisabled]=\"!dragDropEnabled || editing\"\n [cdkDropListData]=\"data\"\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\n (cdkDropListDropped)=\"handleDrop($event)\">\n <tr\n class=\"simple-grid-row\"\n [class.selected]=\"rowIndex === selectedRowIndex && !editing\" observeVisibility\n [class.disabled]=\"getIsRowDisabled(rowIndex)\"\n [class.editing]=\"rowIndex === editRowIndex\"\n *ngFor=\"let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index\"\n cdkDrag\n (click)=\"handleClickRow($event, rowIndex, row)\" (dblclick)=\"handleDblClickRow($event, rowIndex, row)\"\n (visibilityChange)=\"rowVisible.next(row)\">\n <co-form class=\"simple-grid-row-form\">\n <ng-container *ngIf=\"isSingleColumnRow(row)\">\n <td class=\"simple-grid-single-column-cell\" [attr.colspan]=\"headerColumnsCopy.length\">\n <co-simple-grid-cell\n [column]=\"columns[singleColumnIndex(row)]\"\n [row]=\"row\"\n [editMode]=\"false\"\n ></co-simple-grid-cell>\n </td>\n </ng-container>\n <ng-container *ngIf=\"!isSingleColumnRow(row)\">\n <ng-container *ngFor=\"let column of headerColumnsCopy; let columnIndex = index\">\n <td class=\"simple-grid-column-cell\" *ngIf=\"columnIndex !== singleColumnIndex(row)\">\n <co-simple-grid-cell\n [column]=\"column\"\n [row]=\"row\"\n [editMode]=\"inlineEdit && editing && rowIndex === editRowIndex\"\n [fieldEditMode]=\"editCellIndex === columnIndex && rowIndex === editRowIndex\"\n (cellClick)=\"handleCellClick($event, row, rowIndex, columnIndex)\"\n ></co-simple-grid-cell>\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\n </td>\n </ng-container>\n </ng-container>\n <td *ngIf=\"showGridSettings\"></td>\n </co-form>\n </tr>\n </tbody>\n </table>\n <co-pagination-bar *ngIf=\"data?.length > rowsPerPage\" class=\"pagination-bar\"\n [itemsPerPage]=\"rowsPerPage\"\n [currentPage]=\"currentPage\"\n [totalItems]=\"data.length\"\n [autoHide]=\"true\"\n (previousClick)=\"goToPreviousPage()\"\n (nextClick)=\"goToNextPage()\"\n (pageClick)=\"setCurrentPage($event)\"\n ></co-pagination-bar>\n ",
10592
- providers: [
10593
- FormMasterService
10594
- ],
10699
+ template: "\n <co-grid-toolbar\n *ngIf=\"showToolbar\" [class.right]=\"rightToolbar\"\n [showEdit]=\"showEdit\"\n [showAdd]=\"showAdd\"\n [showDelete]=\"showDelete\"\n [deleteEnabled]=\"selectedRowIndex > -1\"\n (addClick)=\"addNewRow()\"\n (editClick)=\"editRow($event)\"\n (saveClick)=\"validateAndSave()\"\n (cancelClick)=\"cancelEditRow()\"\n (deleteClick)=\"removeRow()\">\n </co-grid-toolbar>\n\n <table\n id=\"simple-grid-table\"\n class=\"simple-grid-table\"\n [clickOutside]=\"editing\"\n (clickOutside)=\"handleClickOutsideRow()\">\n <colgroup>\n <col\n *ngFor=\"let column of headerColumnsCopy; let index = index\"\n [class.simple-grid-column-auto-fit]=\"column.autoFit\"\n [style.width.px]=\"column.width\"\n [style.min-width.px]=\"MIN_COLUMN_WIDTH\">\n </colgroup>\n <thead>\n <tr>\n <th\n scope=\"col\"\n #headerCell\n class=\"simple-grid-column-header\"\n *ngFor=\"let column of headerColumnsCopy; let index = index\">\n <div\n class=\"simple-grid-column-header-wrapper\"\n [class.resizable]=\"resizable\"\n [class.selected]=\"column.isSelected\"\n [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\">\n <ng-container *ngIf=\"column.headerTemplate; else noHeaderTemplate\">\n <ng-container [ngTemplateOutlet]=\"column.headerTemplate\"></ng-container>\n </ng-container>\n <ng-template #noHeaderTemplate>\n <div\n class=\"simple-grid-column-header-label\"\n [ngClass]=\"column.textAlign ? column.textAlign : defaultTextAlign\"\n [class.with-menu]=\"showGridSettings\"\n [class.with-sort]=\"showColumnSort\"\n [textContent]=\"column.headerText || '&nbsp;'\"\n (click)=\"showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)\">\n </div>\n\n <div class=\"sort-column\" *ngIf=\"showColumnSort\">\n <co-button\n (click)=\"sortColumn(column, column?.field)\"\n [iconData]=\"icons.getIcon(Icons.ArrowUpArrowDown)\">\n </co-button>\n </div>\n\n <div class=\"column-menu\" *ngIf=\"column.isSelected\">\n <h3 [textContent]=\"'COLUMN_OPTIONS' | coreLocalize\"></h3>\n <ul>\n <li (click)=\"hideColumn(column)\">Hide Column</li>\n <li (click)=\"sortColumn(column, column.field)\">Sort Column</li>\n </ul>\n </div>\n </ng-template>\n <div\n *ngIf=\"resizable && column.resizable\"\n class=\"simple-grid-column-sizer\"\n (mousedown)=\"handleSizerMouseDown($event, column)\">\n </div>\n </div>\n </th>\n </tr>\n\n <div *ngIf=\"showGridSettings\" class=\"grid-settings\">\n <co-button\n [class.selected]=\"isSettingsMenuOpen\"\n [iconData]=\"icons.getIcon(Icons.CogWheels)\"\n (click)=\"toggleSettingsMenu()\">\n </co-button>\n\n <div class=\"settings-menu\" *ngIf=\"isSettingsMenuOpen\">\n <h3 [textContent]=\"'GRID_OPTIONS' | coreLocalize\"></h3>\n <ul>\n <li (click)=\"exportToExcel()\">Export to Excel</li>\n <li *ngIf=\"headerColumnsCopy.length !== headerColumns.length\" (click)=\"showAllColumns()\">\n Show All Columns\n </li>\n </ul>\n </div>\n </div>\n </thead>\n\n <tbody\n #dropList cdkDropList cdkDropListOrientation=\"vertical\"\n class=\"simple-grid-drag-drop-list\"\n [cdkDropListDisabled]=\"!dragDropEnabled || editing\"\n [cdkDropListData]=\"data\"\n [cdkDropListEnterPredicate]=\"handleCanDragDrop\"\n (cdkDropListDropped)=\"handleDrop($event)\">\n <co-form class=\"simple-grid-row-form\">\n <tr\n class=\"simple-grid-row\"\n [class.selected]=\"rowIndex === selectedRowIndex && !editing\" observeVisibility\n [class.disabled]=\"getIsRowDisabled(rowIndex)\"\n [class.editing]=\"rowIndex === editRowIndex\"\n *ngFor=\"let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index\"\n cdkDrag\n (click)=\"handleClickRow($event, rowIndex, row)\" (dblclick)=\"handleDblClickRow($event, rowIndex, row)\"\n (visibilityChange)=\"rowVisible.next(row)\">\n <ng-container *ngIf=\"isSingleColumnRow(row)\">\n <td class=\"simple-grid-single-column-cell\" [attr.colspan]=\"headerColumnsCopy.length\">\n <co-simple-grid-cell\n [column]=\"columns[singleColumnIndex(row)]\"\n [row]=\"row\"\n [editMode]=\"false\">\n </co-simple-grid-cell>\n </td>\n </ng-container>\n <ng-container *ngIf=\"!isSingleColumnRow(row)\">\n <ng-container *ngFor=\"let column of headerColumnsCopy; let columnIndex = index\">\n <td class=\"simple-grid-column-cell\" *ngIf=\"columnIndex !== singleColumnIndex(row)\">\n <co-simple-grid-cell\n [column]=\"column\"\n [row]=\"row\"\n [editMode]=\"inlineEdit && editing && rowIndex === editRowIndex\"\n [fieldEditMode]=\"editCellIndex === columnIndex && rowIndex === editRowIndex\"\n (cellClick)=\"handleCellClick($event, row, rowIndex, columnIndex)\">\n </co-simple-grid-cell>\n <div *ngIf=\"column.resizable\" class=\"simple-grid-column-sizer-placeholder\"></div>\n </td>\n </ng-container>\n </ng-container>\n </tr>\n </co-form>\n </tbody>\n </table>\n\n <co-pagination-bar\n *ngIf=\"data?.length > rowsPerPage\" class=\"pagination-bar\"\n [itemsPerPage]=\"rowsPerPage\"\n [currentPage]=\"currentPage\"\n [totalItems]=\"data.length\"\n [autoHide]=\"true\"\n (previousClick)=\"goToPreviousPage()\"\n (nextClick)=\"goToNextPage()\"\n (pageClick)=\"setCurrentPage($event)\">\n </co-pagination-bar>\n ",
10700
+ providers: [FormMasterService],
10595
10701
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
10596
10702
  encapsulation: i0.ViewEncapsulation.None
10597
10703
  },] }
@@ -10599,7 +10705,8 @@
10599
10705
  SimpleGridComponent.ctorParameters = function () { return [
10600
10706
  { type: IconCacheService },
10601
10707
  { type: i0.ChangeDetectorRef },
10602
- { type: FormMasterService }
10708
+ { type: FormMasterService },
10709
+ { type: ExcelExportService }
10603
10710
  ]; };
10604
10711
  SimpleGridComponent.propDecorators = {
10605
10712
  headerCells: [{ type: i0.ViewChildren, args: ['headerCell',] }],
@@ -15216,21 +15323,22 @@
15216
15323
  exports.showHideDialog = showHideDialog;
15217
15324
  exports["ɵa"] = InputBoolean;
15218
15325
  exports["ɵb"] = RippleModule;
15219
- exports["ɵba"] = PaginationService;
15220
- exports["ɵbb"] = PaginatePipe;
15221
- exports["ɵbc"] = SimpleGridCellComponent;
15222
- exports["ɵbd"] = ListOfValuesMultiselectPopupComponent;
15223
- exports["ɵbe"] = ConfirmationDialogComponent;
15224
- exports["ɵbf"] = DialogBaseComponent;
15225
- exports["ɵbg"] = CoreDynamicComponentService;
15226
- exports["ɵbh"] = PrependPipeModule;
15227
- exports["ɵbi"] = PrependPipe;
15228
- exports["ɵbj"] = CheckmarkOverlayComponent;
15229
- exports["ɵbk"] = ScannerService;
15230
- exports["ɵbl"] = TooltipModule;
15231
- exports["ɵbm"] = TooltipComponent;
15232
- exports["ɵbn"] = TooltipDirective;
15233
- exports["ɵbo"] = HourSchedulingTestObjectComponent;
15326
+ exports["ɵba"] = ObserveVisibilityDirective;
15327
+ exports["ɵbb"] = PaginationService;
15328
+ exports["ɵbc"] = PaginatePipe;
15329
+ exports["ɵbd"] = SimpleGridCellComponent;
15330
+ exports["ɵbe"] = ListOfValuesMultiselectPopupComponent;
15331
+ exports["ɵbf"] = ConfirmationDialogComponent;
15332
+ exports["ɵbg"] = DialogBaseComponent;
15333
+ exports["ɵbh"] = CoreDynamicComponentService;
15334
+ exports["ɵbi"] = PrependPipeModule;
15335
+ exports["ɵbj"] = PrependPipe;
15336
+ exports["ɵbk"] = CheckmarkOverlayComponent;
15337
+ exports["ɵbl"] = ScannerService;
15338
+ exports["ɵbm"] = TooltipModule;
15339
+ exports["ɵbn"] = TooltipComponent;
15340
+ exports["ɵbo"] = TooltipDirective;
15341
+ exports["ɵbp"] = HourSchedulingTestObjectComponent;
15234
15342
  exports["ɵc"] = MD_RIPPLE_GLOBAL_OPTIONS;
15235
15343
  exports["ɵd"] = CoRippleDirective;
15236
15344
  exports["ɵe"] = CoViewportRulerService;
@@ -15254,7 +15362,7 @@
15254
15362
  exports["ɵw"] = CalendarTemplateComponent;
15255
15363
  exports["ɵx"] = PopupShowerService;
15256
15364
  exports["ɵy"] = BaseSimpleGridComponent;
15257
- exports["ɵz"] = ObserveVisibilityDirective;
15365
+ exports["ɵz"] = ExcelExportService;
15258
15366
 
15259
15367
  Object.defineProperty(exports, '__esModule', { value: true });
15260
15368