@colijnit/corecomponents_v12 258.1.6 → 258.1.8
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/bundles/colijnit-corecomponents_v12.umd.js +194 -69
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12.d.ts +17 -16
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +18 -17
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +2 -2
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +147 -122
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +4 -2
- package/esm2015/lib/service/excel-export.service.js +125 -0
- package/fesm2015/colijnit-corecomponents_v12.js +269 -121
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/simple-grid/simple-grid.component.d.ts +9 -6
- package/lib/components/simple-grid/style/_layout.scss +31 -8
- package/lib/service/excel-export.service.d.ts +44 -0
- package/package.json +1 -1
|
@@ -5014,7 +5014,7 @@ GridToolbarComponent.decorators = [
|
|
|
5014
5014
|
<co-icon *ngIf="showEdit" [iconData]="iconsService.getIcon(icons.RotateLeftSolid)" [title]="'cancel'" (click)="cancelClick.emit()"></co-icon>
|
|
5015
5015
|
<co-icon *ngIf="showEdit" [iconData]="iconsService.getIcon(icons.FloppyDiskSolid)" [title]="'save'" (click)="saveClick.emit()"></co-icon>
|
|
5016
5016
|
<co-icon *ngIf="showAdd || showEdit" [iconData]="iconsService.getIcon(icons.PlusSolid)" [title]="'add'" (click)="addClick.emit()"></co-icon>
|
|
5017
|
-
<co-icon *ngIf="showDelete" [iconData]="iconsService.getIcon(icons.TrashCanSolid)" [title]="'delete'" [class.disabled]="!deleteEnabled" (click)="handleDeleteClick()"></co-icon
|
|
5017
|
+
<!-- <co-icon *ngIf="showDelete" [iconData]="iconsService.getIcon(icons.TrashCanSolid)" [title]="'delete'" [class.disabled]="!deleteEnabled" (click)="handleDeleteClick()"></co-icon>-->
|
|
5018
5018
|
</div>
|
|
5019
5019
|
`,
|
|
5020
5020
|
encapsulation: ViewEncapsulation.None
|
|
@@ -9475,19 +9475,142 @@ BaseSimpleGridComponent.propDecorators = {
|
|
|
9475
9475
|
handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
|
|
9476
9476
|
};
|
|
9477
9477
|
|
|
9478
|
+
class ExcelExportService {
|
|
9479
|
+
/**
|
|
9480
|
+
* Export data to Excel file
|
|
9481
|
+
* @param data - Array of objects to export
|
|
9482
|
+
* @param columns - Column configuration (optional)
|
|
9483
|
+
* @param fileName - Name of the exported file
|
|
9484
|
+
* @param sheetName - Name of the Excel sheet
|
|
9485
|
+
*/
|
|
9486
|
+
exportToExcel(data, columns, fileName = 'export', sheetName = 'Sheet1') {
|
|
9487
|
+
// If columns are specified, transform data to match column structure
|
|
9488
|
+
let exportData = data;
|
|
9489
|
+
if (columns && columns.length > 0) {
|
|
9490
|
+
exportData = data.map(item => {
|
|
9491
|
+
const newItem = {};
|
|
9492
|
+
columns.forEach(col => {
|
|
9493
|
+
newItem[col.header] = this.getNestedValue(item, col.key);
|
|
9494
|
+
});
|
|
9495
|
+
return newItem;
|
|
9496
|
+
});
|
|
9497
|
+
}
|
|
9498
|
+
// Create workbook and worksheet
|
|
9499
|
+
const wb = XLSX.utils.book_new();
|
|
9500
|
+
const ws = XLSX.utils.json_to_sheet(exportData);
|
|
9501
|
+
// Set column widths if specified
|
|
9502
|
+
if (columns && columns.some(col => col.width)) {
|
|
9503
|
+
const colWidths = columns.map(col => ({ wch: col.width || 20 }));
|
|
9504
|
+
ws['!cols'] = colWidths;
|
|
9505
|
+
}
|
|
9506
|
+
// Add worksheet to workbook
|
|
9507
|
+
XLSX.utils.book_append_sheet(wb, ws, sheetName);
|
|
9508
|
+
// Save file
|
|
9509
|
+
XLSX.writeFile(wb, `${fileName}.xlsx`);
|
|
9510
|
+
}
|
|
9511
|
+
/**
|
|
9512
|
+
* Export multiple sheets to one Excel file
|
|
9513
|
+
* @param sheets - Array of sheet data
|
|
9514
|
+
* @param fileName - Name of the exported file
|
|
9515
|
+
*/
|
|
9516
|
+
exportMultipleSheets(sheets, fileName = 'multi-sheet-export') {
|
|
9517
|
+
const wb = XLSX.utils.book_new();
|
|
9518
|
+
sheets.forEach(sheet => {
|
|
9519
|
+
let exportData = sheet.data;
|
|
9520
|
+
if (sheet.columns && sheet.columns.length > 0) {
|
|
9521
|
+
exportData = sheet.data.map(item => {
|
|
9522
|
+
const newItem = {};
|
|
9523
|
+
sheet.columns.forEach(col => {
|
|
9524
|
+
newItem[col.header] = this.getNestedValue(item, col.key);
|
|
9525
|
+
});
|
|
9526
|
+
return newItem;
|
|
9527
|
+
});
|
|
9528
|
+
}
|
|
9529
|
+
const ws = XLSX.utils.json_to_sheet(exportData);
|
|
9530
|
+
if (sheet.columns && sheet.columns.some(col => col.width)) {
|
|
9531
|
+
const colWidths = sheet.columns.map(col => ({ wch: col.width || 20 }));
|
|
9532
|
+
ws['!cols'] = colWidths;
|
|
9533
|
+
}
|
|
9534
|
+
XLSX.utils.book_append_sheet(wb, ws, sheet.sheetName);
|
|
9535
|
+
});
|
|
9536
|
+
XLSX.writeFile(wb, `${fileName}.xlsx`);
|
|
9537
|
+
}
|
|
9538
|
+
/**
|
|
9539
|
+
* Export HTML table to Excel
|
|
9540
|
+
* @param tableId - ID of the HTML table element
|
|
9541
|
+
* @param fileName - Name of the exported file
|
|
9542
|
+
* @param sheetName - Name of the Excel sheet
|
|
9543
|
+
*/
|
|
9544
|
+
exportTableToExcel(tableId, fileName = 'table-export', sheetName = 'Sheet1') {
|
|
9545
|
+
const table = document.getElementById(tableId);
|
|
9546
|
+
if (!table) {
|
|
9547
|
+
console.error(`Table with ID '${tableId}' not found`);
|
|
9548
|
+
return;
|
|
9549
|
+
}
|
|
9550
|
+
const wb = XLSX.utils.book_new();
|
|
9551
|
+
const ws = XLSX.utils.table_to_sheet(table);
|
|
9552
|
+
XLSX.utils.book_append_sheet(wb, ws, sheetName);
|
|
9553
|
+
XLSX.writeFile(wb, `${fileName}.xlsx`);
|
|
9554
|
+
}
|
|
9555
|
+
/**
|
|
9556
|
+
* Get nested object value using dot notation
|
|
9557
|
+
* @param obj - Object to search in
|
|
9558
|
+
* @param path - Dot notation path (e.g., 'user.address.city')
|
|
9559
|
+
*/
|
|
9560
|
+
getNestedValue(obj, path) {
|
|
9561
|
+
return path.split('.').reduce((current, key) => {
|
|
9562
|
+
return current && current[key] !== undefined ? current[key] : '';
|
|
9563
|
+
}, obj);
|
|
9564
|
+
}
|
|
9565
|
+
/**
|
|
9566
|
+
* Format date for Excel export
|
|
9567
|
+
* @param date - Date to format
|
|
9568
|
+
* @param format - Format string (default: 'MM/DD/YYYY')
|
|
9569
|
+
*/
|
|
9570
|
+
formatDateForExport(date, format = 'MM/DD/YYYY') {
|
|
9571
|
+
if (!date) {
|
|
9572
|
+
return '';
|
|
9573
|
+
}
|
|
9574
|
+
const d = new Date(date);
|
|
9575
|
+
if (isNaN(d.getTime())) {
|
|
9576
|
+
return '';
|
|
9577
|
+
}
|
|
9578
|
+
const month = (d.getMonth() + 1).toString().padStart(2, '0');
|
|
9579
|
+
const day = d.getDate().toString().padStart(2, '0');
|
|
9580
|
+
const year = d.getFullYear();
|
|
9581
|
+
switch (format) {
|
|
9582
|
+
case 'MM/DD/YYYY':
|
|
9583
|
+
return `${month}/${day}/${year}`;
|
|
9584
|
+
case 'DD/MM/YYYY':
|
|
9585
|
+
return `${day}/${month}/${year}`;
|
|
9586
|
+
case 'YYYY-MM-DD':
|
|
9587
|
+
return `${year}-${month}-${day}`;
|
|
9588
|
+
default:
|
|
9589
|
+
return d.toLocaleDateString();
|
|
9590
|
+
}
|
|
9591
|
+
}
|
|
9592
|
+
}
|
|
9593
|
+
ExcelExportService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ExcelExportService_Factory() { return new ExcelExportService(); }, token: ExcelExportService, providedIn: "root" });
|
|
9594
|
+
ExcelExportService.decorators = [
|
|
9595
|
+
{ type: Injectable, args: [{
|
|
9596
|
+
providedIn: 'root'
|
|
9597
|
+
},] }
|
|
9598
|
+
];
|
|
9599
|
+
|
|
9478
9600
|
class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
9479
|
-
constructor(icons, _changeDetection, _formMaster) {
|
|
9601
|
+
constructor(icons, _changeDetection, _formMaster, excelExportService) {
|
|
9480
9602
|
super();
|
|
9481
9603
|
this.icons = icons;
|
|
9482
9604
|
this._changeDetection = _changeDetection;
|
|
9483
9605
|
this._formMaster = _formMaster;
|
|
9606
|
+
this.excelExportService = excelExportService;
|
|
9484
9607
|
this.defaultTextAlign = ColumnAlign.Left;
|
|
9485
9608
|
this.showAdd = false;
|
|
9486
9609
|
this.showDelete = false;
|
|
9487
9610
|
this.editOnCellClick = true;
|
|
9488
9611
|
this.rightToolbar = false;
|
|
9489
9612
|
this.showGridSettings = false;
|
|
9490
|
-
this.rowsPerPage =
|
|
9613
|
+
this.rowsPerPage = 50;
|
|
9491
9614
|
this.showColumnSort = false;
|
|
9492
9615
|
this.editing = false;
|
|
9493
9616
|
this.isSettingsMenuOpen = false;
|
|
@@ -9497,8 +9620,11 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9497
9620
|
this.currentPage = 1;
|
|
9498
9621
|
this.sortDirection = 'asc';
|
|
9499
9622
|
this.Icons = CoreComponentsIcon;
|
|
9623
|
+
this.hoveredRowIndex = -1;
|
|
9500
9624
|
this._doubleClicked = false;
|
|
9501
9625
|
this._newRow = false;
|
|
9626
|
+
this.IconCacheService = IconCacheService;
|
|
9627
|
+
this.CoreComponentsIcon = CoreComponentsIcon;
|
|
9502
9628
|
this.dataChanged.subscribe(() => {
|
|
9503
9629
|
this.currentPage = 1;
|
|
9504
9630
|
});
|
|
@@ -9560,13 +9686,6 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9560
9686
|
}
|
|
9561
9687
|
});
|
|
9562
9688
|
}
|
|
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
9689
|
addNewRow() {
|
|
9571
9690
|
return __awaiter(this, void 0, void 0, function* () {
|
|
9572
9691
|
if (this.inlineEdit) {
|
|
@@ -9577,10 +9696,20 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9577
9696
|
this._detectChanges();
|
|
9578
9697
|
this._newRow = true;
|
|
9579
9698
|
this.editing = true;
|
|
9580
|
-
this.
|
|
9581
|
-
|
|
9582
|
-
|
|
9583
|
-
|
|
9699
|
+
if (this.rowsPerPage && this.data.length > this.rowsPerPage) {
|
|
9700
|
+
// navigate to the last page to the new row
|
|
9701
|
+
this.currentPage = Math.ceil(this.data.length / this.rowsPerPage);
|
|
9702
|
+
// select new row
|
|
9703
|
+
const absoluteIndex = this.data.length - 1;
|
|
9704
|
+
this.selectedRowIndex = this.rowsPerPage ? (absoluteIndex - ((this.currentPage - 1) * this.rowsPerPage)) : absoluteIndex;
|
|
9705
|
+
this.editRow(null);
|
|
9706
|
+
}
|
|
9707
|
+
else {
|
|
9708
|
+
this.editRowIndex = this.data.length - 1;
|
|
9709
|
+
this.rowToEdit = this.data[this.editRowIndex];
|
|
9710
|
+
this.editCellIndex = yield this._nextAvailableCellToEdit(true);
|
|
9711
|
+
this._detectChanges();
|
|
9712
|
+
}
|
|
9584
9713
|
}
|
|
9585
9714
|
}
|
|
9586
9715
|
else {
|
|
@@ -9722,12 +9851,15 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9722
9851
|
const sorted = [...this.data].sort((a, b) => {
|
|
9723
9852
|
let valA = a[columnValue];
|
|
9724
9853
|
let valB = b[columnValue];
|
|
9725
|
-
if (valA == null && valB == null)
|
|
9854
|
+
if (valA == null && valB == null) {
|
|
9726
9855
|
return 0;
|
|
9727
|
-
|
|
9856
|
+
}
|
|
9857
|
+
if (valA == null) {
|
|
9728
9858
|
return -1 * direction;
|
|
9729
|
-
|
|
9859
|
+
}
|
|
9860
|
+
if (valB == null) {
|
|
9730
9861
|
return 1 * direction;
|
|
9862
|
+
}
|
|
9731
9863
|
// Handle ISO date string
|
|
9732
9864
|
const isDateA = typeof valA === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valA);
|
|
9733
9865
|
const isDateB = typeof valB === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valB);
|
|
@@ -9745,34 +9877,12 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9745
9877
|
this.data = sorted;
|
|
9746
9878
|
this._detectChanges();
|
|
9747
9879
|
}
|
|
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
9880
|
showAllColumns() {
|
|
9766
9881
|
this.isSettingsMenuOpen = false;
|
|
9767
9882
|
this.headerColumnsCopy = this.headerColumns;
|
|
9768
9883
|
}
|
|
9769
9884
|
exportToExcel() {
|
|
9770
|
-
this.
|
|
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');
|
|
9885
|
+
this.excelExportService.exportTableToExcel('simple-grid-table', 'ExcelSheet', 'Sheet1');
|
|
9776
9886
|
}
|
|
9777
9887
|
prepareDataRow(row, index) {
|
|
9778
9888
|
this.isRowDisabled(row, index);
|
|
@@ -9914,32 +10024,38 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
|
9914
10024
|
this.editing = false;
|
|
9915
10025
|
this.rowToEdit = undefined;
|
|
9916
10026
|
}
|
|
10027
|
+
get isNewRow() {
|
|
10028
|
+
return this._newRow;
|
|
10029
|
+
}
|
|
9917
10030
|
}
|
|
9918
10031
|
SimpleGridComponent.decorators = [
|
|
9919
10032
|
{ type: Component, args: [{
|
|
9920
10033
|
selector: 'co-simple-grid',
|
|
9921
10034
|
template: `
|
|
9922
|
-
<co-grid-toolbar
|
|
9923
|
-
|
|
9924
|
-
|
|
9925
|
-
|
|
9926
|
-
|
|
9927
|
-
|
|
9928
|
-
|
|
9929
|
-
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
10035
|
+
<co-grid-toolbar
|
|
10036
|
+
*ngIf="showToolbar" [class.right]="rightToolbar"
|
|
10037
|
+
[showEdit]="showEdit"
|
|
10038
|
+
[showAdd]="showAdd"
|
|
10039
|
+
[showDelete]="showDelete"
|
|
10040
|
+
[deleteEnabled]="selectedRowIndex > -1"
|
|
10041
|
+
(addClick)="addNewRow()"
|
|
10042
|
+
(editClick)="editRow($event)"
|
|
10043
|
+
(saveClick)="validateAndSave()"
|
|
10044
|
+
(cancelClick)="cancelEditRow()"
|
|
10045
|
+
(deleteClick)="removeRow()">
|
|
10046
|
+
</co-grid-toolbar>
|
|
10047
|
+
|
|
9933
10048
|
<table
|
|
9934
10049
|
id="simple-grid-table"
|
|
9935
10050
|
class="simple-grid-table"
|
|
9936
10051
|
[clickOutside]="editing"
|
|
9937
10052
|
(clickOutside)="handleClickOutsideRow()">
|
|
9938
10053
|
<colgroup>
|
|
9939
|
-
<col
|
|
9940
|
-
|
|
9941
|
-
|
|
9942
|
-
|
|
10054
|
+
<col
|
|
10055
|
+
*ngFor="let column of headerColumnsCopy; let index = index"
|
|
10056
|
+
[class.simple-grid-column-auto-fit]="column.autoFit"
|
|
10057
|
+
[style.width.px]="column.width"
|
|
10058
|
+
[style.min-width.px]="MIN_COLUMN_WIDTH">
|
|
9943
10059
|
</colgroup>
|
|
9944
10060
|
<thead>
|
|
9945
10061
|
<tr>
|
|
@@ -9957,17 +10073,19 @@ SimpleGridComponent.decorators = [
|
|
|
9957
10073
|
<ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
|
|
9958
10074
|
</ng-container>
|
|
9959
10075
|
<ng-template #noHeaderTemplate>
|
|
9960
|
-
<div
|
|
9961
|
-
|
|
9962
|
-
|
|
9963
|
-
|
|
9964
|
-
|
|
9965
|
-
|
|
10076
|
+
<div
|
|
10077
|
+
class="simple-grid-column-header-label"
|
|
10078
|
+
[ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
|
|
10079
|
+
[class.with-menu]="showGridSettings"
|
|
10080
|
+
[class.with-sort]="showColumnSort"
|
|
10081
|
+
[textContent]="column.headerText || ' '"
|
|
10082
|
+
(click)="showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)">
|
|
9966
10083
|
</div>
|
|
9967
10084
|
|
|
9968
10085
|
<div class="sort-column" *ngIf="showColumnSort">
|
|
9969
|
-
<co-button
|
|
9970
|
-
|
|
10086
|
+
<co-button
|
|
10087
|
+
(click)="sortColumn(column, column?.field)"
|
|
10088
|
+
[iconData]="icons.getIcon(Icons.ArrowUpArrowDown)">
|
|
9971
10089
|
</co-button>
|
|
9972
10090
|
</div>
|
|
9973
10091
|
|
|
@@ -9979,53 +10097,60 @@ SimpleGridComponent.decorators = [
|
|
|
9979
10097
|
</ul>
|
|
9980
10098
|
</div>
|
|
9981
10099
|
</ng-template>
|
|
9982
|
-
<div
|
|
9983
|
-
|
|
9984
|
-
|
|
9985
|
-
|
|
9986
|
-
|
|
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>
|
|
9993
|
-
|
|
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>
|
|
10100
|
+
<div
|
|
10101
|
+
*ngIf="resizable && column.resizable"
|
|
10102
|
+
class="simple-grid-column-sizer"
|
|
10103
|
+
(mousedown)="handleSizerMouseDown($event, column)">
|
|
10104
|
+
</div>
|
|
10002
10105
|
</div>
|
|
10003
10106
|
</th>
|
|
10004
10107
|
</tr>
|
|
10108
|
+
|
|
10109
|
+
<div *ngIf="showGridSettings" class="grid-settings">
|
|
10110
|
+
<co-button
|
|
10111
|
+
[class.selected]="isSettingsMenuOpen"
|
|
10112
|
+
[iconData]="icons.getIcon(Icons.CogWheels)"
|
|
10113
|
+
(click)="toggleSettingsMenu()">
|
|
10114
|
+
</co-button>
|
|
10115
|
+
|
|
10116
|
+
<div class="settings-menu" *ngIf="isSettingsMenuOpen">
|
|
10117
|
+
<h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
|
|
10118
|
+
<ul>
|
|
10119
|
+
<li (click)="exportToExcel()">Export to Excel</li>
|
|
10120
|
+
<li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">
|
|
10121
|
+
Show All Columns
|
|
10122
|
+
</li>
|
|
10123
|
+
</ul>
|
|
10124
|
+
</div>
|
|
10125
|
+
</div>
|
|
10005
10126
|
</thead>
|
|
10006
|
-
<tbody
|
|
10007
|
-
|
|
10008
|
-
|
|
10009
|
-
|
|
10010
|
-
|
|
10011
|
-
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
|
|
10015
|
-
|
|
10016
|
-
|
|
10017
|
-
|
|
10018
|
-
|
|
10019
|
-
|
|
10020
|
-
|
|
10021
|
-
|
|
10127
|
+
<tbody
|
|
10128
|
+
#dropList cdkDropList cdkDropListOrientation="vertical"
|
|
10129
|
+
class="simple-grid-drag-drop-list"
|
|
10130
|
+
[cdkDropListDisabled]="!dragDropEnabled || editing"
|
|
10131
|
+
[cdkDropListData]="data"
|
|
10132
|
+
[cdkDropListEnterPredicate]="handleCanDragDrop"
|
|
10133
|
+
(cdkDropListDropped)="handleDrop($event)">
|
|
10134
|
+
<co-form class="simple-grid-row-form">
|
|
10135
|
+
<tr
|
|
10136
|
+
class="simple-grid-row"
|
|
10137
|
+
[class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
|
|
10138
|
+
[class.disabled]="getIsRowDisabled(rowIndex)"
|
|
10139
|
+
[class.editing]="rowIndex === editRowIndex"
|
|
10140
|
+
*ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
|
|
10141
|
+
cdkDrag
|
|
10142
|
+
(click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
|
|
10143
|
+
(visibilityChange)="rowVisible.next(row)"
|
|
10144
|
+
(mouseenter)="hoveredRowIndex = rowIndex"
|
|
10145
|
+
(mouseleave)="hoveredRowIndex = -1"
|
|
10146
|
+
>
|
|
10022
10147
|
<ng-container *ngIf="isSingleColumnRow(row)">
|
|
10023
10148
|
<td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
|
|
10024
10149
|
<co-simple-grid-cell
|
|
10025
10150
|
[column]="columns[singleColumnIndex(row)]"
|
|
10026
10151
|
[row]="row"
|
|
10027
|
-
[editMode]="false"
|
|
10028
|
-
|
|
10152
|
+
[editMode]="false">
|
|
10153
|
+
</co-simple-grid-cell>
|
|
10029
10154
|
</td>
|
|
10030
10155
|
</ng-container>
|
|
10031
10156
|
<ng-container *ngIf="!isSingleColumnRow(row)">
|
|
@@ -10036,30 +10161,51 @@ SimpleGridComponent.decorators = [
|
|
|
10036
10161
|
[row]="row"
|
|
10037
10162
|
[editMode]="inlineEdit && editing && rowIndex === editRowIndex"
|
|
10038
10163
|
[fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
|
|
10039
|
-
(cellClick)="handleCellClick($event, row, rowIndex, columnIndex)"
|
|
10040
|
-
|
|
10164
|
+
(cellClick)="handleCellClick($event, row, rowIndex, columnIndex)">
|
|
10165
|
+
</co-simple-grid-cell>
|
|
10041
10166
|
<div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
|
|
10042
10167
|
</td>
|
|
10043
10168
|
</ng-container>
|
|
10169
|
+
<ng-container *ngIf="inlineEdit">
|
|
10170
|
+
<div class="icons-container" *ngIf="!editing">
|
|
10171
|
+
<co-icon class="icon-item icon-edit"
|
|
10172
|
+
[iconData]="icons.getIcon(Icons.PenToSquareSolid)" *ngIf="hoveredRowIndex === rowIndex"
|
|
10173
|
+
(click)="editRow($event)"></co-icon>
|
|
10174
|
+
|
|
10175
|
+
<co-icon class="icon-item icon-delete"
|
|
10176
|
+
[iconData]="icons.getIcon(Icons.TrashBin)" *ngIf="hoveredRowIndex === rowIndex"
|
|
10177
|
+
(click)="removeRow()"></co-icon>
|
|
10178
|
+
</div>
|
|
10179
|
+
<div class="icons-container">
|
|
10180
|
+
<co-button class="save-button"
|
|
10181
|
+
*ngIf="editing && (selectedRowIndex === rowIndex || (isNewRow && rowIndex === editRowIndex))"
|
|
10182
|
+
[iconData]="icons.getIcon(Icons.CheckDuotone)"
|
|
10183
|
+
(click)="validateAndSave(); $event.stopPropagation()"></co-button>
|
|
10184
|
+
|
|
10185
|
+
<co-button class="close-button"
|
|
10186
|
+
*ngIf="editing && (selectedRowIndex === rowIndex || (isNewRow && rowIndex === editRowIndex))"
|
|
10187
|
+
[iconData]="icons.getIcon(Icons.CrossSkinny)"
|
|
10188
|
+
(click)="cancelEditRow(); $event.stopPropagation() "></co-button>
|
|
10189
|
+
</div>
|
|
10190
|
+
</ng-container>
|
|
10044
10191
|
</ng-container>
|
|
10045
|
-
|
|
10046
|
-
|
|
10047
|
-
</tr>
|
|
10192
|
+
</tr>
|
|
10193
|
+
</co-form>
|
|
10048
10194
|
</tbody>
|
|
10049
10195
|
</table>
|
|
10050
|
-
|
|
10051
|
-
|
|
10052
|
-
|
|
10053
|
-
|
|
10054
|
-
|
|
10055
|
-
|
|
10056
|
-
|
|
10057
|
-
|
|
10058
|
-
|
|
10196
|
+
|
|
10197
|
+
<co-pagination-bar
|
|
10198
|
+
*ngIf="data?.length > rowsPerPage" class="pagination-bar"
|
|
10199
|
+
[itemsPerPage]="rowsPerPage"
|
|
10200
|
+
[currentPage]="currentPage"
|
|
10201
|
+
[totalItems]="data.length"
|
|
10202
|
+
[autoHide]="true"
|
|
10203
|
+
(previousClick)="goToPreviousPage()"
|
|
10204
|
+
(nextClick)="goToNextPage()"
|
|
10205
|
+
(pageClick)="setCurrentPage($event)">
|
|
10206
|
+
</co-pagination-bar>
|
|
10059
10207
|
`,
|
|
10060
|
-
providers: [
|
|
10061
|
-
FormMasterService
|
|
10062
|
-
],
|
|
10208
|
+
providers: [FormMasterService],
|
|
10063
10209
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10064
10210
|
encapsulation: ViewEncapsulation.None
|
|
10065
10211
|
},] }
|
|
@@ -10067,7 +10213,8 @@ SimpleGridComponent.decorators = [
|
|
|
10067
10213
|
SimpleGridComponent.ctorParameters = () => [
|
|
10068
10214
|
{ type: IconCacheService },
|
|
10069
10215
|
{ type: ChangeDetectorRef },
|
|
10070
|
-
{ type: FormMasterService }
|
|
10216
|
+
{ type: FormMasterService },
|
|
10217
|
+
{ type: ExcelExportService }
|
|
10071
10218
|
];
|
|
10072
10219
|
SimpleGridComponent.propDecorators = {
|
|
10073
10220
|
headerCells: [{ type: ViewChildren, args: ['headerCell',] }],
|
|
@@ -10828,7 +10975,8 @@ SimpleGridModule.decorators = [
|
|
|
10828
10975
|
PaginationBarModule,
|
|
10829
10976
|
ClickoutsideModule,
|
|
10830
10977
|
ButtonModule,
|
|
10831
|
-
CoreComponentsTranslationModule
|
|
10978
|
+
CoreComponentsTranslationModule,
|
|
10979
|
+
IconModule
|
|
10832
10980
|
],
|
|
10833
10981
|
declarations: [
|
|
10834
10982
|
SimpleGridComponent,
|
|
@@ -14869,5 +15017,5 @@ HourSchedulingExpandableComponentModule.decorators = [
|
|
|
14869
15017
|
* Generated bundle index. Do not edit.
|
|
14870
15018
|
*/
|
|
14871
15019
|
|
|
14872
|
-
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,
|
|
15020
|
+
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 };
|
|
14873
15021
|
//# sourceMappingURL=colijnit-corecomponents_v12.js.map
|