basesite-shared-grid-lib 15.10.88 → 15.10.104

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.
@@ -1021,6 +1021,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1021
1021
  }]
1022
1022
  }] });
1023
1023
 
1024
+ class DateHeaderComponent {
1025
+ agInit(params) {
1026
+ this.params = params;
1027
+ }
1028
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DateHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: DateHeaderComponent, isStandalone: false, selector: "app-date-header", ngImport: i0, template: `
1030
+ <span>
1031
+ {{ params.displayName }}
1032
+ <i class="fa-solid fa-calendar-days" style="margin-left: 4px;"></i>
1033
+ </span>
1034
+ `, isInline: true }); }
1035
+ }
1036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DateHeaderComponent, decorators: [{
1037
+ type: Component,
1038
+ args: [{
1039
+ selector: 'app-date-header',
1040
+ template: `
1041
+ <span>
1042
+ {{ params.displayName }}
1043
+ <i class="fa-solid fa-calendar-days" style="margin-left: 4px;"></i>
1044
+ </span>
1045
+ `,
1046
+ standalone: false
1047
+ }]
1048
+ }] });
1049
+
1024
1050
  class ColumnValueFormatter {
1025
1051
  constructor(datePipe) {
1026
1052
  this.datePipe = datePipe;
@@ -1046,6 +1072,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1046
1072
  }], ctorParameters: () => [{ type: i1$1.DatePipe }] });
1047
1073
 
