cat-qw-lib 2.6.47 → 2.6.49

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.
@@ -33,7 +33,7 @@ import * as i7 from 'primeng/messages';
33
33
  import { MessagesModule } from 'primeng/messages';
34
34
  import * as i4$2 from 'primeng/tooltip';
35
35
  import { TooltipModule } from 'primeng/tooltip';
36
- import { tap, map as map$1, catchError, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, switchMap } from 'rxjs/operators';
36
+ import { tap, map as map$1, catchError, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, switchMap, finalize } from 'rxjs/operators';
37
37
  import * as i1$1 from '@angular/common/http';
38
38
  import { HttpClientModule, HttpHeaders } from '@angular/common/http';
39
39
  import * as i3$4 from '@angular/router';
@@ -2650,7 +2650,7 @@ class QueueFilterDropdownService extends BaseService {
2650
2650
  */
2651
2651
  getUnderwritersList(searchKey = SHARED.EMPTY) {
2652
2652
  const url = `${this.apiUrl}${ROUTES.GET_ALL_UNDERWRITER_TEAMLEAD}${SHARED.QUESTION_MARK}searchKey${SHARED.EQUALS}${encodeURIComponent(searchKey)}`;
2653
- return this.http.get(url, { headers: { 'Authorization': 'Bearer ' + '4e5f3a06-d5ca-4ed4-a9bd-7462046e8b70' } }).pipe(map$1((response) => {
2653
+ return this.http.get(url, { headers: { 'Authorization': 'Bearer ' + '1b0ab0db-ac66-46f7-bba2-d87390aa253b' } }).pipe(map$1((response) => {
2654
2654
  // Transform API response to match component's expected format
2655
2655
  const underwriters = Array.isArray(response) ? response : (response?.data || []);
2656
2656
  return underwriters.map((uw) => ({
@@ -7114,7 +7114,7 @@ class QueueService extends BaseService {
7114
7114
  }
7115
7115
  }
7116
7116
  // Use POST method with body containing underwriterIds and unassigned
7117
- return this.http.post(url, body, { headers: { 'Authorization': 'Bearer ' + '4e5f3a06-d5ca-4ed4-a9bd-7462046e8b70' } }).pipe(tap$1((response) => {
7117
+ return this.http.post(url, body, { headers: { 'Authorization': 'Bearer ' + '1b0ab0db-ac66-46f7-bba2-d87390aa253b' } }).pipe(tap$1((response) => {
7118
7118
  if (useCache) {
7119
7119
  this.recordCache.set(cacheKey, { data: response, timestamp: Date.now() });
7120
7120
  }
@@ -7132,7 +7132,7 @@ class QueueService extends BaseService {
7132
7132
  * @returns {Observable<any>} Observable emitting the fetched queue entities
7133
7133
  */
7134
7134
  getAllQueue() {
7135
- const headers = new HttpHeaders().set('Authorization', 'Bearer 4e5f3a06-d5ca-4ed4-a9bd-7462046e8b70');
7135
+ const headers = new HttpHeaders().set('Authorization', 'Bearer 1b0ab0db-ac66-46f7-bba2-d87390aa253b');
7136
7136
  return this.http.get(this.apiUrl + this._pathName, { headers }).pipe(tap$1((entities) => { this.queueStore.set(entities); }));
7137
7137
  }
7138
7138
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueService, deps: [{ token: QueueStore$1 }, { token: i1$1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -8018,7 +8018,8 @@ class QueueContainerComponent extends BaseContainerComponent {
8018
8018
  selectedQueue;
8019
8019
  currentSearchTerm = '';
8020
8020
  selectedRows = [];
8021
- loading = false;
8021
+ /** Only while loading the queue list (sidebar); never tied to record pagination. */
8022
+ queueListLoading = false;
8022
8023
  error = null;
8023
8024
  filteredQueueData = [];
8024
8025
  selectedStatus = 'active';
@@ -8124,7 +8125,8 @@ class QueueContainerComponent extends BaseContainerComponent {
8124
8125
  const { page, limit } = this.queueBusinessService.calculatePagination(event);
8125
8126
  // Force refresh on explicit paginator navigation so returning to page 1
8126
8127
  // (often already cached from initial load) still triggers an API call.
8127
- this.getQueueRecordsData(page, limit, true);
8128
+ // Show table skeleton while loading the next page (left nav stays visible).
8129
+ this.getQueueRecordsData(page, limit, true, false);
8128
8130
  }
8129
8131
  onFilterApplied(record) {
8130
8132
  this.queryString = this.queueBusinessService.buildQueryString(record);
@@ -8200,18 +8202,19 @@ class QueueContainerComponent extends BaseContainerComponent {
8200
8202
  });
8201
8203
  }
8202
8204
  getAllQueueList(preferredQueueId) {
8203
- this.loading = true;
8205
+ this.queueListLoading = true;
8204
8206
  this.error = null;
8205
8207
  this.queueService.getAllQueue().subscribe({
8206
8208
  next: (res) => {
8207
8209
  this.queueList = Array.isArray(res) ? res : (res.data || res);
8208
8210
  this.baseStore.setQueueList(this.queueList);
8209
8211
  this.filterQueues(preferredQueueId);
8210
- this.loading = false;
8212
+ this.queueListLoading = false;
8211
8213
  },
8212
8214
  error: (err) => {
8213
8215
  this.error = ERROR.UNABLE_TO_FETCH_QUEUE_LIST;
8214
- this.loading = false;
8216
+ this.queueListLoading = false;
8217
+ this.isShowSkeleton = false;
8215
8218
  console.error(ERROR.UNABLE_TO_FETCH_QUEUE_LIST, err);
8216
8219
  }
8217
8220
  });
@@ -8232,6 +8235,7 @@ class QueueContainerComponent extends BaseContainerComponent {
8232
8235
  }
8233
8236
  else {
8234
8237
  console.warn(ERROR.NO_QUEUE_FOUND_WITH_ID);
8238
+ this.isShowSkeleton = false;
8235
8239
  }
8236
8240
  }
8237
8241
  resetSorting() {
@@ -8254,32 +8258,49 @@ class QueueContainerComponent extends BaseContainerComponent {
8254
8258
  this.handleQueueData(this.selectedQueueId);
8255
8259
  }
8256
8260
  }
8261
+ else {
8262
+ this.selectedQueueId = null;
8263
+ this.selectedQueue = undefined;
8264
+ this.isShowSkeleton = false;
8265
+ }
8257
8266
  }
8258
- getQueueRecordsData(page, limit, forceRefresh = false) {
8259
- this.isShowSkeleton = true;
8267
+ getQueueRecordsData(page, limit, forceRefresh = false, softTransition = false) {
8260
8268
  if (!this.selectedQueue?.apiConfig) {
8261
- console.log("Queue data or apiConfig not available");
8269
+ console.warn('Queue data or apiConfig not available');
8270
+ this.isShowSkeleton = false;
8271
+ if (!this.table) {
8272
+ this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8273
+ isReferredQueue: this.isReferredQueue(this.selectedQueue)
8274
+ });
8275
+ }
8276
+ this.metaData = {
8277
+ totalItems: 0,
8278
+ currentPage: page || this.currentPage,
8279
+ itemsPerPage: limit || this.currentLimit,
8280
+ totalPages: 0
8281
+ };
8262
8282
  return;
8263
8283
  }
8264
8284
  const targetPage = page || this.currentPage;
8265
8285
  const targetLimit = limit || this.currentLimit;
8266
- // Immediately clear current rows so we never show stale data while loading a new queue/search/page.
8267
- // (The skeleton / loading state can render while the new request is in-flight.)
8268
- this.loading = true;
8269
- if (this.table) {
8270
- this.table = { ...this.table, records: [] };
8271
- }
8272
- else {
8273
- this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8274
- isReferredQueue: this.isReferredQueue(this.selectedQueue)
8275
- });
8286
+ if (!softTransition) {
8287
+ // Full refresh: skeleton + empty table (new queue, search, filters, sort, initial load).
8288
+ this.isShowSkeleton = true;
8289
+ if (this.table) {
8290
+ this.table = { ...this.table, records: [] };
8291
+ }
8292
+ else {
8293
+ this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8294
+ isReferredQueue: this.isReferredQueue(this.selectedQueue)
8295
+ });
8296
+ }
8297
+ this.metaData = {
8298
+ totalItems: 0,
8299
+ currentPage: targetPage,
8300
+ itemsPerPage: targetLimit,
8301
+ totalPages: 0
8302
+ };
8276
8303
  }
8277
- this.metaData = {
8278
- totalItems: 0,
8279
- currentPage: targetPage,
8280
- itemsPerPage: targetLimit,
8281
- totalPages: 0
8282
- };
8283
8304
  // Capture snapshot so we can ignore stale responses when user changes queue/search/page before this request completes
8284
8305
  const requestSnapshot = {
8285
8306
  queueId: this.selectedQueueId,
@@ -8300,16 +8321,20 @@ class QueueContainerComponent extends BaseContainerComponent {
8300
8321
  });
8301
8322
  filterQueryString = existingParams.toString();
8302
8323
  }
8303
- this.queueService.getPaginatedQueueRecords(this.selectedQueue.apiConfig, this.currentSearchTerm, targetPage, targetLimit, filterQueryString, this.sortBy, this.getSortOrderString(this.sortOrder), !forceRefresh).subscribe({
8324
+ this.queueService.getPaginatedQueueRecords(this.selectedQueue.apiConfig, this.currentSearchTerm, targetPage, targetLimit, filterQueryString, this.sortBy, this.getSortOrderString(this.sortOrder), !forceRefresh).pipe(finalize(() => {
8325
+ if (this.latestRequestSnapshot === requestSnapshot) {
8326
+ this.isShowSkeleton = false;
8327
+ }
8328
+ })).subscribe({
8304
8329
  next: (res) => {
8305
8330
  // Ignore response if a newer request was already sent (e.g. user cleared and typed a new search)
8306
8331
  if (this.latestRequestSnapshot !== requestSnapshot) {
8307
8332
  return;
8308
8333
  }
8309
- const apiData = res?.data || res?.paginatedResults || res || [];
8334
+ const raw = res?.data ?? res?.paginatedResults ?? res;
8335
+ const apiData = Array.isArray(raw) ? raw : [];
8310
8336
  if (apiData && apiData.length > 0) {
8311
8337
  this.isShowSkeleton = false;
8312
- this.loading = false;
8313
8338
  this.table = this.tableBuilder.buildSecondaryTable(apiData, undefined, undefined, undefined, {
8314
8339
  isReferredQueue: this.isReferredQueue(this.selectedQueue)
8315
8340
  });
@@ -8317,14 +8342,12 @@ class QueueContainerComponent extends BaseContainerComponent {
8317
8342
  else if (this.table) {
8318
8343
  this.table = { ...this.table, records: [] };
8319
8344
  this.isShowSkeleton = false;
8320
- this.loading = false;
8321
8345
  }
8322
8346
  else {
8323
8347
  this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8324
8348
  isReferredQueue: this.isReferredQueue(this.selectedQueue)
8325
8349
  });
8326
8350
  this.isShowSkeleton = false;
8327
- this.loading = false;
8328
8351
  }
8329
8352
  this.currentPage = targetPage;
8330
8353
  this.currentLimit = targetLimit;
@@ -8335,23 +8358,24 @@ class QueueContainerComponent extends BaseContainerComponent {
8335
8358
  if (this.latestRequestSnapshot !== requestSnapshot) {
8336
8359
  return;
8337
8360
  }
8338
- this.loading = false;
8339
8361
  this.isShowSkeleton = false;
8340
8362
  console.error("Error fetching data:", error);
8341
- if (this.table) {
8342
- this.table = { ...this.table, records: [] };
8343
- }
8344
- else {
8345
- this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8346
- isReferredQueue: this.isReferredQueue(this.selectedQueue)
8347
- });
8363
+ if (!softTransition) {
8364
+ if (this.table) {
8365
+ this.table = { ...this.table, records: [] };
8366
+ }
8367
+ else {
8368
+ this.table = this.tableBuilder.buildSecondaryTable([], undefined, undefined, undefined, {
8369
+ isReferredQueue: this.isReferredQueue(this.selectedQueue)
8370
+ });
8371
+ }
8372
+ this.metaData = {
8373
+ totalItems: 0,
8374
+ currentPage: targetPage,
8375
+ itemsPerPage: targetLimit,
8376
+ totalPages: 0
8377
+ };
8348
8378
  }
8349
- this.metaData = {
8350
- totalItems: 0,
8351
- currentPage: targetPage,
8352
- itemsPerPage: targetLimit,
8353
- totalPages: 0
8354
- };
8355
8379
  }
8356
8380
  });
8357
8381
  }
@@ -8411,11 +8435,11 @@ class QueueContainerComponent extends BaseContainerComponent {
8411
8435
  }
8412
8436
  }
8413
8437
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueContainerComponent, deps: [{ token: QueueStore$1 }, { token: QueueService }, { token: BaseStore }, { token: QueueBusinessService }, { token: QueueRecordTableBuilderService }, { token: QueueFilterDropdownService }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
8414
- 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", isAllRowSelected: "isAllRowSelected", excludedApplicationIds: "excludedApplicationIds" }, 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 pl-0 h-full\">\r\n <lib-skeleton *ngIf=\"loading\" [isAllowCard]=\"true\" [count]=\"5\" [width]=\"'100%'\" [height]=\"'4.5rem'\"></lib-skeleton>\r\n @if(!loading){\r\n <div class=\"queue-list-container-wrapper p-0\">\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 }\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 pr-0 h-full\">\r\n @if(selectedQueue){\r\n <div class=\"queue-application-container-wrapper h-full\">\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>\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 \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 [isShowSkeleton]=\"isShowSkeleton\"\r\n [selectedQueue]=\"selectedQueue\"\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 </div>\r\n }\r\n </div>\r\n\r\n </div>", styles: [":host{display:block;height:100%;padding-top:14px}.queue-table-container-wrapper{height:calc(100% - 58px)}.queue-list-container-wrapper{background-color:transparent}.queue-application-container-wrapper{background-color:#fff;border-radius:15px;padding:20px}.clear-filters-btn{background:none;border:1px solid #e5e7eb;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px;transition:all .2s ease}.clear-filters-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#ef4444}.clear-filters-btn i{font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SkeletonComponent, selector: "lib-skeleton", inputs: ["count", "columns", "width", "height", "isAllowCard"] }, { 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", "isShowSkeleton", "selectedQueue"], outputs: ["selectionChange", "selectedRowsData", "assignmentDataReady", "rowClick", "paginationChanged", "filterApplied", "sortApplied"] }, { kind: "component", type: QueueFilterDropdownComponent, selector: "lib-queue-filter-dropdown", inputs: ["appliedFilters"], outputs: ["filterApplied", "filtersCleared"] }] });
8438
+ 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", isAllRowSelected: "isAllRowSelected", excludedApplicationIds: "excludedApplicationIds" }, 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 pl-0 h-full\">\r\n <lib-skeleton *ngIf=\"queueListLoading\" [isAllowCard]=\"true\" [count]=\"5\" [width]=\"'100%'\" [height]=\"'4.5rem'\"></lib-skeleton>\r\n @if(!queueListLoading){\r\n <div class=\"queue-list-container-wrapper p-0\">\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 }\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 pr-0 h-full\">\r\n @if(selectedQueue){\r\n <div class=\"queue-application-container-wrapper h-full\">\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>\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 \r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n [isShowSkeleton]=\"isShowSkeleton\"\r\n [selectedQueue]=\"selectedQueue\"\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 </div>\r\n }\r\n </div>\r\n\r\n </div>", styles: [":host{display:block;height:100%;padding-top:14px}.queue-table-container-wrapper{height:calc(100% - 58px)}.queue-list-container-wrapper{background-color:transparent}.queue-application-container-wrapper{background-color:#fff;border-radius:15px;padding:20px}.clear-filters-btn{background:none;border:1px solid #e5e7eb;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px;transition:all .2s ease}.clear-filters-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#ef4444}.clear-filters-btn i{font-size:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SkeletonComponent, selector: "lib-skeleton", inputs: ["count", "columns", "width", "height", "isAllowCard"] }, { 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", "isShowSkeleton", "selectedQueue"], outputs: ["selectionChange", "selectedRowsData", "assignmentDataReady", "rowClick", "paginationChanged", "filterApplied", "sortApplied"] }, { kind: "component", type: QueueFilterDropdownComponent, selector: "lib-queue-filter-dropdown", inputs: ["appliedFilters"], outputs: ["filterApplied", "filtersCleared"] }] });
8415
8439
  }
8416
8440
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: QueueContainerComponent, decorators: [{
8417
8441
  type: Component,
8418
- 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 pl-0 h-full\">\r\n <lib-skeleton *ngIf=\"loading\" [isAllowCard]=\"true\" [count]=\"5\" [width]=\"'100%'\" [height]=\"'4.5rem'\"></lib-skeleton>\r\n @if(!loading){\r\n <div class=\"queue-list-container-wrapper p-0\">\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 }\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 pr-0 h-full\">\r\n @if(selectedQueue){\r\n <div class=\"queue-application-container-wrapper h-full\">\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>\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 \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 [isShowSkeleton]=\"isShowSkeleton\"\r\n [selectedQueue]=\"selectedQueue\"\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 </div>\r\n }\r\n </div>\r\n\r\n </div>", styles: [":host{display:block;height:100%;padding-top:14px}.queue-table-container-wrapper{height:calc(100% - 58px)}.queue-list-container-wrapper{background-color:transparent}.queue-application-container-wrapper{background-color:#fff;border-radius:15px;padding:20px}.clear-filters-btn{background:none;border:1px solid #e5e7eb;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px;transition:all .2s ease}.clear-filters-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#ef4444}.clear-filters-btn i{font-size:.75rem}\n"] }]
8442
+ 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 pl-0 h-full\">\r\n <lib-skeleton *ngIf=\"queueListLoading\" [isAllowCard]=\"true\" [count]=\"5\" [width]=\"'100%'\" [height]=\"'4.5rem'\"></lib-skeleton>\r\n @if(!queueListLoading){\r\n <div class=\"queue-list-container-wrapper p-0\">\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 }\r\n </div>\r\n <div class=\"col-12 xl:col-10 md:col-12 py-0 pr-0 h-full\">\r\n @if(selectedQueue){\r\n <div class=\"queue-application-container-wrapper h-full\">\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>\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 \r\n <app-queue-record-table\r\n [table]=\"table\"\r\n [metaData]=\"metaData\"\r\n [selectedRows]=\"selectedRows\"\r\n [resetSort]=\"resetSort\"\r\n [isShowSkeleton]=\"isShowSkeleton\"\r\n [selectedQueue]=\"selectedQueue\"\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 </div>\r\n }\r\n </div>\r\n\r\n </div>", styles: [":host{display:block;height:100%;padding-top:14px}.queue-table-container-wrapper{height:calc(100% - 58px)}.queue-list-container-wrapper{background-color:transparent}.queue-application-container-wrapper{background-color:#fff;border-radius:15px;padding:20px}.clear-filters-btn{background:none;border:1px solid #e5e7eb;color:#64748b;font-size:.85rem;font-weight:500;cursor:pointer;margin-left:.5rem;display:inline-flex;align-items:center;padding:6px 12px;border-radius:8px;transition:all .2s ease}.clear-filters-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#ef4444}.clear-filters-btn i{font-size:.75rem}\n"] }]
8419
8443
  }], ctorParameters: () => [{ type: QueueStore$1 }, { type: QueueService }, { type: BaseStore }, { type: QueueBusinessService }, { type: QueueRecordTableBuilderService }, { type: QueueFilterDropdownService }, { type: BaseQuery }], propDecorators: { placeholder: [{
8420
8444
  type: Input
8421
8445
  }], filterDropdown: [{