cat-qw-lib 1.0.79 → 1.0.82

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.
@@ -59,6 +59,8 @@ import { InputSwitchModule } from 'primeng/inputswitch';
59
59
  import { RadioButtonModule } from 'primeng/radiobutton';
60
60
  import * as i12 from 'primeng/paginator';
61
61
  import { PaginatorModule } from 'primeng/paginator';
62
+ import * as i10 from 'ng-circle-progress';
63
+ import { NgCircleProgressModule } from 'ng-circle-progress';
62
64
  import * as i11 from '@kerwin612/ngx-query-builder';
63
65
  import { QueryBuilderModule } from '@kerwin612/ngx-query-builder';
64
66
  import * as i1$2 from 'ngx-quill';
@@ -182,6 +184,7 @@ class SHARED {
182
184
  static selectedApplicationType = "applicationType";
183
185
  static APPLICANTS = 'applicants';
184
186
  static SECURITY_ADDRESS = 'securityAddress';
187
+ static TASKS = 'tasks';
185
188
  }
186
189
  const widgetLayoutTypeList = [
187
190
  { name: 'Row', value: 'row' },
@@ -2231,19 +2234,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
2231
2234
  var columnStyles = {
2232
2235
  riskRating: {
2233
2236
  containerNgClass: "rowData['riskRating'] === 'Low' ? 'px-2 py-0 m-0 bg-green-100 border-round-2xl inline-block' : rowData['riskRating'] === 'Medium' ? 'px-2 py-0 m-0 bg-yellow-100 border-round-2xl inline-block' : rowData['riskRating'] === 'High' ? 'px-2 py-0 m-0 bg-red-100 border-round-2xl inline-block' : ''",
2234
- textNgClass: "rowData['riskRating'] === 'Low' ? 'text-green-700 text-sm font-medium' : rowData['riskRating'] === 'Medium' ? 'text-yellow-700 text-sm font-medium' : rowData['riskRating'] === 'High' ? 'text-red-700 text-sm' : ''"
2237
+ textNgClass: "rowData['riskRating'] === 'Low' ? 'text-green-700 text-sm font-medium' : rowData['riskRating'] === 'Medium' ? 'text-yellow-700 text-sm font-medium' : rowData['riskRating'] === 'High' ? 'text-red-700 text-sm' : ''",
2238
+ isShowSortIcon: true
2239
+ },
2240
+ appId: {
2241
+ isShowSortIcon: true
2242
+ },
2243
+ brokerName: {
2244
+ isShowSortIcon: true
2245
+ },
2246
+ tasks: {
2247
+ isShowSortIcon: true,
2248
+ isShowProgressbar: true
2235
2249
  },
2236
2250
  lending: {
2237
2251
  containerNgClass: "rowData['lending'] === 'HPP' ? 'px-2 py-0 m-0 bg-orange-100 border-round-2xl inline-block' : rowData['lending'] === 'BTL' ? 'px-2 py-0 m-0 bg-blue-100 border-round-2xl inline-block' : ''",
2238
- textNgClass: "rowData['lending'] === 'HPP' ? 'text-orange-400 text-sm' : rowData['lending'] === 'BTL' ? 'text-blue-400 text-sm' : ''"
2252
+ textNgClass: "rowData['lending'] === 'HPP' ? 'text-orange-400 text-sm' : rowData['lending'] === 'BTL' ? 'text-blue-400 text-sm' : ''",
2253
+ isShowSortIcon: true
2239
2254
  },
2240
2255
  finance: {
2241
2256
  containerNgClass: "",
2242
- textNgClass: "text-blue-500 font-weight-500"
2257
+ textNgClass: "text-blue-500 font-weight-500",
2258
+ isShowSortIcon: true
2243
2259
  },
2244
2260
  pending: {
2245
- containerNgClass: "rowData['pending'] && rowData['pending'] !== '' ? 'px-2 py-0 bg-gray-100 border-round-2xl inline-block' : ''",
2246
- textNgClass: "rowData['pending'] && rowData['pending'] !== '' ? 'text-black-600' : ''"
2261
+ containerNgClass: "rowData['pending'] && rowData['pending'] !== '' ? 'px-2 py-0 pending-badge-wrapper border-round-2xl inline-block' : ''",
2262
+ textNgClass: "rowData['pending'] && rowData['pending'] !== '' ? 'text-black-600' : ''",
2263
+ isShowSortIcon: true
2247
2264
  },
2248
2265
  applicants: {
2249
2266
  containerNgClass: "rowData.isSeperateBubble ? 'border-round-full bg-blue-400 text-white' : rowData.riskRating === 'Low' ? 'border-round-full applicant-success-badge-wrapper text-white' : rowData.riskRating === 'Medium' ? 'border-round-full applicant-amber-badge-wrapper text-white' : rowData.riskRating === 'High' ? 'border-round-full applicant-red-badge-wrapper text-white' : 'border-round-full bg-gray-200 text-white'",
@@ -2251,12 +2268,12 @@ var columnStyles = {
2251
2268
  textNgClass: "text-white text-md"
2252
2269
  },
2253
2270
  securityAddress: {
2254
- line1NgClass: "security-text-wrapper w-full",
2255
- line2NgClass: "text-gray-500 security-text-wrapper w-full"
2271
+ line1NgClass: "security-text-wrapper",
2272
+ line2NgClass: "text-gray-500 security-text-wrapper"
2256
2273
  }
2257
2274
  };
2258
2275
  var rowStyles = {
2259
- ngClass: "rowData['taskCompletionPercent'] === 100 ? 'border-1 border-green-400 bg-green-50 border-round-xl mb-3 px-2 py-4' : (rowData['taskCompletionPercent'] === 0 ? 'border-1 border-gray-200 bg-gray-50 border-round-xl mb-3 opacity-50 px-2 py-4' : 'border-1 border-orange-300 bg-orange-50 border-round-xl mb-3 px-2 py-4')"
2276
+ ngClass: "rowData['taskCompletionPercent'] === 100 ? 'border-1 border-green-400 bg-green-50 border-round-xl column-style-wrapper' : (rowData['taskCompletionPercent'] === 0 ? 'border-1 border-gray-200 bg-gray-50 border-round-xl column-style-wrapper opacity-50' : 'border-1 border-orange-300 bg-orange-50 border-round-xl column-style-wrapper')"
2260
2277
  };
2261
2278
  var tableStyles = {
2262
2279
  ngClass: "border-separate border-spacing-y-4 border-0"
@@ -2552,11 +2569,11 @@ class TableSecondaryComponent {
2552
2569
  }
2553
2570
  }
2554
2571
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TableSecondaryComponent, deps: [{ token: i3$4.Router }, { token: BaseService }, { token: i3$4.ActivatedRoute }, { token: BaseQuery }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
2555
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: TableSecondaryComponent, isStandalone: true, selector: "lib-table-secondary", inputs: { table: "table", metaData: "metaData", title: "title", builder: "builder", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton", pathName: "pathName", selectionMode: "selectionMode", selection: "selection", usePagination: "usePagination", scrollHeight: "scrollHeight", rowSelection: "rowSelection", enableSelection: "enableSelection", noRecordsMessage: "noRecordsMessage", sortField: "sortField", sortOrder: "sortOrder", searchTerm: "searchTerm", filterQuery: "filterQuery" }, outputs: { selectionChange: "selectionChange", rowSelectionChange: "rowSelectionChange", sortChanged: "sortChanged", onDeleteRow: "onDeleteRow", onPage: "onPage" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesOnChanges: true, ngImport: i0, template: " <p-table\r\n *ngIf=\"table && table.headers\"\r\n #dt2\r\n [lazy]=\"true\"\r\n (onSort)=\"onSort($event)\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [ngClass]=\"tableNgClassExpression ? evaluateNgClass(tableNgClassExpression, {}) : ''\"\r\n >\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th\r\n *ngFor=\"let col of table.headers; let i = index\"\r\n class=\"table-header-wrapper bg-white\"\r\n [pSortableColumn]=\"col.name\"\r\n [ngClass]=\"[col.width ? col.width : 'w-full', (!showActions && selectionMode !== 'multiple' && (i === table.headers.length - 1)) ? 'table-action-title' : '']\"\r\n style=\"min-width: 100px\"\r\n > \r\n <h4\r\n [ngClass]=\"[\r\n col.class || '', \r\n col.headerAlign === 'center' ? 'justify-content-center' : \r\n (col.headerAlign === 'right' ? 'justify-content-end' : 'justify-content-start')\r\n ]\"\r\n class=\"flex align-items-center table-header-title capitalize font-semibold m-0\">\r\n {{ col.displayName || col.name }}\r\n @if(table.isSortingAllow){\r\n <p-sortIcon [field]=\"col.name\" />\r\n }\r\n </h4>\r\n </th>\r\n \r\n \r\n <th *ngIf=\"selectionMode === 'multiple'\" class=\"table-header-wrapper text-center table-action-title\" style=\"width: 6rem;\">\r\n <h4 class=\"flex align-items-center justify-content-center gap-2 table-header-title capitalize font-semibold m-0\">\r\n Select <span *ngIf=\"selection?.length\">\r\n ({{ selection.length }})\r\n </span>\r\n </h4>\r\n </th>\r\n \r\n <th\r\n *ngIf=\"showActions\"\r\n class=\"table-action-title table-header-wrapper\"\r\n [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-2'\"\r\n >\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\" style=\"padding:0; border:none; background:none;\">\r\n <div\r\n (click)=\"handleRowClick(rowData)\"\r\n [ngClass]=\"[\r\n rowData.rowNgClassExpression ? evaluateNgClass(rowData.rowNgClassExpression, rowData) : '',\r\n isRowSelected(rowData) ? 'row-selected' : '',\r\n selection?.includes(rowData) ? 'green-highlight' : ''\r\n ]\"\r\n style=\"width: 100%; height: 80px;\"\r\n >\r\n <div class=\"flex align-items-center\">\r\n <ng-container *ngFor=\"let col of table.headers; let j = index\">\r\n <div [ngClass]=\"rowData._columnWidths ? rowData._columnWidths[col.name] : col.width\">\r\n <div class=\"row-wrapprt flex align-items-center justify-content-start\">\r\n <ng-container [ngSwitch]=\"col.isTwoLine\">\r\n <!--Render two lines with dynamic classes for any two-line column -->\r\n <ng-container *ngSwitchCase=\"true\">\r\n <div [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <div [ngClass]=\"col.line1NgClassExpression ? evaluateNgClass(col.line1NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.addressLine1 }}\r\n </div>\r\n <div [ngClass]=\"col.line2NgClassExpression ? evaluateNgClass(col.line2NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.postCode }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Default cell rendering for other columns -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper p-0 flex align-items-center\"\r\n [ngClass]=\"[\r\n getRowClass(col, rowData),\r\n col.align === 'center' ? 'justify-content-center' : \r\n (col.align === 'right' ? 'justify-content-end' : 'justify-content-start')\r\n ]\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n style=\"overflow: hidden; text-overflow: ellipsis; width:100%\"\r\n >\r\n <i\r\n *ngIf=\"rowData[col.name]?.icon\"\r\n class=\"pi pr-2\"\r\n [ngClass]=\"[rowData[col.name].icon, rowData[col.name].iconClass]\"\r\n ></i>\r\n <div *ngIf=\"!col.skipParentNgClass\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"col.skipParentNgClass\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </ng-container>\r\n <ng-template #bubbleOrFallback>\r\n <ng-container *ngIf=\"isArray(rowData[col.name]) && rowData[col.name].length && rowData[col.name][0]?.initials\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngFor=\"let bubble of rowData[col.name]; let i = index\">\r\n <div \r\n [ngClass]=\"[\r\n col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, bubble) : '',\r\n 'border-2 border-white',\r\n bubble.isSeperateBubble && rowData[col.name].length > 1 ? 'mr-3' : (!bubble.isSeperateBubble && i !== 0 ? 'bubble-seperator-wrapper' : '')\r\n ]\"\r\n [ngStyle]=\"col.containerNgStyleExpression ? evaluateNgStyle(col.containerNgStyleExpression, bubble) : null\"\r\n >\r\n <span [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">{{ bubble.initials }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"shouldShowValue(col, rowData)\">\r\n <p class=\"mb-0\" [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name] }}\r\n </p>\r\n </ng-container>\r\n </ng-template>\r\n <div\r\n *ngIf=\"col.name === table.showDecriptionFor && rowData[table.descriptionColumnName]\"\r\n class=\"text-black-500 text-sm mt-1\"\r\n style=\"font-weight: 600;\"\r\n >\r\n {{ rowData[table.descriptionColumnName] }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox at end -->\r\n <div *ngIf=\"selectionMode === 'multiple'\" class=\"text-center action-data-wrapper flex items-center justify-center px-4\" style=\"width: 4rem\" (click)=\"$event.stopPropagation()\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"!enableSelection\"></p-tableCheckbox>\r\n </div>\r\n <!-- Actions -->\r\n <div *ngIf=\"showActions\" class=\"action-data-wrapper text-left flex items-center justify-center px-4\">\r\n <div *ngIf=\"(rowData.isRowDelete !== null || rowData.canDelete !== undefined) ? (showActions && rowData.isRowDelete) : showActions\" class=\"flex align-items-center justify-content-center\">\r\n <p-button\r\n icon=\"pi pi-trash\"\r\n (click)=\"deleteRow($event, rowData)\" \r\n class=\"delete-icon-wrapper mr-3\"\r\n [disabled]=\"!enableSelection\"\r\n ></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Empty Message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\"\r\n class=\"text-center text-color font-semibold p-4\"\r\n >\r\n {{ noRecordsMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n<!-- Paginator -->\r\n<div class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper\" *ngIf=\"usePagination\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ metaData.totalItems > 0 ? ((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10) + 1 : 0 }} to {{ recordNumber }} of {{ metaData?.totalItems ?? 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPageChange)=\"handleLoadRecords($event)\"\r\n ></p-paginator>\r\n</div> ", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:12px;font-weight:600;color:var(--text-color-tertiary)!important}.table-header-wrapper{padding:12px 14px}.table-body-wrapper{padding:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:400%;padding:.5rem;box-sizing:border-box}.bubble-seperator-wrapper{margin-left:-12px}.applicant-red-badge-wrapper{background-color:var(--color-red-500)}.applicant-amber-badge-wrapper{background-color:var(--color-amber-500)}.applicant-success-badge-wrapper{background-color:var(--color-green-500)}.red-text-wrapper{color:var(--color-red-500)}.amber-text-wrapper{color:var(--color-amber-500)}.success-text-wrapper{color:var(--color-green-500)}.security-text-wrapper{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all}.record_username{color:#0f8bfd}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title,.header-text-wrapper,.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.verified-status{background-color:var(--green-500)}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}.DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}.Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}.Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Applicant,.ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}.OnBoarding,.PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}.Pending{background-color:var(--orange-300);padding:.3rem!important;border-radius:5px;color:#fff}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}.table-pagination-wrapper{border-radius:0 0 10px 10px}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .record_username{color:var(--primary-color)}::ng-deep .table-title-wrapper{font-size:20px;font-weight:700}::ng-deep .table-action-title,::ng-deep .header-text-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .table-action-title{border-radius:0 10px 0 0}::ng-deep .action-data-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .verified-status{background-color:var(--green-500)}::ng-deep .disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}::ng-deep .Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}::ng-deep .Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}::ng-deep .Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Applicant{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .OnBoarding{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-secondary-container .p-datatable-table{background-color:#fff;table-layout:fixed}::ng-deep .table-secondary-container .p-datatable-table .p-datatable-thead{background-color:var(--color-surface)}::ng-deep .table-secondary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-secondary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none}::ng-deep .table-secondary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-secondary-container tr:last-child td:last-child{border-radius:0 0 10px}:host ::ng-deep .p-checkbox-box.p-highlight{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}.green-highlight{background-color:var(--color-green-10)!important}:host ::ng-deep .p-checkbox-box.p-highlight .p-checkbox-icon{color:var(--color-surface-light)}:host ::ng-deep .p-checkbox-box:hover{background-color:var(--color-surface-light)!important;border:1px solid var(--text-black)!important}:host ::ng-deep .p-checkbox-box.p-highlight:hover{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}@media screen and (min-width: 1200px) and (max-width: 1500px){.table-header-wrapper{padding:12px 8px;background-color:#fff}.table-body-wrapper{padding:8px}}.table-secondary-container .p-datatable-table{border-collapse:separate!important;border-spacing:50px!important;border-radius:10px}.table-secondary-container tr th{border:none!important}.border-round-full{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i6$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i6$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i6$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i12.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }] });
2572
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: TableSecondaryComponent, isStandalone: true, selector: "lib-table-secondary", inputs: { table: "table", metaData: "metaData", title: "title", builder: "builder", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton", pathName: "pathName", selectionMode: "selectionMode", selection: "selection", usePagination: "usePagination", scrollHeight: "scrollHeight", rowSelection: "rowSelection", enableSelection: "enableSelection", noRecordsMessage: "noRecordsMessage", sortField: "sortField", sortOrder: "sortOrder", searchTerm: "searchTerm", filterQuery: "filterQuery" }, outputs: { selectionChange: "selectionChange", rowSelectionChange: "rowSelectionChange", sortChanged: "sortChanged", onDeleteRow: "onDeleteRow", onPage: "onPage" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesOnChanges: true, ngImport: i0, template: " <p-table\r\n *ngIf=\"table && table.headers\"\r\n #dt2\r\n [lazy]=\"true\"\r\n (onSort)=\"onSort($event)\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [ngClass]=\"tableNgClassExpression ? evaluateNgClass(tableNgClassExpression, {}) : ''\"\r\n >\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th\r\n *ngFor=\"let col of table.headers; let i = index\"\r\n class=\"table-header-wrapper bg-white\"\r\n [pSortableColumn]=\"col.name\"\r\n [ngClass]=\"[col.width ? col.width : 'w-full', (!showActions && selectionMode !== 'multiple' && (i === table.headers.length - 1)) ? 'table-action-title' : '']\"\r\n style=\"min-width: 100px\"\r\n > \r\n <h4\r\n [ngClass]=\"[\r\n col.class || '', \r\n i === 0 ? 'justify-content-start' : 'justify-content-center'\r\n ]\"\r\n class=\"flex align-items-center table-header-title text-center capitalize font-semibold m-0\">\r\n {{ col.displayName || col.name }}\r\n @if(table.isSortingAllow && col.isShowSortIcon){\r\n <p-sortIcon [field]=\"col.name\" />\r\n }\r\n </h4>\r\n </th>\r\n \r\n \r\n <th *ngIf=\"selectionMode === 'multiple'\" class=\"table-header-wrapper text-center table-action-title\" style=\"width: 6rem;\">\r\n <h4 class=\"flex align-items-center justify-content-center gap-2 table-header-title capitalize font-semibold m-0\">\r\n Select <span *ngIf=\"selection?.length\">\r\n ({{ selection.length }})\r\n </span>\r\n </h4>\r\n </th>\r\n \r\n <th\r\n *ngIf=\"showActions\"\r\n class=\"table-action-title table-header-wrapper\"\r\n [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-2'\"\r\n >\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\" class=\"p-0 border-none bg-none\">\r\n <div\r\n (click)=\"handleRowClick(rowData)\"\r\n [ngClass]=\"[\r\n rowData.rowNgClassExpression ? evaluateNgClass(rowData.rowNgClassExpression, rowData) : '',\r\n isRowSelected(rowData) ? 'row-selected' : '',\r\n selection?.includes(rowData) ? 'green-highlight' : ''\r\n ]\"\r\n class=\"table-body-wrapper table-row-card-wrapper\"\r\n >\r\n <div class=\"flex align-items-center\">\r\n <ng-container *ngFor=\"let col of table.headers; let j = index\">\r\n <div [ngClass]=\"rowData._columnWidths ? rowData._columnWidths[col.name] : col.width\">\r\n <div class=\"row-wrapprt flex align-items-center justify-content-start\">\r\n <ng-container [ngSwitch]=\"true\">\r\n <!--Render two lines with dynamic classes for any two-line column -->\r\n <ng-container *ngSwitchCase=\"col.isTwoLine\">\r\n <div class=\"w-full text-center\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <div class=\"row-multi-line-wrapper\" [ngClass]=\"col.line1NgClassExpression ? evaluateNgClass(col.line1NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.addressLine1 }}\r\n </div>\r\n <div class=\"row-multi-line-wrapper\" [ngClass]=\"col.line2NgClassExpression ? evaluateNgClass(col.line2NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.postCode }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"col.isShowProgressbar\">\r\n <circle-progress\r\n [percent]=\"75\"\r\n [maxPercent]=\"1000\"\r\n [toFixed]=\"0\"\r\n [radius]=\"60\"\r\n [space]=\"-10\"\r\n [backgroundPadding]=\"5\"\r\n [outerStrokeWidth]=\"10\"\r\n [outerStrokeColor]=\"'#0f8bfd'\"\r\n [outerStrokeGradient]=\"false\"\r\n [innerStrokeWidth]=\"10\"\r\n [showInnerStroke]=\"true\"\r\n [innerStrokeColor]=\"'#e5e7eb'\"\r\n [showTitle]=\"true\"\r\n [title]=\"rowData[col.name]\"\r\n [animateTitle]=\"false\"\r\n [showUnits]=\"false\"\r\n [showSubtitle]=\"false\"\r\n [showBackground]=\"false\"\r\n backgroundColor=\"transparent\"\r\n [backgroundStroke]=\" 'transparent'\"\r\n [backgroundOpacity]=\"1\"\r\n [backgroundGradient]=\"false\"\r\n backgroundGradientStopColor=\"transparent\"\r\n [clockwise]=\"true\"\r\n [startFromZero]=\"false\"\r\n [lazy]=\"true\"\r\n [animation]=\"true\"\r\n [animationDuration]=\"1000\"\r\n ></circle-progress>\r\n </ng-container>\r\n <!-- Default cell rendering for other columns -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper text-center p-0 flex align-items-center\"\r\n [ngClass]=\"[\r\n getRowClass(col, rowData),\r\n j === 0 ? 'justify-content-start' : 'justify-content-center'\r\n ]\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n >\r\n <i\r\n *ngIf=\"rowData[col.name]?.icon\"\r\n class=\"pi pr-2\"\r\n [ngClass]=\"[rowData[col.name].icon, rowData[col.name].iconClass]\"\r\n ></i>\r\n <div *ngIf=\"!col.skipParentNgClass\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"col.skipParentNgClass\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </ng-container>\r\n <ng-template #bubbleOrFallback>\r\n <ng-container *ngIf=\"isArray(rowData[col.name]) && rowData[col.name].length && rowData[col.name][0]?.initials\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngFor=\"let bubble of rowData[col.name]; let i = index\">\r\n <div \r\n [ngClass]=\"[\r\n col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, bubble) : '',\r\n 'border-2 border-white',\r\n bubble.isSeperateBubble && rowData[col.name].length > 1 ? 'mr-3' : (!bubble.isSeperateBubble && i !== 0 ? 'bubble-seperator-wrapper' : '')\r\n ]\"\r\n [ngStyle]=\"col.containerNgStyleExpression ? evaluateNgStyle(col.containerNgStyleExpression, bubble) : null\"\r\n >\r\n <span [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">{{ bubble.initials }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"shouldShowValue(col, rowData)\">\r\n <p class=\"mb-0\" [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name] }}\r\n </p>\r\n </ng-container>\r\n </ng-template>\r\n <div\r\n *ngIf=\"col.name === table.showDecriptionFor && rowData[table.descriptionColumnName]\"\r\n class=\"text-black-500 text-sm mt-1\"\r\n style=\"font-weight: 600;\"\r\n >\r\n {{ rowData[table.descriptionColumnName] }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox at end -->\r\n <div *ngIf=\"selectionMode === 'multiple'\" class=\"text-center table-body-wrapper\" style=\"width: 4rem\" (click)=\"$event.stopPropagation()\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"!enableSelection\"></p-tableCheckbox>\r\n </div>\r\n <!-- Actions -->\r\n <div *ngIf=\"showActions\" class=\"action-data-wrapper text-left table-body-wrapper\">\r\n <div *ngIf=\"(rowData.isRowDelete !== null || rowData.canDelete !== undefined) ? (showActions && rowData.isRowDelete) : showActions\" class=\"flex align-items-center justify-content-center\">\r\n <p-button\r\n icon=\"pi pi-trash\"\r\n (click)=\"deleteRow($event, rowData)\" \r\n class=\"delete-icon-wrapper mr-3\"\r\n [disabled]=\"!enableSelection\"\r\n ></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Empty Message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\"\r\n class=\"text-center text-color font-semibold p-4\"\r\n >\r\n {{ noRecordsMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n<!-- Paginator -->\r\n<div class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper\" *ngIf=\"usePagination\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ metaData.totalItems > 0 ? ((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10) + 1 : 0 }} to {{ recordNumber }} of {{ metaData?.totalItems ?? 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPageChange)=\"handleLoadRecords($event)\"\r\n ></p-paginator>\r\n</div> ", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:12px;font-weight:600;color:var(--text-color-tertiary)!important}.table-header-wrapper{padding:12px 14px}.table-body-wrapper{padding:14px}.table-row-card-wrapper:hover{border-width:3px!important}.column-style-wrapper{height:80px;margin-bottom:16px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;box-sizing:border-box;width:85%}.row-multi-line-wrapper{width:85%}.bubble-seperator-wrapper{margin-left:-12px}.applicant-red-badge-wrapper{background-color:var(--color-red-500)}.applicant-amber-badge-wrapper{background-color:var(--color-amber-500)}.applicant-success-badge-wrapper{background-color:var(--color-green-500)}.red-text-wrapper{color:var(--color-red-500)}.amber-text-wrapper{color:var(--color-amber-500)}.success-text-wrapper{color:var(--color-green-500)}.security-text-wrapper{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all}.record_username{color:#0f8bfd}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title,.header-text-wrapper,.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.verified-status{background-color:var(--green-500)}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}.DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}.Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}.Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Applicant,.ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}.OnBoarding,.PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}.Pending{background-color:var(--orange-300);padding:.3rem!important;border-radius:5px;color:#fff}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}.table-pagination-wrapper{border-radius:0 0 10px 10px}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .record_username{color:var(--primary-color)}::ng-deep .table-title-wrapper{font-size:20px;font-weight:700}::ng-deep .table-action-title,::ng-deep .header-text-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .table-action-title{border-radius:0 10px 0 0}::ng-deep .action-data-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .verified-status{background-color:var(--green-500)}::ng-deep .disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}::ng-deep .Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}::ng-deep .Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}::ng-deep .Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Applicant{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .OnBoarding{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-secondary-container .p-datatable-table{background-color:#fff;table-layout:fixed}::ng-deep .table-secondary-container .p-datatable-table .p-datatable-thead{background-color:var(--color-surface)}::ng-deep .table-secondary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-secondary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none}::ng-deep .table-secondary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-secondary-container tr:last-child td:last-child{border-radius:0 0 10px}::ng-deep .circle-progressbar-wrapper{height:60px;width:60px}.pending-badge-wrapper{background-color:#e5e7eb}:host ::ng-deep .p-checkbox-box.p-highlight{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}.green-highlight{background-color:var(--color-green-10)!important}:host ::ng-deep .p-checkbox-box.p-highlight .p-checkbox-icon{color:var(--color-surface-light)}:host ::ng-deep .p-checkbox-box:hover{border:1px solid #8a8ea6}:host ::ng-deep .p-checkbox-box.p-highlight:hover{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}@media screen and (min-width: 1200px) and (max-width: 1500px){.table-header-wrapper{padding:12px 8px;background-color:#fff}.table-body-wrapper{padding:8px}}.table-secondary-container .p-datatable-table{border-collapse:separate!important;border-spacing:50px!important;border-radius:10px}.table-secondary-container tr th{border:none!important}.border-round-full{border-radius:50%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i6$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i6$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i6$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i6$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3$3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i12.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "ngmodule", type: NgCircleProgressModule }, { kind: "component", type: i10.CircleProgressComponent, selector: "circle-progress", inputs: ["name", "class", "backgroundGradient", "backgroundColor", "backgroundGradientStopColor", "backgroundOpacity", "backgroundStroke", "backgroundStrokeWidth", "backgroundPadding", "radius", "space", "percent", "toFixed", "maxPercent", "renderOnClick", "units", "unitsFontSize", "unitsFontWeight", "unitsColor", "outerStrokeGradient", "outerStrokeWidth", "outerStrokeColor", "outerStrokeGradientStopColor", "outerStrokeLinecap", "innerStrokeColor", "innerStrokeWidth", "titleFormat", "title", "titleColor", "titleFontSize", "titleFontWeight", "subtitleFormat", "subtitle", "subtitleColor", "subtitleFontSize", "subtitleFontWeight", "imageSrc", "imageHeight", "imageWidth", "animation", "animateTitle", "animateSubtitle", "animationDuration", "showTitle", "showSubtitle", "showUnits", "showImage", "showBackground", "showInnerStroke", "clockwise", "responsive", "startFromZero", "showZeroOuterStroke", "lazy", "options"], outputs: ["onClick"] }] });
2556
2573
  }
2557
2574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: TableSecondaryComponent, decorators: [{
2558
2575
  type: Component,
2559
- args: [{ selector: 'lib-table-secondary', standalone: true, imports: [CommonModule, TableModule, ButtonModule, ToggleButtonModule, FormsModule, InputSwitchModule, InputTextModule, TooltipModule, PaginatorModule], template: " <p-table\r\n *ngIf=\"table && table.headers\"\r\n #dt2\r\n [lazy]=\"true\"\r\n (onSort)=\"onSort($event)\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [ngClass]=\"tableNgClassExpression ? evaluateNgClass(tableNgClassExpression, {}) : ''\"\r\n >\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th\r\n *ngFor=\"let col of table.headers; let i = index\"\r\n class=\"table-header-wrapper bg-white\"\r\n [pSortableColumn]=\"col.name\"\r\n [ngClass]=\"[col.width ? col.width : 'w-full', (!showActions && selectionMode !== 'multiple' && (i === table.headers.length - 1)) ? 'table-action-title' : '']\"\r\n style=\"min-width: 100px\"\r\n > \r\n <h4\r\n [ngClass]=\"[\r\n col.class || '', \r\n col.headerAlign === 'center' ? 'justify-content-center' : \r\n (col.headerAlign === 'right' ? 'justify-content-end' : 'justify-content-start')\r\n ]\"\r\n class=\"flex align-items-center table-header-title capitalize font-semibold m-0\">\r\n {{ col.displayName || col.name }}\r\n @if(table.isSortingAllow){\r\n <p-sortIcon [field]=\"col.name\" />\r\n }\r\n </h4>\r\n </th>\r\n \r\n \r\n <th *ngIf=\"selectionMode === 'multiple'\" class=\"table-header-wrapper text-center table-action-title\" style=\"width: 6rem;\">\r\n <h4 class=\"flex align-items-center justify-content-center gap-2 table-header-title capitalize font-semibold m-0\">\r\n Select <span *ngIf=\"selection?.length\">\r\n ({{ selection.length }})\r\n </span>\r\n </h4>\r\n </th>\r\n \r\n <th\r\n *ngIf=\"showActions\"\r\n class=\"table-action-title table-header-wrapper\"\r\n [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-2'\"\r\n >\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\" style=\"padding:0; border:none; background:none;\">\r\n <div\r\n (click)=\"handleRowClick(rowData)\"\r\n [ngClass]=\"[\r\n rowData.rowNgClassExpression ? evaluateNgClass(rowData.rowNgClassExpression, rowData) : '',\r\n isRowSelected(rowData) ? 'row-selected' : '',\r\n selection?.includes(rowData) ? 'green-highlight' : ''\r\n ]\"\r\n style=\"width: 100%; height: 80px;\"\r\n >\r\n <div class=\"flex align-items-center\">\r\n <ng-container *ngFor=\"let col of table.headers; let j = index\">\r\n <div [ngClass]=\"rowData._columnWidths ? rowData._columnWidths[col.name] : col.width\">\r\n <div class=\"row-wrapprt flex align-items-center justify-content-start\">\r\n <ng-container [ngSwitch]=\"col.isTwoLine\">\r\n <!--Render two lines with dynamic classes for any two-line column -->\r\n <ng-container *ngSwitchCase=\"true\">\r\n <div [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <div [ngClass]=\"col.line1NgClassExpression ? evaluateNgClass(col.line1NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.addressLine1 }}\r\n </div>\r\n <div [ngClass]=\"col.line2NgClassExpression ? evaluateNgClass(col.line2NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.postCode }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Default cell rendering for other columns -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper p-0 flex align-items-center\"\r\n [ngClass]=\"[\r\n getRowClass(col, rowData),\r\n col.align === 'center' ? 'justify-content-center' : \r\n (col.align === 'right' ? 'justify-content-end' : 'justify-content-start')\r\n ]\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n style=\"overflow: hidden; text-overflow: ellipsis; width:100%\"\r\n >\r\n <i\r\n *ngIf=\"rowData[col.name]?.icon\"\r\n class=\"pi pr-2\"\r\n [ngClass]=\"[rowData[col.name].icon, rowData[col.name].iconClass]\"\r\n ></i>\r\n <div *ngIf=\"!col.skipParentNgClass\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"col.skipParentNgClass\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </ng-container>\r\n <ng-template #bubbleOrFallback>\r\n <ng-container *ngIf=\"isArray(rowData[col.name]) && rowData[col.name].length && rowData[col.name][0]?.initials\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngFor=\"let bubble of rowData[col.name]; let i = index\">\r\n <div \r\n [ngClass]=\"[\r\n col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, bubble) : '',\r\n 'border-2 border-white',\r\n bubble.isSeperateBubble && rowData[col.name].length > 1 ? 'mr-3' : (!bubble.isSeperateBubble && i !== 0 ? 'bubble-seperator-wrapper' : '')\r\n ]\"\r\n [ngStyle]=\"col.containerNgStyleExpression ? evaluateNgStyle(col.containerNgStyleExpression, bubble) : null\"\r\n >\r\n <span [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">{{ bubble.initials }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"shouldShowValue(col, rowData)\">\r\n <p class=\"mb-0\" [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name] }}\r\n </p>\r\n </ng-container>\r\n </ng-template>\r\n <div\r\n *ngIf=\"col.name === table.showDecriptionFor && rowData[table.descriptionColumnName]\"\r\n class=\"text-black-500 text-sm mt-1\"\r\n style=\"font-weight: 600;\"\r\n >\r\n {{ rowData[table.descriptionColumnName] }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox at end -->\r\n <div *ngIf=\"selectionMode === 'multiple'\" class=\"text-center action-data-wrapper flex items-center justify-center px-4\" style=\"width: 4rem\" (click)=\"$event.stopPropagation()\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"!enableSelection\"></p-tableCheckbox>\r\n </div>\r\n <!-- Actions -->\r\n <div *ngIf=\"showActions\" class=\"action-data-wrapper text-left flex items-center justify-center px-4\">\r\n <div *ngIf=\"(rowData.isRowDelete !== null || rowData.canDelete !== undefined) ? (showActions && rowData.isRowDelete) : showActions\" class=\"flex align-items-center justify-content-center\">\r\n <p-button\r\n icon=\"pi pi-trash\"\r\n (click)=\"deleteRow($event, rowData)\" \r\n class=\"delete-icon-wrapper mr-3\"\r\n [disabled]=\"!enableSelection\"\r\n ></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Empty Message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\"\r\n class=\"text-center text-color font-semibold p-4\"\r\n >\r\n {{ noRecordsMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n<!-- Paginator -->\r\n<div class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper\" *ngIf=\"usePagination\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ metaData.totalItems > 0 ? ((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10) + 1 : 0 }} to {{ recordNumber }} of {{ metaData?.totalItems ?? 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPageChange)=\"handleLoadRecords($event)\"\r\n ></p-paginator>\r\n</div> ", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:12px;font-weight:600;color:var(--text-color-tertiary)!important}.table-header-wrapper{padding:12px 14px}.table-body-wrapper{padding:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:400%;padding:.5rem;box-sizing:border-box}.bubble-seperator-wrapper{margin-left:-12px}.applicant-red-badge-wrapper{background-color:var(--color-red-500)}.applicant-amber-badge-wrapper{background-color:var(--color-amber-500)}.applicant-success-badge-wrapper{background-color:var(--color-green-500)}.red-text-wrapper{color:var(--color-red-500)}.amber-text-wrapper{color:var(--color-amber-500)}.success-text-wrapper{color:var(--color-green-500)}.security-text-wrapper{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all}.record_username{color:#0f8bfd}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title,.header-text-wrapper,.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.verified-status{background-color:var(--green-500)}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}.DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}.Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}.Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Applicant,.ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}.OnBoarding,.PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}.Pending{background-color:var(--orange-300);padding:.3rem!important;border-radius:5px;color:#fff}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}.table-pagination-wrapper{border-radius:0 0 10px 10px}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .record_username{color:var(--primary-color)}::ng-deep .table-title-wrapper{font-size:20px;font-weight:700}::ng-deep .table-action-title,::ng-deep .header-text-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .table-action-title{border-radius:0 10px 0 0}::ng-deep .action-data-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .verified-status{background-color:var(--green-500)}::ng-deep .disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}::ng-deep .Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}::ng-deep .Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}::ng-deep .Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Applicant{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .OnBoarding{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-secondary-container .p-datatable-table{background-color:#fff;table-layout:fixed}::ng-deep .table-secondary-container .p-datatable-table .p-datatable-thead{background-color:var(--color-surface)}::ng-deep .table-secondary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-secondary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none}::ng-deep .table-secondary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-secondary-container tr:last-child td:last-child{border-radius:0 0 10px}:host ::ng-deep .p-checkbox-box.p-highlight{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}.green-highlight{background-color:var(--color-green-10)!important}:host ::ng-deep .p-checkbox-box.p-highlight .p-checkbox-icon{color:var(--color-surface-light)}:host ::ng-deep .p-checkbox-box:hover{background-color:var(--color-surface-light)!important;border:1px solid var(--text-black)!important}:host ::ng-deep .p-checkbox-box.p-highlight:hover{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}@media screen and (min-width: 1200px) and (max-width: 1500px){.table-header-wrapper{padding:12px 8px;background-color:#fff}.table-body-wrapper{padding:8px}}.table-secondary-container .p-datatable-table{border-collapse:separate!important;border-spacing:50px!important;border-radius:10px}.table-secondary-container tr th{border:none!important}.border-round-full{border-radius:50%!important}\n"] }]
2576
+ args: [{ selector: 'lib-table-secondary', standalone: true, imports: [CommonModule, TableModule, ButtonModule, ToggleButtonModule, FormsModule, InputSwitchModule, InputTextModule, TooltipModule, PaginatorModule, NgCircleProgressModule], template: " <p-table\r\n *ngIf=\"table && table.headers\"\r\n #dt2\r\n [lazy]=\"true\"\r\n (onSort)=\"onSort($event)\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [ngClass]=\"tableNgClassExpression ? evaluateNgClass(tableNgClassExpression, {}) : ''\"\r\n >\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th\r\n *ngFor=\"let col of table.headers; let i = index\"\r\n class=\"table-header-wrapper bg-white\"\r\n [pSortableColumn]=\"col.name\"\r\n [ngClass]=\"[col.width ? col.width : 'w-full', (!showActions && selectionMode !== 'multiple' && (i === table.headers.length - 1)) ? 'table-action-title' : '']\"\r\n style=\"min-width: 100px\"\r\n > \r\n <h4\r\n [ngClass]=\"[\r\n col.class || '', \r\n i === 0 ? 'justify-content-start' : 'justify-content-center'\r\n ]\"\r\n class=\"flex align-items-center table-header-title text-center capitalize font-semibold m-0\">\r\n {{ col.displayName || col.name }}\r\n @if(table.isSortingAllow && col.isShowSortIcon){\r\n <p-sortIcon [field]=\"col.name\" />\r\n }\r\n </h4>\r\n </th>\r\n \r\n \r\n <th *ngIf=\"selectionMode === 'multiple'\" class=\"table-header-wrapper text-center table-action-title\" style=\"width: 6rem;\">\r\n <h4 class=\"flex align-items-center justify-content-center gap-2 table-header-title capitalize font-semibold m-0\">\r\n Select <span *ngIf=\"selection?.length\">\r\n ({{ selection.length }})\r\n </span>\r\n </h4>\r\n </th>\r\n \r\n <th\r\n *ngIf=\"showActions\"\r\n class=\"table-action-title table-header-wrapper\"\r\n [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-2'\"\r\n >\r\n </th>\r\n \r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\" class=\"p-0 border-none bg-none\">\r\n <div\r\n (click)=\"handleRowClick(rowData)\"\r\n [ngClass]=\"[\r\n rowData.rowNgClassExpression ? evaluateNgClass(rowData.rowNgClassExpression, rowData) : '',\r\n isRowSelected(rowData) ? 'row-selected' : '',\r\n selection?.includes(rowData) ? 'green-highlight' : ''\r\n ]\"\r\n class=\"table-body-wrapper table-row-card-wrapper\"\r\n >\r\n <div class=\"flex align-items-center\">\r\n <ng-container *ngFor=\"let col of table.headers; let j = index\">\r\n <div [ngClass]=\"rowData._columnWidths ? rowData._columnWidths[col.name] : col.width\">\r\n <div class=\"row-wrapprt flex align-items-center justify-content-start\">\r\n <ng-container [ngSwitch]=\"true\">\r\n <!--Render two lines with dynamic classes for any two-line column -->\r\n <ng-container *ngSwitchCase=\"col.isTwoLine\">\r\n <div class=\"w-full text-center\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <div class=\"row-multi-line-wrapper\" [ngClass]=\"col.line1NgClassExpression ? evaluateNgClass(col.line1NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.addressLine1 }}\r\n </div>\r\n <div class=\"row-multi-line-wrapper\" [ngClass]=\"col.line2NgClassExpression ? evaluateNgClass(col.line2NgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name]?.postCode }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"col.isShowProgressbar\">\r\n <circle-progress\r\n [percent]=\"75\"\r\n [maxPercent]=\"1000\"\r\n [toFixed]=\"0\"\r\n [radius]=\"60\"\r\n [space]=\"-10\"\r\n [backgroundPadding]=\"5\"\r\n [outerStrokeWidth]=\"10\"\r\n [outerStrokeColor]=\"'#0f8bfd'\"\r\n [outerStrokeGradient]=\"false\"\r\n [innerStrokeWidth]=\"10\"\r\n [showInnerStroke]=\"true\"\r\n [innerStrokeColor]=\"'#e5e7eb'\"\r\n [showTitle]=\"true\"\r\n [title]=\"rowData[col.name]\"\r\n [animateTitle]=\"false\"\r\n [showUnits]=\"false\"\r\n [showSubtitle]=\"false\"\r\n [showBackground]=\"false\"\r\n backgroundColor=\"transparent\"\r\n [backgroundStroke]=\" 'transparent'\"\r\n [backgroundOpacity]=\"1\"\r\n [backgroundGradient]=\"false\"\r\n backgroundGradientStopColor=\"transparent\"\r\n [clockwise]=\"true\"\r\n [startFromZero]=\"false\"\r\n [lazy]=\"true\"\r\n [animation]=\"true\"\r\n [animationDuration]=\"1000\"\r\n ></circle-progress>\r\n </ng-container>\r\n <!-- Default cell rendering for other columns -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper text-center p-0 flex align-items-center\"\r\n [ngClass]=\"[\r\n getRowClass(col, rowData),\r\n j === 0 ? 'justify-content-start' : 'justify-content-center'\r\n ]\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n >\r\n <i\r\n *ngIf=\"rowData[col.name]?.icon\"\r\n class=\"pi pr-2\"\r\n [ngClass]=\"[rowData[col.name].icon, rowData[col.name].iconClass]\"\r\n ></i>\r\n <div *ngIf=\"!col.skipParentNgClass\" [ngClass]=\"col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, rowData) : ''\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </div>\r\n <ng-container *ngIf=\"col.skipParentNgClass\">\r\n <ng-container *ngTemplateOutlet=\"bubbleOrFallback\"></ng-container>\r\n </ng-container>\r\n <ng-template #bubbleOrFallback>\r\n <ng-container *ngIf=\"isArray(rowData[col.name]) && rowData[col.name].length && rowData[col.name][0]?.initials\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngFor=\"let bubble of rowData[col.name]; let i = index\">\r\n <div \r\n [ngClass]=\"[\r\n col.containerNgClassExpression ? evaluateNgClass(col.containerNgClassExpression, bubble) : '',\r\n 'border-2 border-white',\r\n bubble.isSeperateBubble && rowData[col.name].length > 1 ? 'mr-3' : (!bubble.isSeperateBubble && i !== 0 ? 'bubble-seperator-wrapper' : '')\r\n ]\"\r\n [ngStyle]=\"col.containerNgStyleExpression ? evaluateNgStyle(col.containerNgStyleExpression, bubble) : null\"\r\n >\r\n <span [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">{{ bubble.initials }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"shouldShowValue(col, rowData)\">\r\n <p class=\"mb-0\" [ngClass]=\"col.textNgClassExpression ? evaluateNgClass(col.textNgClassExpression, rowData) : ''\">\r\n {{ rowData[col.name] }}\r\n </p>\r\n </ng-container>\r\n </ng-template>\r\n <div\r\n *ngIf=\"col.name === table.showDecriptionFor && rowData[table.descriptionColumnName]\"\r\n class=\"text-black-500 text-sm mt-1\"\r\n style=\"font-weight: 600;\"\r\n >\r\n {{ rowData[table.descriptionColumnName] }}\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox at end -->\r\n <div *ngIf=\"selectionMode === 'multiple'\" class=\"text-center table-body-wrapper\" style=\"width: 4rem\" (click)=\"$event.stopPropagation()\">\r\n <p-tableCheckbox [value]=\"rowData\" [disabled]=\"!enableSelection\"></p-tableCheckbox>\r\n </div>\r\n <!-- Actions -->\r\n <div *ngIf=\"showActions\" class=\"action-data-wrapper text-left table-body-wrapper\">\r\n <div *ngIf=\"(rowData.isRowDelete !== null || rowData.canDelete !== undefined) ? (showActions && rowData.isRowDelete) : showActions\" class=\"flex align-items-center justify-content-center\">\r\n <p-button\r\n icon=\"pi pi-trash\"\r\n (click)=\"deleteRow($event, rowData)\" \r\n class=\"delete-icon-wrapper mr-3\"\r\n [disabled]=\"!enableSelection\"\r\n ></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n \r\n <!-- Empty Message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td\r\n [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0) + (selectionMode === 'multiple' ? 1 : 0)\"\r\n class=\"text-center text-color font-semibold p-4\"\r\n >\r\n {{ noRecordsMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n<!-- Paginator -->\r\n<div class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper\" *ngIf=\"usePagination\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ metaData.totalItems > 0 ? ((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10) + 1 : 0 }} to {{ recordNumber }} of {{ metaData?.totalItems ?? 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [first]=\"((metaData?.currentPage ?? 1) - 1) * (metaData?.itemsPerPage ?? 10)\"\r\n [rows]=\"metaData?.itemsPerPage ?? 10\"\r\n [totalRecords]=\"metaData?.totalItems ?? 0\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPageChange)=\"handleLoadRecords($event)\"\r\n ></p-paginator>\r\n</div> ", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:12px;font-weight:600;color:var(--text-color-tertiary)!important}.table-header-wrapper{padding:12px 14px}.table-body-wrapper{padding:14px}.table-row-card-wrapper:hover{border-width:3px!important}.column-style-wrapper{height:80px;margin-bottom:16px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;box-sizing:border-box;width:85%}.row-multi-line-wrapper{width:85%}.bubble-seperator-wrapper{margin-left:-12px}.applicant-red-badge-wrapper{background-color:var(--color-red-500)}.applicant-amber-badge-wrapper{background-color:var(--color-amber-500)}.applicant-success-badge-wrapper{background-color:var(--color-green-500)}.red-text-wrapper{color:var(--color-red-500)}.amber-text-wrapper{color:var(--color-amber-500)}.success-text-wrapper{color:var(--color-green-500)}.security-text-wrapper{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all}.record_username{color:#0f8bfd}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title,.header-text-wrapper,.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.verified-status{background-color:var(--green-500)}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}.DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}.Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}.Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Applicant,.ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}.OnBoarding,.PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}.Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}.Pending{background-color:var(--orange-300);padding:.3rem!important;border-radius:5px;color:#fff}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}.table-pagination-wrapper{border-radius:0 0 10px 10px}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .record_username{color:var(--primary-color)}::ng-deep .table-title-wrapper{font-size:20px;font-weight:700}::ng-deep .table-action-title,::ng-deep .header-text-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .table-action-title{border-radius:0 10px 0 0}::ng-deep .action-data-wrapper{border-right:1px solid var(--primary-border-color)!important}::ng-deep .enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .verified-status{background-color:var(--green-500)}::ng-deep .disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}::ng-deep .search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}::ng-deep .Verified{background-color:var(--green-400);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .DirectDebitDetails{background-color:#b2eaf2;padding:.3rem!important;border-radius:5px;color:#00bcd4}::ng-deep .Application{background-color:#4caf501a;padding:.3rem!important;border-radius:5px;color:#4caf50}::ng-deep .Property{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Applicant{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .ApplicationNote{background-color:#f6a5c0;padding:.3rem!important;border-radius:5px;color:#e91e63}::ng-deep .OnBoarding{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .PropertyDetails{background-color:#d8dcf0;padding:.3rem!important;border-radius:5px;color:#3f51b5}::ng-deep .Alert{background-color:var(--red-500);padding:.3rem!important;border-radius:5px;color:#fff}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-secondary-container .p-datatable-table{background-color:#fff;table-layout:fixed}::ng-deep .table-secondary-container .p-datatable-table .p-datatable-thead{background-color:var(--color-surface)}::ng-deep .table-secondary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-secondary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none}::ng-deep .table-secondary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-secondary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-secondary-container tr:last-child td:last-child{border-radius:0 0 10px}::ng-deep .circle-progressbar-wrapper{height:60px;width:60px}.pending-badge-wrapper{background-color:#e5e7eb}:host ::ng-deep .p-checkbox-box.p-highlight{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}.green-highlight{background-color:var(--color-green-10)!important}:host ::ng-deep .p-checkbox-box.p-highlight .p-checkbox-icon{color:var(--color-surface-light)}:host ::ng-deep .p-checkbox-box:hover{border:1px solid #8a8ea6}:host ::ng-deep .p-checkbox-box.p-highlight:hover{background-color:var(--color-green-500)!important;border-color:var(--color-green-500)!important}@media screen and (min-width: 1200px) and (max-width: 1500px){.table-header-wrapper{padding:12px 8px;background-color:#fff}.table-body-wrapper{padding:8px}}.table-secondary-container .p-datatable-table{border-collapse:separate!important;border-spacing:50px!important;border-radius:10px}.table-secondary-container tr th{border:none!important}.border-round-full{border-radius:50%!important}\n"] }]
2560
2577
  }], ctorParameters: () => [{ type: i3$4.Router }, { type: BaseService }, { type: i3$4.ActivatedRoute }, { type: BaseQuery }, { type: BaseStore }], propDecorators: { table: [{
2561
2578
  type: Input
2562
2579
  }], metaData: [{
@@ -5910,6 +5927,22 @@ class QueueRecordTableBuilderService extends TableBuilder {
5910
5927
  }
5911
5928
  record[field] = cellValue;
5912
5929
  });
5930
+ //---------------------will remove this code and index in params later----code start---------////////
5931
+ // Inject dummy tasks data for first 5 records only
5932
+ // const dummyTasks = ['0/0', '5/0', '0/5', '1/6', '1/4', '1/13'];
5933
+ // if (index < 5) {
5934
+ // record.tasks = dummyTasks[index];
5935
+ // }
5936
+ // const dummytaskCompletionPercent = [100, 0, 100, 14.29, 20, 7.14];
5937
+ // if (index < 5) {
5938
+ // record.taskCompletionPercent = dummytaskCompletionPercent[index];
5939
+ // }
5940
+ // const dummyPeding = ['100 days', '10 days', '98 days', '53 days', '75 days', '14 days'];
5941
+ // if (index < 5) {
5942
+ // record.pending = dummyPeding[index];
5943
+ // }
5944
+ //---------------------will remove this code and index in params later----code end---------////////
5945
+ // console.log("-------record", record);
5913
5946
  // Attach row-level ngClass expression for dynamic row styling
5914
5947
  const rowStyles$1 = rowStyles;
5915
5948
  if (rowStyles$1 && rowStyles$1.ngClass) {
@@ -5926,6 +5959,8 @@ class QueueRecordTableBuilderService extends TableBuilder {
5926
5959
  if (field === SHARED.SECURITY_ADDRESS) {
5927
5960
  header.isTwoLine = true;
5928
5961
  }
5962
+ if (field === SHARED.TASKS)
5963
+ header.isShowProgressbar = true;
5929
5964
  if (field === SHARED.APPLICANTS) {
5930
5965
  header.skipParentNgClass = true;
5931
5966
  }
@@ -5938,6 +5973,9 @@ class QueueRecordTableBuilderService extends TableBuilder {
5938
5973
  if (this.columnStyles[field].containerNgStyle) {
5939
5974
  header.containerNgStyleExpression = this.columnStyles[field].containerNgStyle;
5940
5975
  }
5976
+ if (this.columnStyles[field].isShowSortIcon) {
5977
+ header.isShowSortIcon = this.columnStyles[field].isShowSortIcon;
5978
+ }
5941
5979
  if (this.columnStyles[field].textNgClass) {
5942
5980
  header.textNgClassExpression = this.columnStyles[field].textNgClass;
5943
5981
  }
@@ -6045,11 +6083,11 @@ class QueueItemComponent {
6045
6083
  return queueId === this.selectedQueueId;
6046
6084
  }
6047
6085
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6048
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: QueueItemComponent, isStandalone: false, selector: "app-queue-item", inputs: { filteredQueueData: "filteredQueueData", selectedQueueId: "selectedQueueId", selectedStatus: "selectedStatus", userRole: "userRole", showQueueDataForm: "showQueueDataForm" }, outputs: { queueSelected: "queueSelected", statusChanged: "statusChanged", insertQueueRequested: "insertQueueRequested" }, ngImport: i0, template: "<div class=\"card p-4 pt-3 mb-0\">\r\n <div class=\"filterContainer\">\r\n <select class=\"filter-dropdown left-filter\" (change)=\"onStatusChange($event)\">\r\n <option value=\"All\">All</option>\r\n <option value=\"inactive\">In-active</option>\r\n <option value=\"active\" selected>Active</option>\r\n </select>\r\n </div>\r\n <div class=\"queues overflow-x-hidden queue-item-wrapper\">\r\n @for(queue of filteredQueueData; let i = $index; track queue){\r\n\r\n <div class=\"flex m-0 kanban-list\" [ngClass]=\"{'mt-2 pt-1': i !== 0}\" #listEl style=\"min-height:2rem\" (click)=\"onQueueClick(queue._id)\" >\r\n <div class=\"flex align-items-center p-0 w-full\">\r\n <div class=\"py-4 px-3 cursor-pointer w-full\" [ngClass]=\"{\r\n 'active-queue-wrapper': isQueueSelected(queue._id),\r\n 'inActiveQueue': !isQueueActive(queue),\r\n 'queue-list-wrapper': isQueueActive(queue)\r\n }\"\r\n >\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': isQueueSelected(queue._id)}\"\r\n >{{queue.name}}</span>\r\n <div class=\"elipsesWithCount flex align-items-center\">\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" [ngClass]=\"{\r\n 'inActiveBadgeColor': !isQueueActive(queue),\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <button *ngIf=\"userRole\" (click)=\"onInsertQueue()\" class=\"btn btn-primary mt-3\">\r\n Add Queue\r\n </button>\r\n </div> ", styles: [".card{height:100%}.custom-scroll{height:calc(100% - 112px);overflow-y:hidden}.custom-scroll:hover{overflow-y:auto;scroll-behavior:smooth}.queue-list-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.18);background:var(--surface-0)}.active-queue-wrapper{border:1px solid #0f8bfd}.active-title-wrapper{color:#0f8bfd!important}.ellipsis-icon-wrapper{width:6px}.queue-name{max-width:70%;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.inactive-queue-wrapper{margin-left:20px}.create-button{border-radius:8px!important;border:2px solid transparent;border-image:repeating-linear-gradient(45deg,#676b89,#676b89 10px,transparent 10px,transparent 20px) 1;background:linear-gradient(0deg,#7f899e30 0% 100%),#fff;color:#0a061a;gap:8px;font-family:inherit;font-size:14px;font-weight:400;-webkit-mask:linear-gradient(#fff 0 0)}.create-button:hover{background-color:var(--blue-100)}.filter-dropdown{padding:.4rem .6rem;border:1px solid rgba(15,139,253,.1);border-radius:4px;background-color:#f0f8ff;color:var(--text-color);cursor:pointer}.filterContainer{display:flex;justify-content:end;margin-bottom:15px}.inActiveQueue{background-color:#7f899e30;border:2px solid #676b89;border-radius:8px;color:#0a061a;font-family:inherit;font-size:14px;font-weight:400}.inActiveBadgeColor ::ng-deep .p-badge{background:#0a061a!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i3$5.Badge, selector: "p-badge", inputs: ["styleClass", "style", "badgeSize", "severity", "value", "badgeDisabled", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6086
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: QueueItemComponent, isStandalone: false, selector: "app-queue-item", inputs: { filteredQueueData: "filteredQueueData", selectedQueueId: "selectedQueueId", selectedStatus: "selectedStatus", userRole: "userRole", showQueueDataForm: "showQueueDataForm" }, outputs: { queueSelected: "queueSelected", statusChanged: "statusChanged", insertQueueRequested: "insertQueueRequested" }, ngImport: i0, template: "<div class=\"card p-4 pt-3 mb-0\">\r\n <div class=\"queues overflow-x-hidden queue-item-wrapper\">\r\n @for(queue of filteredQueueData; let i = $index; track queue){\r\n\r\n <div class=\"flex m-0 kanban-list\" [ngClass]=\"{'mt-2 pt-1': i !== 0}\" #listEl style=\"min-height:2rem\" (click)=\"onQueueClick(queue._id)\" >\r\n <div class=\"flex align-items-center p-0 w-full\">\r\n <div class=\"py-4 px-3 cursor-pointer w-full\" [ngClass]=\"{\r\n 'active-queue-wrapper': isQueueSelected(queue._id),\r\n 'inActiveQueue': !isQueueActive(queue),\r\n 'queue-list-wrapper': isQueueActive(queue)\r\n }\"\r\n >\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': isQueueSelected(queue._id)}\"\r\n >{{queue.name}}</span>\r\n <div class=\"elipsesWithCount flex align-items-center\">\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" [ngClass]=\"{\r\n 'inActiveBadgeColor': !isQueueActive(queue),\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <button *ngIf=\"userRole\" (click)=\"onInsertQueue()\" class=\"btn btn-primary mt-3\">\r\n Add Queue\r\n </button>\r\n </div> ", styles: [".card{height:100%}.custom-scroll{height:calc(100% - 112px);overflow-y:hidden}.custom-scroll:hover{overflow-y:auto;scroll-behavior:smooth}.queue-list-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.18);background:var(--surface-0)}.active-queue-wrapper{border:1px solid #0f8bfd}.active-title-wrapper{color:#0f8bfd!important}.ellipsis-icon-wrapper{width:6px}.queue-name{max-width:70%;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.inactive-queue-wrapper{margin-left:20px}.create-button{border-radius:8px!important;border:2px solid transparent;border-image:repeating-linear-gradient(45deg,#676b89,#676b89 10px,transparent 10px,transparent 20px) 1;background:linear-gradient(0deg,#7f899e30 0% 100%),#fff;color:#0a061a;gap:8px;font-family:inherit;font-size:14px;font-weight:400;-webkit-mask:linear-gradient(#fff 0 0)}.create-button:hover{background-color:var(--blue-100)}.filter-dropdown{padding:.4rem .6rem;border:1px solid rgba(15,139,253,.1);border-radius:4px;background-color:#f0f8ff;color:var(--text-color);cursor:pointer}.filterContainer{display:flex;justify-content:end;margin-bottom:15px}.inActiveQueue{background-color:#7f899e30;border:2px solid #676b89;border-radius:8px;color:#0a061a;font-family:inherit;font-size:14px;font-weight:400}.inActiveBadgeColor ::ng-deep .p-badge{background:#0a061a!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$5.Badge, selector: "p-badge", inputs: ["styleClass", "style", "badgeSize", "severity", "value", "badgeDisabled", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6049
6087
  }
6050
6088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueItemComponent, decorators: [{
6051
6089
  type: Component,
6052
- args: [{ selector: 'app-queue-item', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card p-4 pt-3 mb-0\">\r\n <div class=\"filterContainer\">\r\n <select class=\"filter-dropdown left-filter\" (change)=\"onStatusChange($event)\">\r\n <option value=\"All\">All</option>\r\n <option value=\"inactive\">In-active</option>\r\n <option value=\"active\" selected>Active</option>\r\n </select>\r\n </div>\r\n <div class=\"queues overflow-x-hidden queue-item-wrapper\">\r\n @for(queue of filteredQueueData; let i = $index; track queue){\r\n\r\n <div class=\"flex m-0 kanban-list\" [ngClass]=\"{'mt-2 pt-1': i !== 0}\" #listEl style=\"min-height:2rem\" (click)=\"onQueueClick(queue._id)\" >\r\n <div class=\"flex align-items-center p-0 w-full\">\r\n <div class=\"py-4 px-3 cursor-pointer w-full\" [ngClass]=\"{\r\n 'active-queue-wrapper': isQueueSelected(queue._id),\r\n 'inActiveQueue': !isQueueActive(queue),\r\n 'queue-list-wrapper': isQueueActive(queue)\r\n }\"\r\n >\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': isQueueSelected(queue._id)}\"\r\n >{{queue.name}}</span>\r\n <div class=\"elipsesWithCount flex align-items-center\">\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" [ngClass]=\"{\r\n 'inActiveBadgeColor': !isQueueActive(queue),\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <button *ngIf=\"userRole\" (click)=\"onInsertQueue()\" class=\"btn btn-primary mt-3\">\r\n Add Queue\r\n </button>\r\n </div> ", styles: [".card{height:100%}.custom-scroll{height:calc(100% - 112px);overflow-y:hidden}.custom-scroll:hover{overflow-y:auto;scroll-behavior:smooth}.queue-list-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.18);background:var(--surface-0)}.active-queue-wrapper{border:1px solid #0f8bfd}.active-title-wrapper{color:#0f8bfd!important}.ellipsis-icon-wrapper{width:6px}.queue-name{max-width:70%;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.inactive-queue-wrapper{margin-left:20px}.create-button{border-radius:8px!important;border:2px solid transparent;border-image:repeating-linear-gradient(45deg,#676b89,#676b89 10px,transparent 10px,transparent 20px) 1;background:linear-gradient(0deg,#7f899e30 0% 100%),#fff;color:#0a061a;gap:8px;font-family:inherit;font-size:14px;font-weight:400;-webkit-mask:linear-gradient(#fff 0 0)}.create-button:hover{background-color:var(--blue-100)}.filter-dropdown{padding:.4rem .6rem;border:1px solid rgba(15,139,253,.1);border-radius:4px;background-color:#f0f8ff;color:var(--text-color);cursor:pointer}.filterContainer{display:flex;justify-content:end;margin-bottom:15px}.inActiveQueue{background-color:#7f899e30;border:2px solid #676b89;border-radius:8px;color:#0a061a;font-family:inherit;font-size:14px;font-weight:400}.inActiveBadgeColor ::ng-deep .p-badge{background:#0a061a!important}\n"] }]
6090
+ args: [{ selector: 'app-queue-item', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card p-4 pt-3 mb-0\">\r\n <div class=\"queues overflow-x-hidden queue-item-wrapper\">\r\n @for(queue of filteredQueueData; let i = $index; track queue){\r\n\r\n <div class=\"flex m-0 kanban-list\" [ngClass]=\"{'mt-2 pt-1': i !== 0}\" #listEl style=\"min-height:2rem\" (click)=\"onQueueClick(queue._id)\" >\r\n <div class=\"flex align-items-center p-0 w-full\">\r\n <div class=\"py-4 px-3 cursor-pointer w-full\" [ngClass]=\"{\r\n 'active-queue-wrapper': isQueueSelected(queue._id),\r\n 'inActiveQueue': !isQueueActive(queue),\r\n 'queue-list-wrapper': isQueueActive(queue)\r\n }\"\r\n >\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': isQueueSelected(queue._id)}\"\r\n >{{queue.name}}</span>\r\n <div class=\"elipsesWithCount flex align-items-center\">\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" [ngClass]=\"{\r\n 'inActiveBadgeColor': !isQueueActive(queue),\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <button *ngIf=\"userRole\" (click)=\"onInsertQueue()\" class=\"btn btn-primary mt-3\">\r\n Add Queue\r\n </button>\r\n </div> ", styles: [".card{height:100%}.custom-scroll{height:calc(100% - 112px);overflow-y:hidden}.custom-scroll:hover{overflow-y:auto;scroll-behavior:smooth}.queue-list-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.18);background:var(--surface-0)}.active-queue-wrapper{border:1px solid #0f8bfd}.active-title-wrapper{color:#0f8bfd!important}.ellipsis-icon-wrapper{width:6px}.queue-name{max-width:70%;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.inactive-queue-wrapper{margin-left:20px}.create-button{border-radius:8px!important;border:2px solid transparent;border-image:repeating-linear-gradient(45deg,#676b89,#676b89 10px,transparent 10px,transparent 20px) 1;background:linear-gradient(0deg,#7f899e30 0% 100%),#fff;color:#0a061a;gap:8px;font-family:inherit;font-size:14px;font-weight:400;-webkit-mask:linear-gradient(#fff 0 0)}.create-button:hover{background-color:var(--blue-100)}.filter-dropdown{padding:.4rem .6rem;border:1px solid rgba(15,139,253,.1);border-radius:4px;background-color:#f0f8ff;color:var(--text-color);cursor:pointer}.filterContainer{display:flex;justify-content:end;margin-bottom:15px}.inActiveQueue{background-color:#7f899e30;border:2px solid #676b89;border-radius:8px;color:#0a061a;font-family:inherit;font-size:14px;font-weight:400}.inActiveBadgeColor ::ng-deep .p-badge{background:#0a061a!important}\n"] }]
6053
6091
  }], propDecorators: { filteredQueueData: [{
6054
6092
  type: Input
6055
6093
  }], selectedQueueId: [{
@@ -6156,11 +6194,11 @@ class QueueRecordTableComponent {
6156
6194
  return this.selectedRows?.length || 0;
6157
6195
  }
6158
6196
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueRecordTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6159
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: QueueRecordTableComponent, isStandalone: false, selector: "app-queue-record-table", inputs: { table: "table", metaData: "metaData", loading: "loading", selectedRows: "selectedRows", resetSort: "resetSort" }, outputs: { selectionChange: "selectionChange", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick", paginationChanged: "paginationChanged", filterApplied: "filterApplied", sortApplied: "sortApplied" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bg-white p-4 border-round-xl\">\r\n <lib-table-secondary \r\n *ngIf=\"table && table.headers\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [noRecordsMessage]=\"'No Records Found'\"\r\n (onPage)=\"onPaginationChange($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelectionChange)=\"onRowClick($event)\"\r\n (sortChanged)=\"onSort($event)\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n </lib-table-secondary>\r\n</div>", styles: [".queue-record-table-wrapper{height:100%;display:flex;flex-direction:column}.queue-record-table-wrapper .table-container{flex:1;overflow:hidden}.queue-record-table-wrapper .pagination-container{margin-top:1rem;padding:.5rem}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}@media screen and (max-width: 768px){.queue-record-table-wrapper .pagination-container{flex-direction:column;gap:.5rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableSecondaryComponent, selector: "lib-table-secondary", inputs: ["table", "metaData", "title", "builder", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton", "pathName", "selectionMode", "selection", "usePagination", "scrollHeight", "rowSelection", "enableSelection", "noRecordsMessage", "sortField", "sortOrder", "searchTerm", "filterQuery"], outputs: ["selectionChange", "rowSelectionChange", "sortChanged", "onDeleteRow", "onPage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: QueueRecordTableComponent, isStandalone: false, selector: "app-queue-record-table", inputs: { table: "table", metaData: "metaData", loading: "loading", selectedRows: "selectedRows", resetSort: "resetSort" }, outputs: { selectionChange: "selectionChange", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick", paginationChanged: "paginationChanged", filterApplied: "filterApplied", sortApplied: "sortApplied" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bg-white queue-table-wrapper border-round-xl\">\r\n <lib-table-secondary \r\n *ngIf=\"table && table.headers\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [noRecordsMessage]=\"'No Records Found'\"\r\n (onPage)=\"onPaginationChange($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelectionChange)=\"onRowClick($event)\"\r\n (sortChanged)=\"onSort($event)\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n </lib-table-secondary>\r\n</div>", styles: [".queue-record-table-wrapper{height:100%;display:flex;flex-direction:column}.queue-record-table-wrapper .table-container{flex:1;overflow:hidden}.queue-record-table-wrapper .pagination-container{margin-top:1rem;padding:.5rem}.queue-table-wrapper{padding:18px}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}@media screen and (max-width: 768px){.queue-record-table-wrapper .pagination-container{flex-direction:column;gap:.5rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TableSecondaryComponent, selector: "lib-table-secondary", inputs: ["table", "metaData", "title", "builder", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton", "pathName", "selectionMode", "selection", "usePagination", "scrollHeight", "rowSelection", "enableSelection", "noRecordsMessage", "sortField", "sortOrder", "searchTerm", "filterQuery"], outputs: ["selectionChange", "rowSelectionChange", "sortChanged", "onDeleteRow", "onPage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6160
6198
  }
6161
6199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueRecordTableComponent, decorators: [{
6162
6200
  type: Component,
6163
- args: [{ selector: 'app-queue-record-table', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bg-white p-4 border-round-xl\">\r\n <lib-table-secondary \r\n *ngIf=\"table && table.headers\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [noRecordsMessage]=\"'No Records Found'\"\r\n (onPage)=\"onPaginationChange($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelectionChange)=\"onRowClick($event)\"\r\n (sortChanged)=\"onSort($event)\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n </lib-table-secondary>\r\n</div>", styles: [".queue-record-table-wrapper{height:100%;display:flex;flex-direction:column}.queue-record-table-wrapper .table-container{flex:1;overflow:hidden}.queue-record-table-wrapper .pagination-container{margin-top:1rem;padding:.5rem}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}@media screen and (max-width: 768px){.queue-record-table-wrapper .pagination-container{flex-direction:column;gap:.5rem}}\n"] }]
6201
+ args: [{ selector: 'app-queue-record-table', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bg-white queue-table-wrapper border-round-xl\">\r\n <lib-table-secondary \r\n *ngIf=\"table && table.headers\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [noRecordsMessage]=\"'No Records Found'\"\r\n (onPage)=\"onPaginationChange($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelectionChange)=\"onRowClick($event)\"\r\n (sortChanged)=\"onSort($event)\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\">\r\n </lib-table-secondary>\r\n</div>", styles: [".queue-record-table-wrapper{height:100%;display:flex;flex-direction:column}.queue-record-table-wrapper .table-container{flex:1;overflow:hidden}.queue-record-table-wrapper .pagination-container{margin-top:1rem;padding:.5rem}.queue-table-wrapper{padding:18px}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}@media screen and (max-width: 768px){.queue-record-table-wrapper .pagination-container{flex-direction:column;gap:.5rem}}\n"] }]
6164
6202
  }], propDecorators: { table: [{
6165
6203
  type: Input
6166
6204
  }], metaData: [{
@@ -6292,11 +6330,11 @@ class QueueFilterDropdownComponent {
6292
6330
  }
6293
6331
  }
6294
6332
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueFilterDropdownComponent, deps: [{ token: QueueFilterDropdownService }], target: i0.ɵɵFactoryTarget.Component });
6295
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: QueueFilterDropdownComponent, isStandalone: false, selector: "lib-queue-filter-dropdown", inputs: { appliedFilters: "appliedFilters" }, outputs: { filterApplied: "filterApplied", filtersCleared: "filtersCleared" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownPanel", first: true, predicate: ["dropdownPanel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"queue-filter-dropdown-wrapper\">\r\n <button class=\"filter-btn\" (click)=\"onFilterBtnClick()\">\r\n <span class=\"pi pi-filter\"></span>\r\n <span class=\"filter-count\">{{ filterCount }}</span>\r\n Filter(s) Applied \r\n <span class=\"pi pi-angle-down ml-2\"></span>\r\n </button>\r\n <div class=\"filter-dropdown-panel\" *ngIf=\"showDropdown\" #dropdownPanel>\r\n <div class=\"filter-title\">Queue Filters</div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Risk Rating</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Low'\" (click)=\"setRiskRating('Low')\">Low</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Medium'\" (click)=\"setRiskRating('Medium')\">Medium</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'High'\" (click)=\"setRiskRating('High')\">High</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Application Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'BTL'\" (click)=\"setApplicationType('BTL')\">BTL</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'HPP'\" (click)=\"setApplicationType('HPP')\">HPP</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Purchase Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Purchase'\" (click)=\"setPurchaseType('Purchase')\">Purchase</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Refinance'\" (click)=\"setPurchaseType('Refinance')\">Refinance</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Task Status</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Not Started'\" (click)=\"setTaskStatus('Not Started')\">Not Started</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'In-progress'\" (click)=\"setTaskStatus('In-progress')\">In-progress</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Completed'\" (click)=\"setTaskStatus('Completed')\">Completed</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Finance Amount</div>\r\n <div class=\"filter-options two-inputs\">\r\n <input type=\"number\" placeholder=\"Min\" [ngModel]=\"filterService.getFilters().financeMin\" (ngModelChange)=\"setFinanceMin($event)\" min=\"0\" />\r\n <input type=\"number\" placeholder=\"Max\" [ngModel]=\"filterService.getFilters().financeMax\" (ngModelChange)=\"setFinanceMax($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Pending Days</div>\r\n <div class=\"filter-options one-input\">\r\n <input type=\"number\" placeholder=\"No. of days\" [ngModel]=\"filterService.getFilters().pendingDays\" (ngModelChange)=\"setPendingDays($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-actions\">\r\n <button type=\"button\" class=\"clear-btn\" (click)=\"clearAll()\">Clear all</button>\r\n <button type=\"button\" class=\"apply-btn\" (click)=\"applyFilters()\">Apply Filters</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.filter-btn{display:flex;align-items:center;background:#fff;border:1px solid #e0e4ea;border-radius:8px;padding:.5rem 1.1rem;font-size:1rem;color:#3b4256;cursor:pointer;position:relative;height:44px}.filter-btn .pi{font-size:1rem;color:#3b82f6}.filter-btn .filter-count{color:#242424;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:1rem}.filter-btn:hover{border:1px solid #b6c2e2;box-shadow:0 2px 8px #101e3614;background:#f7fafd}.queue-filter-dropdown-wrapper{position:relative;display:inline-block}.filter-dropdown-panel{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:390px;background:#fff;border:1.5px solid #d1d5db;border-radius:16px;box-shadow:0 8px 32px #101e362e;padding:1.5rem 1.25rem 1rem;z-index:1000}.filter-title{font-weight:600;font-size:1.15rem;margin-bottom:1.25rem;color:#23272e}.filter-section{margin-bottom:1.2rem}.filter-label{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#3b4256}.filter-options{display:flex;gap:.7rem;flex-wrap:wrap}.filter-options button{background:#f7fafd;border:1.5px solid #e0e4ea;border-radius:8px;padding:.45rem 1.3rem;font-size:1rem;color:#3b4256;cursor:pointer;transition:background .2s,border .2s,color .2s,box-shadow .2s;box-shadow:none}.filter-options button.selected{background:#e8f0fe;color:#2563eb;border:1.5px solid #2563eb;box-shadow:0 2px 8px #2563eb14}.filter-options input[type=number],.filter-options input[type=text],.filter-options input[type=date]{width:110px;padding:.45rem .8rem;border:1.5px solid #e0e4ea;border-radius:8px;font-size:1rem;color:#3b4256;background:#fff;transition:border .2s}.filter-options input[type=number]:focus,.filter-options input[type=text]:focus,.filter-options input[type=date]:focus{border:1.5px solid #2563eb;outline:none}.filter-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.7rem}.clear-btn{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.3rem}.clear-btn:after{content:\"\\2715\";color:#2563eb;font-size:1.1em;margin-left:.2em}.apply-btn{background:#2563eb;color:#fff;border:none;border-radius:12px;padding:.7rem 0;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .2s;min-width:160px}.filter-options input[type=date]{font-family:inherit;color:#3b4256}.filter-options.two-inputs input[type=number]{width:48.5%}.filter-options.one-input input[type=number]{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
6333
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.5", type: QueueFilterDropdownComponent, isStandalone: false, selector: "lib-queue-filter-dropdown", inputs: { appliedFilters: "appliedFilters" }, outputs: { filterApplied: "filterApplied", filtersCleared: "filtersCleared" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownPanel", first: true, predicate: ["dropdownPanel"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"queue-filter-dropdown-wrapper\">\r\n <button class=\"filter-btn\" (click)=\"onFilterBtnClick()\">\r\n <span class=\"ri-filter-3-line\"></span>\r\n <span class=\"filter-count\">{{ filterCount }}</span>\r\n Filter(s) Applied \r\n <span class=\"pi pi-angle-down ml-2\"></span>\r\n </button>\r\n <div class=\"filter-dropdown-panel\" *ngIf=\"showDropdown\" #dropdownPanel>\r\n <div class=\"filter-title\">Queue Filters</div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Risk Rating</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Low'\" (click)=\"setRiskRating('Low')\">Low</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Medium'\" (click)=\"setRiskRating('Medium')\">Medium</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'High'\" (click)=\"setRiskRating('High')\">High</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Application Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'BTL'\" (click)=\"setApplicationType('BTL')\">BTL</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'HPP'\" (click)=\"setApplicationType('HPP')\">HPP</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Purchase Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Purchase'\" (click)=\"setPurchaseType('Purchase')\">Purchase</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Refinance'\" (click)=\"setPurchaseType('Refinance')\">Refinance</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Task Status</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Not Started'\" (click)=\"setTaskStatus('Not Started')\">Not Started</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'In-progress'\" (click)=\"setTaskStatus('In-progress')\">In-progress</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Completed'\" (click)=\"setTaskStatus('Completed')\">Completed</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Finance Amount</div>\r\n <div class=\"filter-options two-inputs\">\r\n <input type=\"number\" placeholder=\"Min\" [ngModel]=\"filterService.getFilters().financeMin\" (ngModelChange)=\"setFinanceMin($event)\" min=\"0\" />\r\n <input type=\"number\" placeholder=\"Max\" [ngModel]=\"filterService.getFilters().financeMax\" (ngModelChange)=\"setFinanceMax($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Pending Days</div>\r\n <div class=\"filter-options one-input\">\r\n <input type=\"number\" placeholder=\"No. of days\" [ngModel]=\"filterService.getFilters().pendingDays\" (ngModelChange)=\"setPendingDays($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-actions\">\r\n <button type=\"button\" class=\"clear-btn\" (click)=\"clearAll()\">Clear all</button>\r\n <button type=\"button\" class=\"apply-btn\" (click)=\"applyFilters()\">Apply Filters</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.filter-btn{display:flex;align-items:center;background:#fff;border:1px solid #e0e4ea;font-family:inherit;border-radius:8px;padding:.5rem 1.1rem;font-size:1rem;color:#3b4256;cursor:pointer;position:relative;height:44px}.filter-btn .filter-count{color:#242424;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-family:inherit}.queue-filter-dropdown-wrapper{position:relative;display:inline-block}.filter-dropdown-panel{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:390px;background:#fff;border:1.5px solid #d1d5db;border-radius:16px;box-shadow:0 8px 32px #101e362e;padding:1.5rem 1.25rem 1rem;z-index:1000}.filter-title{font-weight:600;font-size:1.15rem;margin-bottom:1.25rem;color:#23272e}.filter-section{margin-bottom:1.2rem}.filter-label{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#3b4256}.filter-options{display:flex;gap:.7rem;flex-wrap:wrap}.filter-options button{background:#f7fafd;border:1.5px solid #e0e4ea;border-radius:8px;padding:.45rem 1.3rem;font-size:1rem;color:#3b4256;cursor:pointer;transition:background .2s,border .2s,color .2s,box-shadow .2s;box-shadow:none}.filter-options button.selected{background:#e8f0fe;color:#2563eb;border:1.5px solid #2563eb;box-shadow:0 2px 8px #2563eb14}.filter-options input[type=number],.filter-options input[type=text],.filter-options input[type=date]{width:110px;padding:.45rem .8rem;border:1.5px solid #e0e4ea;border-radius:8px;font-size:1rem;color:#3b4256;background:#fff;transition:border .2s}.filter-options input[type=number]:focus,.filter-options input[type=text]:focus,.filter-options input[type=date]:focus{border:1.5px solid #2563eb;outline:none}.filter-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.7rem}.clear-btn{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.3rem}.clear-btn:after{content:\"\\2715\";color:#2563eb;font-size:1.1em;margin-left:.2em}.apply-btn{background:#2563eb;color:#fff;border:none;border-radius:12px;padding:.7rem 0;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .2s;min-width:160px}.filter-options input[type=date]{font-family:inherit;color:#3b4256}.filter-options.two-inputs input[type=number]{width:48.5%}.filter-options.one-input input[type=number]{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
6296
6334
  }
6297
6335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueFilterDropdownComponent, decorators: [{
6298
6336
  type: Component,
6299
- args: [{ selector: 'lib-queue-filter-dropdown', standalone: false, template: "<div class=\"queue-filter-dropdown-wrapper\">\r\n <button class=\"filter-btn\" (click)=\"onFilterBtnClick()\">\r\n <span class=\"pi pi-filter\"></span>\r\n <span class=\"filter-count\">{{ filterCount }}</span>\r\n Filter(s) Applied \r\n <span class=\"pi pi-angle-down ml-2\"></span>\r\n </button>\r\n <div class=\"filter-dropdown-panel\" *ngIf=\"showDropdown\" #dropdownPanel>\r\n <div class=\"filter-title\">Queue Filters</div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Risk Rating</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Low'\" (click)=\"setRiskRating('Low')\">Low</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Medium'\" (click)=\"setRiskRating('Medium')\">Medium</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'High'\" (click)=\"setRiskRating('High')\">High</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Application Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'BTL'\" (click)=\"setApplicationType('BTL')\">BTL</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'HPP'\" (click)=\"setApplicationType('HPP')\">HPP</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Purchase Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Purchase'\" (click)=\"setPurchaseType('Purchase')\">Purchase</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Refinance'\" (click)=\"setPurchaseType('Refinance')\">Refinance</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Task Status</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Not Started'\" (click)=\"setTaskStatus('Not Started')\">Not Started</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'In-progress'\" (click)=\"setTaskStatus('In-progress')\">In-progress</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Completed'\" (click)=\"setTaskStatus('Completed')\">Completed</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Finance Amount</div>\r\n <div class=\"filter-options two-inputs\">\r\n <input type=\"number\" placeholder=\"Min\" [ngModel]=\"filterService.getFilters().financeMin\" (ngModelChange)=\"setFinanceMin($event)\" min=\"0\" />\r\n <input type=\"number\" placeholder=\"Max\" [ngModel]=\"filterService.getFilters().financeMax\" (ngModelChange)=\"setFinanceMax($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Pending Days</div>\r\n <div class=\"filter-options one-input\">\r\n <input type=\"number\" placeholder=\"No. of days\" [ngModel]=\"filterService.getFilters().pendingDays\" (ngModelChange)=\"setPendingDays($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-actions\">\r\n <button type=\"button\" class=\"clear-btn\" (click)=\"clearAll()\">Clear all</button>\r\n <button type=\"button\" class=\"apply-btn\" (click)=\"applyFilters()\">Apply Filters</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.filter-btn{display:flex;align-items:center;background:#fff;border:1px solid #e0e4ea;border-radius:8px;padding:.5rem 1.1rem;font-size:1rem;color:#3b4256;cursor:pointer;position:relative;height:44px}.filter-btn .pi{font-size:1rem;color:#3b82f6}.filter-btn .filter-count{color:#242424;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:1rem}.filter-btn:hover{border:1px solid #b6c2e2;box-shadow:0 2px 8px #101e3614;background:#f7fafd}.queue-filter-dropdown-wrapper{position:relative;display:inline-block}.filter-dropdown-panel{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:390px;background:#fff;border:1.5px solid #d1d5db;border-radius:16px;box-shadow:0 8px 32px #101e362e;padding:1.5rem 1.25rem 1rem;z-index:1000}.filter-title{font-weight:600;font-size:1.15rem;margin-bottom:1.25rem;color:#23272e}.filter-section{margin-bottom:1.2rem}.filter-label{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#3b4256}.filter-options{display:flex;gap:.7rem;flex-wrap:wrap}.filter-options button{background:#f7fafd;border:1.5px solid #e0e4ea;border-radius:8px;padding:.45rem 1.3rem;font-size:1rem;color:#3b4256;cursor:pointer;transition:background .2s,border .2s,color .2s,box-shadow .2s;box-shadow:none}.filter-options button.selected{background:#e8f0fe;color:#2563eb;border:1.5px solid #2563eb;box-shadow:0 2px 8px #2563eb14}.filter-options input[type=number],.filter-options input[type=text],.filter-options input[type=date]{width:110px;padding:.45rem .8rem;border:1.5px solid #e0e4ea;border-radius:8px;font-size:1rem;color:#3b4256;background:#fff;transition:border .2s}.filter-options input[type=number]:focus,.filter-options input[type=text]:focus,.filter-options input[type=date]:focus{border:1.5px solid #2563eb;outline:none}.filter-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.7rem}.clear-btn{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.3rem}.clear-btn:after{content:\"\\2715\";color:#2563eb;font-size:1.1em;margin-left:.2em}.apply-btn{background:#2563eb;color:#fff;border:none;border-radius:12px;padding:.7rem 0;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .2s;min-width:160px}.filter-options input[type=date]{font-family:inherit;color:#3b4256}.filter-options.two-inputs input[type=number]{width:48.5%}.filter-options.one-input input[type=number]{width:100%}\n"] }]
6337
+ args: [{ selector: 'lib-queue-filter-dropdown', standalone: false, template: "<div class=\"queue-filter-dropdown-wrapper\">\r\n <button class=\"filter-btn\" (click)=\"onFilterBtnClick()\">\r\n <span class=\"ri-filter-3-line\"></span>\r\n <span class=\"filter-count\">{{ filterCount }}</span>\r\n Filter(s) Applied \r\n <span class=\"pi pi-angle-down ml-2\"></span>\r\n </button>\r\n <div class=\"filter-dropdown-panel\" *ngIf=\"showDropdown\" #dropdownPanel>\r\n <div class=\"filter-title\">Queue Filters</div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Risk Rating</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Low'\" (click)=\"setRiskRating('Low')\">Low</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'Medium'\" (click)=\"setRiskRating('Medium')\">Medium</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().riskRating === 'High'\" (click)=\"setRiskRating('High')\">High</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Application Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'BTL'\" (click)=\"setApplicationType('BTL')\">BTL</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().applicationType === 'HPP'\" (click)=\"setApplicationType('HPP')\">HPP</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Purchase Type</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Purchase'\" (click)=\"setPurchaseType('Purchase')\">Purchase</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().purchaseType === 'Refinance'\" (click)=\"setPurchaseType('Refinance')\">Refinance</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Task Status</div>\r\n <div class=\"filter-options\">\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Not Started'\" (click)=\"setTaskStatus('Not Started')\">Not Started</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'In-progress'\" (click)=\"setTaskStatus('In-progress')\">In-progress</button>\r\n <button type=\"button\" [class.selected]=\"filterService.getFilters().taskStatus === 'Completed'\" (click)=\"setTaskStatus('Completed')\">Completed</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Finance Amount</div>\r\n <div class=\"filter-options two-inputs\">\r\n <input type=\"number\" placeholder=\"Min\" [ngModel]=\"filterService.getFilters().financeMin\" (ngModelChange)=\"setFinanceMin($event)\" min=\"0\" />\r\n <input type=\"number\" placeholder=\"Max\" [ngModel]=\"filterService.getFilters().financeMax\" (ngModelChange)=\"setFinanceMax($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-section\">\r\n <div class=\"filter-label\">Pending Days</div>\r\n <div class=\"filter-options one-input\">\r\n <input type=\"number\" placeholder=\"No. of days\" [ngModel]=\"filterService.getFilters().pendingDays\" (ngModelChange)=\"setPendingDays($event)\" min=\"0\" />\r\n </div>\r\n </div>\r\n <div class=\"filter-actions\">\r\n <button type=\"button\" class=\"clear-btn\" (click)=\"clearAll()\">Clear all</button>\r\n <button type=\"button\" class=\"apply-btn\" (click)=\"applyFilters()\">Apply Filters</button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.filter-btn{display:flex;align-items:center;background:#fff;border:1px solid #e0e4ea;font-family:inherit;border-radius:8px;padding:.5rem 1.1rem;font-size:1rem;color:#3b4256;cursor:pointer;position:relative;height:44px}.filter-btn .filter-count{color:#242424;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-family:inherit}.queue-filter-dropdown-wrapper{position:relative;display:inline-block}.filter-dropdown-panel{position:absolute;top:100%;left:50%;transform:translate(-50%);min-width:390px;background:#fff;border:1.5px solid #d1d5db;border-radius:16px;box-shadow:0 8px 32px #101e362e;padding:1.5rem 1.25rem 1rem;z-index:1000}.filter-title{font-weight:600;font-size:1.15rem;margin-bottom:1.25rem;color:#23272e}.filter-section{margin-bottom:1.2rem}.filter-label{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#3b4256}.filter-options{display:flex;gap:.7rem;flex-wrap:wrap}.filter-options button{background:#f7fafd;border:1.5px solid #e0e4ea;border-radius:8px;padding:.45rem 1.3rem;font-size:1rem;color:#3b4256;cursor:pointer;transition:background .2s,border .2s,color .2s,box-shadow .2s;box-shadow:none}.filter-options button.selected{background:#e8f0fe;color:#2563eb;border:1.5px solid #2563eb;box-shadow:0 2px 8px #2563eb14}.filter-options input[type=number],.filter-options input[type=text],.filter-options input[type=date]{width:110px;padding:.45rem .8rem;border:1.5px solid #e0e4ea;border-radius:8px;font-size:1rem;color:#3b4256;background:#fff;transition:border .2s}.filter-options input[type=number]:focus,.filter-options input[type=text]:focus,.filter-options input[type=date]:focus{border:1.5px solid #2563eb;outline:none}.filter-actions{display:flex;justify-content:space-between;align-items:center;margin-top:1.7rem}.clear-btn{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.3rem}.clear-btn:after{content:\"\\2715\";color:#2563eb;font-size:1.1em;margin-left:.2em}.apply-btn{background:#2563eb;color:#fff;border:none;border-radius:12px;padding:.7rem 0;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .2s;min-width:160px}.filter-options input[type=date]{font-family:inherit;color:#3b4256}.filter-options.two-inputs input[type=number]{width:48.5%}.filter-options.one-input input[type=number]{width:100%}\n"] }]
6300
6338
  }], ctorParameters: () => [{ type: QueueFilterDropdownService }], propDecorators: { dropdownPanel: [{
6301
6339
  type: ViewChild,
6302
6340
  args: ['dropdownPanel', { static: false }]
@@ -6636,11 +6674,11 @@ class QueueContainerComponent extends BaseContainerComponent {
6636
6674
  }
6637
6675
  }
6638
6676
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueContainerComponent, deps: [{ token: QueueStore }, { token: QueueService }, { token: BaseStore }, { token: QueueBusinessService }, { token: QueueRecordTableBuilderService }, { token: QueueFilterDropdownService }], target: i0.ɵɵFactoryTarget.Component });
6639
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: QueueContainerComponent, isStandalone: false, selector: "lib-queue-container", inputs: { placeholder: "placeholder", selectedRowsInput: "selectedRowsInput" }, outputs: { assignmentComplete: "assignmentComplete", userAssigned: "userAssigned", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "filterDropdown", first: true, predicate: ["filterDropdown"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container grid m-0 h-full\">\r\n <div class=\"col-12 xl:col-2 md:col-12 py-0 h-full\">\r\n <app-queue-list\r\n [queueData]=\"filteredQueueData\"\r\n [selectedQueueId]=\"selectedQueueId\"\r\n [selectedStatus]=\"selectedStatus\"\r\n [userRole]=\"userRole\"\r\n [showQueueDataForm]=\"true\"\r\n (queueSelected)=\"onQueueSelected($event)\"\r\n (statusChanged)=\"onStatusChanged($event)\"\r\n (insertQueueRequested)=\"onInsertQueueRequested()\"\r\n ></app-queue-list>\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 h-full\">\r\n \r\n @if(selectedQueue){\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <div class=\"col-8 p-0 flex align-items-center \" >\r\n <div class=\"col-6 p-0 mr-3\">\r\n <queue-search \r\n [placeholder]=\"placeholder\"\r\n [searchText]=\"searchText\"\r\n (searchInputChanged)=\"onSearchInputChanged($event)\"\r\n (searchRequested)=\"onSearchRequested($event)\"\r\n (searchCleared)=\"onSearchCleared()\">\r\n </queue-search>\r\n </div>\r\n <div>\r\n <lib-queue-filter-dropdown \r\n #filterDropdown\r\n [appliedFilters]=\"appliedFilters\"\r\n (filterApplied)=\"onFilterDropdownApplied($event)\"\r\n (filtersCleared)=\"onFiltersCleared()\">\r\n </lib-queue-filter-dropdown>\r\n </div>\r\n <div *ngIf=\"hasActiveFilters\">\r\n <button \r\n class=\"clear-filters-btn\"\r\n type=\"button\"\r\n (click)=\"onClearAllFilters()\">\r\n Clear <i class=\"pi pi-times ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-3 justify-content-end\">\r\n <ng-content select=\"[user-dropdown]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"animation-duration-500 associated-list queue-table-container-wrapper custom-scroll mb-0 p-0\">\r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [loading]=\"loading\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n (selectionChange)=\"onTableSelectionChange($event)\"\r\n (selectedRowsData)=\"onTableSelectionChange($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onTableRowClick($event)\"\r\n (paginationChanged)=\"onPaginationChanged($event)\"\r\n (filterApplied)=\"onFilterApplied($event)\"\r\n (sortApplied)=\"onSortApplied($event)\">\r\n </app-queue-record-table>\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n </div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.queue-table-container-wrapper{height:calc(100% - 58px)}.clear-filters-btn{background:none;border:none;color:#2196f3;font-size:1.1rem;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:0}.clear-filters-btn .clear-x{font-size:1.2rem;margin-left:.2rem;line-height:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QueueSearchComponent, selector: "queue-search", inputs: ["searchText", "placeholder", "debounceTime"], outputs: ["searchInputChanged", "searchRequested", "searchCleared"] }, { kind: "component", type: QueueListComponent, selector: "app-queue-list", inputs: ["queueData", "selectedQueueId", "selectedStatus", "userRole", "showQueueDataForm"], outputs: ["queueSelected", "statusChanged", "insertQueueRequested"] }, { kind: "component", type: QueueRecordTableComponent, selector: "app-queue-record-table", inputs: ["table", "metaData", "loading", "selectedRows", "resetSort"], outputs: ["selectionChange", "selectedRowsData", "assignmentDataReady", "rowClick", "paginationChanged", "filterApplied", "sortApplied"] }, { kind: "component", type: QueueFilterDropdownComponent, selector: "lib-queue-filter-dropdown", inputs: ["appliedFilters"], outputs: ["filterApplied", "filtersCleared"] }] });
6677
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: QueueContainerComponent, isStandalone: false, selector: "lib-queue-container", inputs: { placeholder: "placeholder", selectedRowsInput: "selectedRowsInput" }, outputs: { assignmentComplete: "assignmentComplete", userAssigned: "userAssigned", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "filterDropdown", first: true, predicate: ["filterDropdown"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container grid m-0 h-full\">\r\n <div class=\"col-12 xl:col-2 md:col-12 py-0 h-full\">\r\n <app-queue-list\r\n [queueData]=\"filteredQueueData\"\r\n [selectedQueueId]=\"selectedQueueId\"\r\n [selectedStatus]=\"selectedStatus\"\r\n [userRole]=\"userRole\"\r\n [showQueueDataForm]=\"true\"\r\n (queueSelected)=\"onQueueSelected($event)\"\r\n (statusChanged)=\"onStatusChanged($event)\"\r\n (insertQueueRequested)=\"onInsertQueueRequested()\"\r\n ></app-queue-list>\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 h-full\">\r\n \r\n @if(selectedQueue){\r\n <div class=\"grid m-0 justify-content-between align-items-center mb-3\">\r\n <div class=\"col-8 p-0 flex align-items-center\" >\r\n <div class=\"col-7 p-0 mr-3\">\r\n <queue-search \r\n [placeholder]=\"placeholder\"\r\n [searchText]=\"searchText\"\r\n (searchInputChanged)=\"onSearchInputChanged($event)\"\r\n (searchRequested)=\"onSearchRequested($event)\"\r\n (searchCleared)=\"onSearchCleared()\">\r\n </queue-search>\r\n </div>\r\n <div class=\"col-5 p-0\">\r\n <lib-queue-filter-dropdown \r\n #filterDropdown\r\n [appliedFilters]=\"appliedFilters\"\r\n (filterApplied)=\"onFilterDropdownApplied($event)\"\r\n (filtersCleared)=\"onFiltersCleared()\">\r\n </lib-queue-filter-dropdown>\r\n </div>\r\n <div *ngIf=\"hasActiveFilters\">\r\n <button \r\n class=\"clear-filters-btn\"\r\n type=\"button\"\r\n (click)=\"onClearAllFilters()\">\r\n Clear <i class=\"pi pi-times ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <div class=\"flex align-items-center gap-3 col-3 py-0 pl-0 justify-content-end\">\r\n <ng-content select=\"[user-dropdown]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"animation-duration-500 associated-list queue-table-container-wrapper custom-scroll mb-0 p-0\">\r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [loading]=\"loading\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n (selectionChange)=\"onTableSelectionChange($event)\"\r\n (selectedRowsData)=\"onTableSelectionChange($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onTableRowClick($event)\"\r\n (paginationChanged)=\"onPaginationChanged($event)\"\r\n (filterApplied)=\"onFilterApplied($event)\"\r\n (sortApplied)=\"onSortApplied($event)\">\r\n </app-queue-record-table>\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n </div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.queue-table-container-wrapper{height:calc(100% - 58px)}.clear-filters-btn{background:none;border:none;color:#2196f3;font-size:1.1rem;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:0}.clear-filters-btn .clear-x{font-size:1.2rem;margin-left:.2rem;line-height:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QueueSearchComponent, selector: "queue-search", inputs: ["searchText", "placeholder", "debounceTime"], outputs: ["searchInputChanged", "searchRequested", "searchCleared"] }, { kind: "component", type: QueueListComponent, selector: "app-queue-list", inputs: ["queueData", "selectedQueueId", "selectedStatus", "userRole", "showQueueDataForm"], outputs: ["queueSelected", "statusChanged", "insertQueueRequested"] }, { kind: "component", type: QueueRecordTableComponent, selector: "app-queue-record-table", inputs: ["table", "metaData", "loading", "selectedRows", "resetSort"], outputs: ["selectionChange", "selectedRowsData", "assignmentDataReady", "rowClick", "paginationChanged", "filterApplied", "sortApplied"] }, { kind: "component", type: QueueFilterDropdownComponent, selector: "lib-queue-filter-dropdown", inputs: ["appliedFilters"], outputs: ["filterApplied", "filtersCleared"] }] });
6640
6678
  }
6641
6679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueContainerComponent, decorators: [{
6642
6680
  type: Component,
6643
- args: [{ selector: 'lib-queue-container', standalone: false, template: "<div class=\"container grid m-0 h-full\">\r\n <div class=\"col-12 xl:col-2 md:col-12 py-0 h-full\">\r\n <app-queue-list\r\n [queueData]=\"filteredQueueData\"\r\n [selectedQueueId]=\"selectedQueueId\"\r\n [selectedStatus]=\"selectedStatus\"\r\n [userRole]=\"userRole\"\r\n [showQueueDataForm]=\"true\"\r\n (queueSelected)=\"onQueueSelected($event)\"\r\n (statusChanged)=\"onStatusChanged($event)\"\r\n (insertQueueRequested)=\"onInsertQueueRequested()\"\r\n ></app-queue-list>\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 h-full\">\r\n \r\n @if(selectedQueue){\r\n <div class=\"flex justify-content-between align-items-center mb-3\">\r\n <div class=\"col-8 p-0 flex align-items-center \" >\r\n <div class=\"col-6 p-0 mr-3\">\r\n <queue-search \r\n [placeholder]=\"placeholder\"\r\n [searchText]=\"searchText\"\r\n (searchInputChanged)=\"onSearchInputChanged($event)\"\r\n (searchRequested)=\"onSearchRequested($event)\"\r\n (searchCleared)=\"onSearchCleared()\">\r\n </queue-search>\r\n </div>\r\n <div>\r\n <lib-queue-filter-dropdown \r\n #filterDropdown\r\n [appliedFilters]=\"appliedFilters\"\r\n (filterApplied)=\"onFilterDropdownApplied($event)\"\r\n (filtersCleared)=\"onFiltersCleared()\">\r\n </lib-queue-filter-dropdown>\r\n </div>\r\n <div *ngIf=\"hasActiveFilters\">\r\n <button \r\n class=\"clear-filters-btn\"\r\n type=\"button\"\r\n (click)=\"onClearAllFilters()\">\r\n Clear <i class=\"pi pi-times ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-3 justify-content-end\">\r\n <ng-content select=\"[user-dropdown]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"animation-duration-500 associated-list queue-table-container-wrapper custom-scroll mb-0 p-0\">\r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [loading]=\"loading\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n (selectionChange)=\"onTableSelectionChange($event)\"\r\n (selectedRowsData)=\"onTableSelectionChange($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onTableRowClick($event)\"\r\n (paginationChanged)=\"onPaginationChanged($event)\"\r\n (filterApplied)=\"onFilterApplied($event)\"\r\n (sortApplied)=\"onSortApplied($event)\">\r\n </app-queue-record-table>\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n </div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.queue-table-container-wrapper{height:calc(100% - 58px)}.clear-filters-btn{background:none;border:none;color:#2196f3;font-size:1.1rem;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:0}.clear-filters-btn .clear-x{font-size:1.2rem;margin-left:.2rem;line-height:1}\n"] }]
6681
+ args: [{ selector: 'lib-queue-container', standalone: false, template: "<div class=\"container grid m-0 h-full\">\r\n <div class=\"col-12 xl:col-2 md:col-12 py-0 h-full\">\r\n <app-queue-list\r\n [queueData]=\"filteredQueueData\"\r\n [selectedQueueId]=\"selectedQueueId\"\r\n [selectedStatus]=\"selectedStatus\"\r\n [userRole]=\"userRole\"\r\n [showQueueDataForm]=\"true\"\r\n (queueSelected)=\"onQueueSelected($event)\"\r\n (statusChanged)=\"onStatusChanged($event)\"\r\n (insertQueueRequested)=\"onInsertQueueRequested()\"\r\n ></app-queue-list>\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 h-full\">\r\n \r\n @if(selectedQueue){\r\n <div class=\"grid m-0 justify-content-between align-items-center mb-3\">\r\n <div class=\"col-8 p-0 flex align-items-center\" >\r\n <div class=\"col-7 p-0 mr-3\">\r\n <queue-search \r\n [placeholder]=\"placeholder\"\r\n [searchText]=\"searchText\"\r\n (searchInputChanged)=\"onSearchInputChanged($event)\"\r\n (searchRequested)=\"onSearchRequested($event)\"\r\n (searchCleared)=\"onSearchCleared()\">\r\n </queue-search>\r\n </div>\r\n <div class=\"col-5 p-0\">\r\n <lib-queue-filter-dropdown \r\n #filterDropdown\r\n [appliedFilters]=\"appliedFilters\"\r\n (filterApplied)=\"onFilterDropdownApplied($event)\"\r\n (filtersCleared)=\"onFiltersCleared()\">\r\n </lib-queue-filter-dropdown>\r\n </div>\r\n <div *ngIf=\"hasActiveFilters\">\r\n <button \r\n class=\"clear-filters-btn\"\r\n type=\"button\"\r\n (click)=\"onClearAllFilters()\">\r\n Clear <i class=\"pi pi-times ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <div class=\"flex align-items-center gap-3 col-3 py-0 pl-0 justify-content-end\">\r\n <ng-content select=\"[user-dropdown]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"animation-duration-500 associated-list queue-table-container-wrapper custom-scroll mb-0 p-0\">\r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [loading]=\"loading\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n (selectionChange)=\"onTableSelectionChange($event)\"\r\n (selectedRowsData)=\"onTableSelectionChange($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onTableRowClick($event)\"\r\n (paginationChanged)=\"onPaginationChanged($event)\"\r\n (filterApplied)=\"onFilterApplied($event)\"\r\n (sortApplied)=\"onSortApplied($event)\">\r\n </app-queue-record-table>\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n </div>", styles: [".custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.queue-table-container-wrapper{height:calc(100% - 58px)}.clear-filters-btn{background:none;border:none;color:#2196f3;font-size:1.1rem;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:0}.clear-filters-btn .clear-x{font-size:1.2rem;margin-left:.2rem;line-height:1}\n"] }]
6644
6682
  }], ctorParameters: () => [{ type: QueueStore }, { type: QueueService }, { type: BaseStore }, { type: QueueBusinessService }, { type: QueueRecordTableBuilderService }, { type: QueueFilterDropdownService }], propDecorators: { placeholder: [{
6645
6683
  type: Input
6646
6684
  }], filterDropdown: [{