1048
1074
  class GridLibraryComponent {
1075
+ ;
1076
+ //custom pagination properties ends...
1049
1077
  constructor(gridService, formatterService, _tokenSharingService) {
1050
1078
  this.gridService = gridService;
1051
1079
  this.formatterService = formatterService;
@@ -1081,6 +1109,18 @@ class GridLibraryComponent {
1081
1109
  this._TiPm = 'TI PM';
1082
1110
  //unsubscribe subject
1083
1111
  this.unsubscribe$ = new Subject();
1112
+ //custom pagination properties
1113
+ this.pageNumber = 0;
1114
+ this.currentPage = 1;
1115
+ this.totalPages = 0;
1116
+ this.pageNumbers = [];
1117
+ this.isFirstPage = true;
1118
+ this.isLastPage = false;
1119
+ this.pageSize = 12;
1120
+ this.startRow = 0;
1121
+ this.endRow = 0;
1122
+ this.totalRows = 0;
1123
+ this.dataLoaded = false;
1084
1124
  this.defaultColDef = {
1085
1125
  sortable: true,
1086
1126
  filter: true,
@@ -1122,6 +1162,15 @@ class GridLibraryComponent {
1122
1162
  ];
1123
1163
  return res;
1124
1164
  };
1165
+ //Custom Pagination starts here ================############################================================
1166
+ this.onPaginationChanged = (params) => {
1167
+ if (this.gridAPI && this.dataLoaded) {
1168
+ this.gridAPI.deselectAll();
1169
+ const currentPage = this.gridAPI.paginationGetCurrentPage();
1170
+ localStorage.setItem('pageNumber', currentPage.toString());
1171
+ setTimeout(() => this.updatePaginationInfo(), 0);
1172
+ }
1173
+ };
1125
1174
  }
1126
1175
  onSortChangedEvent(e) {
1127
1176
  this.gridColumnState = this.gridAPI.getState();
@@ -1237,6 +1286,38 @@ class GridLibraryComponent {
1237
1286
  lockPinned: true,
1238
1287
  };
1239
1288
  }
1289
+ else if (res.columnType === 'date') {
1290
+ return {
1291
+ pinned: res.pinPosition,
1292
+ field: res.field,
1293
+ headerName: res.title,
1294
+ resizable: true,
1295
+ hide: this._getColumnVisiblityStatus(res, userRoles),
1296
+ sortable: true,
1297
+ tooltipField: res.field,
1298
+ floatingFilter: this.floatingFilter,
1299
+ valueFormatter: (params) => this.formatterService.colValueFormatter(params, res.columnType),
1300
+ filterable: res.filterable,
1301
+ filter: 'agDateColumnFilter',
1302
+ headerComponent: DateHeaderComponent,
1303
+ filterParams: {
1304
+ comparator: (filterLocalDateAtMidnight, cellValue) => {
1305
+ const dateAsString = cellValue;
1306
+ if (dateAsString == null) {
1307
+ return 0;
1308
+ }
1309
+ const cellDate = new Date(dateAsString);
1310
+ if (cellDate < filterLocalDateAtMidnight) {
1311
+ return -1;
1312
+ }
1313
+ else if (cellDate > filterLocalDateAtMidnight) {
1314
+ return 1;
1315
+ }
1316
+ return 0;
1317
+ }, buttons: ['reset'],
1318
+ },
1319
+ };
1320
+ }
1240
1321
  else {
1241
1322
  // if (!hideDacStatus) {
1242
1323
  return {
@@ -1541,11 +1622,90 @@ class GridLibraryComponent {
1541
1622
  this.filterChanged.emit(e);
1542
1623
  }
1543
1624
  onFirstDataRendered(e) {
1625
+ const storedPageNumber = localStorage.getItem('pageNumber');
1626
+ this.pageNumber = storedPageNumber ? parseInt(storedPageNumber) : 0;
1627
+ if (this.pageNumber >= 1) {
1628
+ this.gridAPI.paginationGoToPage(this.pageNumber);
1629
+ }
1630
+ this.dataLoaded = true;
1631
+ setTimeout(() => this.updatePaginationInfo(), 0);
1544
1632
  this.firstDataRendered.emit(e);
1545
1633
  }
1546
1634
  onGridReadyExcel(params) {
1547
1635
  this.excelAPI = params.api;
1548
1636
  }
1637
+ updatePaginationInfo() {
1638
+ if (!this.gridAPI)
1639
+ return;
1640
+ // Get all pagination info at once to minimize grid API calls
1641
+ const currentPage = this.gridAPI.paginationGetCurrentPage() + 1;
1642
+ const totalPages = this.gridAPI.paginationGetTotalPages();
1643
+ const totalRows = this.gridAPI.paginationGetRowCount();
1644
+ const pageSize = this.gridAPI.paginationGetPageSize();
1645
+ // Update component state
1646
+ this.currentPage = currentPage;
1647
+ this.totalPages = totalPages;
1648
+ this.totalRows = totalRows;
1649
+ this.pageSize = pageSize;
1650
+ // Calculate derived values
1651
+ this.startRow = (this.currentPage - 1) * this.pageSize + 1;
1652
+ this.endRow = Math.min(this.currentPage * this.pageSize, this.totalRows);
1653
+ this.isFirstPage = this.currentPage === 1;
1654
+ this.isLastPage = this.currentPage === this.totalPages;
1655
+ // Update page numbers array
1656
+ this.updatePageNumbers();
1657
+ }
1658
+ updatePageNumbers() {
1659
+ this.pageNumbers = [];
1660
+ if (this.totalPages <= 7) {
1661
+ // Show all pages if 7 or fewer
1662
+ for (let i = 1; i <= this.totalPages; i++) {
1663
+ this.pageNumbers.push(i);
1664
+ }
1665
+ }
1666
+ else {
1667
+ // Always show first page
1668
+ this.pageNumbers.push(1);
1669
+ // Show ellipsis if not near the beginning
1670
+ if (this.currentPage > 3) {
1671
+ this.pageNumbers.push('...');
1672
+ }
1673
+ // Calculate range of pages to show around current page
1674
+ let startPage = Math.max(2, this.currentPage - 1);
1675
+ let endPage = Math.min(this.totalPages - 1, this.currentPage + 1);
1676
+ // Adjust range to show at least 3 pages when possible
1677
+ if (startPage === 2)
1678
+ endPage = Math.min(4, this.totalPages - 1);
1679
+ if (endPage === this.totalPages - 1)
1680
+ startPage = Math.max(2, this.totalPages - 3);
1681
+ // Add the range of pages
1682
+ for (let i = startPage; i <= endPage; i++) {
1683
+ this.pageNumbers.push(i);
1684
+ }
1685
+ // Show ellipsis if not near the end
1686
+ if (this.currentPage < this.totalPages - 2) {
1687
+ this.pageNumbers.push('...');
1688
+ }
1689
+ // Always show last page
1690
+ this.pageNumbers.push(this.totalPages);
1691
+ }
1692
+ }
1693
+ goToPage(page) {
1694
+ if (typeof page === 'number' && this.gridAPI) {
1695
+ this.gridAPI.paginationGoToPage(page - 1);
1696
+ }
1697
+ }
1698
+ onPreviousPage() {
1699
+ if (!this.isFirstPage && this.gridAPI) {
1700
+ this.gridAPI.paginationGoToPreviousPage();
1701
+ }
1702
+ }
1703
+ onNextPage() {
1704
+ if (!this.isLastPage && this.gridAPI) {
1705
+ this.gridAPI.paginationGoToNextPage();
1706
+ }
1707
+ }
1708
+ //custom pagination ends...
1549
1709
  //destroy all associated subscriptions on component destroy
1550
1710
  ngOnDestroy() {
1551
1711
  this.unsubscribe$.next();
@@ -1564,8 +1724,8 @@ class GridLibraryComponent {
1564
1724
  [animateRows]="true"
1565
1725
  (gridReady)="onGridReady($event)"
1566
1726
  [pagination]="true"
1567
- [paginationNumberFormatter]="paginationNumberFormatter"
1568
1727
  [paginationAutoPageSize]="paginationAutoPageSize"
1728
+ [suppressPaginationPanel]="true"
1569
1729
  [tooltipShowDelay]="tooltipShowDelay"
1570
1730
  [tooltipHideDelay]="tooltipHideDelay"
1571
1731
  [rowModelType]="rowModelType"
@@ -1584,8 +1744,38 @@ class GridLibraryComponent {
1584
1744
  (firstDataRendered)="onFirstDataRendered($event)"
1585
1745
  [overlayNoRowsTemplate]="overlayNoRowsTemplate"
1586
1746
  [rowHeight]="rowHeight"
1747
+ (paginationChanged)="onPaginationChanged($event)"
1587
1748
  >
1588
1749
  </ag-grid-angular>
1750
+ <!-- Custom pagination -->
1751
+ <div class="custom-pagination">
1752
+ <div class="pagination-nav">
1753
+ <button class="nav-btn" (click)="onPreviousPage()" [disabled]="isFirstPage">
1754
+ <span class="nav-btn-prev"></span>
1755
+ </button>
1756
+
1757
+ <ng-container *ngFor="let page of pageNumbers">
1758
+ <span
1759
+ *ngIf="page !== '...'"
1760
+ class="page-number"
1761
+ [ngClass]="{'page-number--increased': typeof page === 'number' && +page > 99}"
1762
+ [class.active]="page === currentPage"
1763
+ (click)="goToPage(page)"
1764
+ >
1765
+ {{ page }}
1766
+ </span>
1767
+ <span *ngIf="page === '...'" class="ellipsis">...</span>
1768
+ </ng-container>
1769
+
1770
+ <button class="nav-btn" (click)="onNextPage()" [disabled]="isLastPage">
1771
+ <span class="nav-btn-next"></span>
1772
+ </button>
1773
+ </div>
1774
+
1775
+ <div class="pagination-info">
1776
+ <span>{{ startRow }}-{{ endRow }} of {{ totalRows }} items</span>
1777
+ </div>
1778
+ </div>
1589
1779
  <ag-grid-angular
1590
1780
  #agGridHidden
1591
1781
  style="height:100vh; width:100%;display:none"
@@ -1600,7 +1790,7 @@ class GridLibraryComponent {
1600
1790
  [cacheQuickFilter]="false"
1601
1791
  >
1602
1792
  </ag-grid-angular>
1603
- `, isInline: true, dependencies: [{ kind: "component", type: i4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }] }); }
1793
+ `, isInline: true, dependencies: [{ kind: "component", type: i4.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1604
1794
  }
1605
1795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: GridLibraryComponent, decorators: [{
1606
1796
  type: Component,
@@ -1616,8 +1806,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1616
1806
  [animateRows]="true"
1617
1807
  (gridReady)="onGridReady($event)"
1618
1808
  [pagination]="true"
1619
- [paginationNumberFormatter]="paginationNumberFormatter"
1620
1809
  [paginationAutoPageSize]="paginationAutoPageSize"
1810
+ [suppressPaginationPanel]="true"
1621
1811
  [tooltipShowDelay]="tooltipShowDelay"
1622
1812
  [tooltipHideDelay]="tooltipHideDelay"
1623
1813
  [rowModelType]="rowModelType"
@@ -1636,8 +1826,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1636
1826
  (firstDataRendered)="onFirstDataRendered($event)"
1637
1827
  [overlayNoRowsTemplate]="overlayNoRowsTemplate"
1638
1828
  [rowHeight]="rowHeight"
1829
+ (paginationChanged)="onPaginationChanged($event)"
1639
1830
  >
1640
1831
  </ag-grid-angular>
1832
+ <!-- Custom pagination -->
1833
+ <div class="custom-pagination">
1834
+ <div class="pagination-nav">
1835
+ <button class="nav-btn" (click)="onPreviousPage()" [disabled]="isFirstPage">
1836
+ <span class="nav-btn-prev"></span>
1837
+ </button>
1838
+
1839
+ <ng-container *ngFor="let page of pageNumbers">
1840
+ <span
1841
+ *ngIf="page !== '...'"
1842
+ class="page-number"
1843
+ [ngClass]="{'page-number--increased': typeof page === 'number' && +page > 99}"
1844
+ [class.active]="page === currentPage"
1845
+ (click)="goToPage(page)"
1846
+ >
1847
+ {{ page }}
1848
+ </span>
1849
+ <span *ngIf="page === '...'" class="ellipsis">...</span>
1850
+ </ng-container>
1851
+
1852
+ <button class="nav-btn" (click)="onNextPage()" [disabled]="isLastPage">
1853
+ <span class="nav-btn-next"></span>
1854
+ </button>
1855
+ </div>
1856
+
1857
+ <div class="pagination-info">
1858
+ <span>{{ startRow }}-{{ endRow }} of {{ totalRows }} items</span>
1859
+ </div>
1860
+ </div>
1641
1861
  <ag-grid-angular
1642
1862
  #agGridHidden
1643
1863
  style="height:100vh; width:100%;display:none"
@@ -1697,12 +1917,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1697
1917
  type: Output
1698
1918
  }] } });
1699
1919
 
1920
+ class HeaderComponent {
1921
+ agInit(params) {
1922
+ this.params = params;
1923
+ }
1924
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1925
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: HeaderComponent, isStandalone: false, selector: "app-date-header", ngImport: i0, template: `
1926
+ <span>
1927
+ {{ params.displayName }}
1928
+ </span>
1929
+ `, isInline: true }); }
1930
+ }
1931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HeaderComponent, decorators: [{
1932
+ type: Component,
1933
+ args: [{
1934
+ selector: 'app-date-header',
1935
+ template: `
1936
+ <span>
1937
+ {{ params.displayName }}
1938
+ </span>
1939
+ `, standalone: false
1940
+ }]
1941
+ }] });
1942
+
1700
1943
  class GridLibraryModule {
1701
1944
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: GridLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1702
1945
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: GridLibraryModule, declarations: [GridLibraryComponent,
1703
1946
  ButtonRendererComponent,
1704
1947
  CustomTooltip,
1705
- DropdownRenderer], imports: [AgGridModule,
1948
+ DropdownRenderer,
1949
+ DateHeaderComponent,
1950
+ HeaderComponent], imports: [AgGridModule,
1706
1951
  CommonModule], exports: [GridLibraryComponent] }); }
1707
1952
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: GridLibraryModule, providers: [DatePipe, GridLibraryService, ColumnValueFormatter, provideHttpClient(withInterceptorsFromDi())], imports: [AgGridModule,
1708
1953
  CommonModule] }); }
@@ -1713,7 +1958,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1713
1958
  GridLibraryComponent,
1714
1959
  ButtonRendererComponent,
1715
1960
  CustomTooltip,
1716
- DropdownRenderer
1961
+ DropdownRenderer,
1962
+ DateHeaderComponent,
1963
+ HeaderComponent
1717
1964
  ],
1718
1965
  exports: [
1719
1966
  GridLibraryComponent