cat-qw-lib 0.64.10 → 0.64.12

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.
Files changed (28) hide show
  1. package/fesm2022/cat-qw-lib.mjs +1171 -90
  2. package/fesm2022/cat-qw-lib.mjs.map +1 -1
  3. package/lib/queue/components/queue-container/queue-container.component.d.ts +97 -0
  4. package/lib/queue/components/queue-item/queue-item.component.d.ts +25 -0
  5. package/lib/queue/components/queue-list/queue-list.component.d.ts +9 -0
  6. package/lib/queue/components/queue-record-table/queue-record-table.component.d.ts +80 -0
  7. package/lib/queue/components/queue-search/queue-search.component.d.ts +40 -0
  8. package/lib/queue/models/queue.model.d.ts +10 -0
  9. package/lib/queue/queue-routing.module.d.ts +7 -0
  10. package/lib/queue/queue.module.d.ts +23 -0
  11. package/lib/queue/services/application-assignment.service.d.ts +18 -0
  12. package/lib/queue/services/queue-record-table-builder.service.d.ts +10 -0
  13. package/lib/queue/state/queue.service.d.ts +45 -0
  14. package/lib/queue/state/queue.state.d.ts +4 -0
  15. package/lib/queue/state/queue.store.d.ts +8 -0
  16. package/lib/shared/constant/DATASOURCES.d.ts +2 -0
  17. package/lib/shared/constant/PERMISSION.d.ts +3 -0
  18. package/lib/shared/constant/ROUTES.d.ts +1 -0
  19. package/lib/shared/constant/SHARED.d.ts +1 -0
  20. package/lib/shared/index.d.ts +3 -0
  21. package/lib/shared/state/base.query.d.ts +1 -0
  22. package/lib/shared/state/base.state.d.ts +1 -0
  23. package/lib/shared/state/base.store.d.ts +3 -0
  24. package/lib/shared/table-secondary/components/table-secondary.component.d.ts +132 -0
  25. package/lib/shared/table-secondary/models/table-secondary-header.model.d.ts +6 -0
  26. package/lib/shared/table-secondary/models/table-secondary.model.d.ts +17 -0
  27. package/package.json +1 -1
  28. package/public-api.d.ts +2 -0
@@ -1,17 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Input, Output, Injectable, ViewChild, ViewEncapsulation, inject, HostListener, Pipe, Directive, NgModule, APP_INITIALIZER } from '@angular/core';
3
- import * as i1 from '@angular/common';
3
+ import * as i5 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i3$1 from '@angular/forms';
6
6
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
7
  import * as i2 from 'primeng/inputtext';
8
8
  import { InputTextModule } from 'primeng/inputtext';
9
- import * as i5$1 from 'primeng/dropdown';
9
+ import * as i5$2 from 'primeng/dropdown';
10
10
  import { DropdownModule } from 'primeng/dropdown';
11
11
  import { InputGroupModule } from 'primeng/inputgroup';
12
12
  import * as i3$3 from 'primeng/button';
13
13
  import { ButtonModule } from 'primeng/button';
14
- import * as i6$1 from 'primeng/card';
14
+ import * as i6$2 from 'primeng/card';
15
15
  import { CardModule } from 'primeng/card';
16
16
  import * as i3 from 'primeng/sidebar';
17
17
  import { SidebarModule } from 'primeng/sidebar';
@@ -25,7 +25,7 @@ import { EntityStore, StoreConfig, QueryEntity } from '@datorama/akita';
25
25
  import { __decorate } from 'tslib';
26
26
  import { BehaviorSubject, Subject, takeUntil, firstValueFrom, of, tap as tap$1, map, debounceTime, distinctUntilChanged, catchError, Subscription } from 'rxjs';
27
27
  import { DragDropModule } from 'primeng/dragdrop';
28
- import * as i5 from 'primeng/confirmdialog';
28
+ import * as i5$1 from 'primeng/confirmdialog';
29
29
  import { ConfirmDialogModule } from 'primeng/confirmdialog';
30
30
  import * as i6 from 'primeng/toast';
31
31
  import { ToastModule } from 'primeng/toast';
@@ -34,13 +34,13 @@ import { MessagesModule } from 'primeng/messages';
34
34
  import * as i4$2 from 'primeng/tooltip';
35
35
  import { TooltipModule } from 'primeng/tooltip';
36
36
  import { tap } from 'rxjs/operators';
37
- import * as i1$1 from '@angular/common/http';
37
+ import * as i1 from '@angular/common/http';
38
38
  import { HttpClientModule } from '@angular/common/http';
39
39
  import * as i3$4 from '@angular/router';
40
40
  import { RouterModule } from '@angular/router';
41
41
  import * as i2$2 from 'primeng/inputtextarea';
42
42
  import { InputTextareaModule } from 'primeng/inputtextarea';
43
- import * as i5$2 from 'primeng/calendar';
43
+ import * as i5$3 from 'primeng/calendar';
44
44
  import { CalendarModule } from 'primeng/calendar';
45
45
  import moment from 'moment';
46
46
  import { DialogModule } from 'primeng/dialog';
@@ -52,7 +52,7 @@ import { FileUploadModule } from 'primeng/fileupload';
52
52
  import { RippleModule } from 'primeng/ripple';
53
53
  import * as i3$5 from 'primeng/badge';
54
54
  import { BadgeModule } from 'primeng/badge';
55
- import * as i9 from 'primeng/table';
55
+ import * as i6$1 from 'primeng/table';
56
56
  import { TableModule } from 'primeng/table';
57
57
  import { ToggleButtonModule } from 'primeng/togglebutton';
58
58
  import { InputSwitchModule } from 'primeng/inputswitch';
@@ -61,13 +61,14 @@ import * as i12 from 'primeng/paginator';
61
61
  import { PaginatorModule } from 'primeng/paginator';
62
62
  import * as i11 from '@kerwin612/ngx-query-builder';
63
63
  import { QueryBuilderModule } from '@kerwin612/ngx-query-builder';
64
- import * as i1$2 from 'ngx-quill';
64
+ import * as i1$1 from 'ngx-quill';
65
65
  import { QuillModule, QuillConfigModule } from 'ngx-quill';
66
- import * as i5$3 from 'primeng/tabview';
66
+ import * as i5$4 from 'primeng/tabview';
67
67
  import { TabViewModule } from 'primeng/tabview';
68
68
  import hljs from 'highlight.js';
69
69
  import * as i2$3 from 'primeng/chart';
70
70
  import { ChartModule } from 'primeng/chart';
71
+ import { TagModule } from 'primeng/tag';
71
72
 
72
73
  class SHARED {
73
74
  static EMPTY = "";
@@ -176,6 +177,7 @@ class SHARED {
176
177
  static WIDGET_NAME = 'widgetName';
177
178
  static IS_MENU = 'isMenu';
178
179
  static ON_WIDGET_UPDATE = 'onWidgetUpdate';
180
+ static selectedApplicationType = "applicationType";
179
181
  }
180
182
  const widgetLayoutTypeList = [
181
183
  { name: 'Row', value: 'row' },
@@ -478,7 +480,7 @@ class SidebarComponent {
478
480
  this.onClose.emit(false);
479
481
  }
480
482
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SidebarComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
481
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: SidebarComponent, isStandalone: false, selector: "sidebar", inputs: { isSidebarVisible: "isSidebarVisible", title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div *ngIf=\"isSidebarVisible\" class=\"backdrop-shadow\" (click)=\"handleSidebarClose()\"></div>\r\n<div>\r\n<p-sidebar class=\"sidebar-panel-wrapper\" [(visible)]=\"isSidebarVisible\" (onShow)=\"onSidebarShow()\" (onHide)=\"handleSidebarClose()\" [position]=\"'right'\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center\">\r\n <h2 class=\"sidebar-title-wrapper text-color mb-0\">\r\n {{title}}\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <p-divider class=\"sidebar-devider\"></p-divider>\r\n <ng-content></ng-content>\r\n</p-sidebar>", styles: ["::ng-deep .custom-sidebar-overlay{z-index:0!important}::ng-deep .sidebar-panel-wrapper .p-sidebar-header{padding:1.4rem 1rem}::ng-deep .sidebar-panel-wrapper .p-sidebar-content{padding:0}::ng-deep .sidebar-panel-wrapper .p-sidebar-right{width:35%!important}::ng-deep .sidebar-devider .p-divider{margin:0}.sidebar-title-wrapper{font-size:24px;font-weight:700}.backdrop-shadow{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: i4$1.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }] });
483
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: SidebarComponent, isStandalone: false, selector: "sidebar", inputs: { isSidebarVisible: "isSidebarVisible", title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div *ngIf=\"isSidebarVisible\" class=\"backdrop-shadow\" (click)=\"handleSidebarClose()\"></div>\r\n<div>\r\n<p-sidebar class=\"sidebar-panel-wrapper\" [(visible)]=\"isSidebarVisible\" (onShow)=\"onSidebarShow()\" (onHide)=\"handleSidebarClose()\" [position]=\"'right'\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center\">\r\n <h2 class=\"sidebar-title-wrapper text-color mb-0\">\r\n {{title}}\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <p-divider class=\"sidebar-devider\"></p-divider>\r\n <ng-content></ng-content>\r\n</p-sidebar>", styles: ["::ng-deep .custom-sidebar-overlay{z-index:0!important}::ng-deep .sidebar-panel-wrapper .p-sidebar-header{padding:1.4rem 1rem}::ng-deep .sidebar-panel-wrapper .p-sidebar-content{padding:0}::ng-deep .sidebar-panel-wrapper .p-sidebar-right{width:35%!important}::ng-deep .sidebar-devider .p-divider{margin:0}.sidebar-title-wrapper{font-size:24px;font-weight:700}.backdrop-shadow{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: i4$1.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }] });
482
484
  }
483
485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: SidebarComponent, decorators: [{
484
486
  type: Component,
@@ -504,13 +506,15 @@ let BaseStore = class BaseStore extends EntityStore {
504
506
  onDailogClose$;
505
507
  openDocument$;
506
508
  alertMessage$;
509
+ queueList$;
507
510
  constructor() {
508
- super({ records: [], lists: [], attributeModelList: [], isFormSubmitted: SHARED.EMPTY, isApiValidated: null, selectedTemplate: SHARED.EMPTY }, { name: BaseStore_1.storeName });
511
+ super({ records: [], lists: [], attributeModelList: [], isFormSubmitted: SHARED.EMPTY, isApiValidated: null, selectedTemplate: SHARED.EMPTY, updatedData: null }, { name: BaseStore_1.storeName });
509
512
  this.recordChange$ = new BehaviorSubject([]);
510
513
  this.onDocumentAccept$ = new BehaviorSubject({});
511
514
  this.onDailogClose$ = new BehaviorSubject(false);
512
515
  this.openDocument$ = new BehaviorSubject({});
513
516
  this.alertMessage$ = new BehaviorSubject('');
517
+ this.queueList$ = new BehaviorSubject([]);
514
518
  }
515
519
  setList(data) {
516
520
  this.update({ lists: data });
@@ -545,6 +549,12 @@ let BaseStore = class BaseStore extends EntityStore {
545
549
  setAlertMessage(value) {
546
550
  this.alertMessage$.next(value);
547
551
  }
552
+ setQueueList(value) {
553
+ this.queueList$.next(value);
554
+ }
555
+ setUpdatedData(value) {
556
+ this.update({ updatedData: value });
557
+ }
548
558
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
549
559
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseStore, providedIn: 'root' });
550
560
  };
@@ -605,6 +615,9 @@ class BaseQuery extends QueryEntity {
605
615
  getAlertMessage() {
606
616
  return this.store.alertMessage$.asObservable();
607
617
  }
618
+ selectPage() {
619
+ return this.select(state => state['page']);
620
+ }
608
621
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseQuery, deps: [{ token: BaseStore }], target: i0.ɵɵFactoryTarget.Injectable });
609
622
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseQuery, providedIn: 'root' });
610
623
  }
@@ -719,7 +732,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
719
732
  */
720
733
  class CheckBoxComponent extends BaseControlComponent {
721
734
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
722
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: CheckBoxComponent, isStandalone: true, selector: "check-box", usesInheritance: true, ngImport: i0, template: "<div class=\"checkBoxContainer\">\r\n \r\n <div class=\"checkBox\">\r\n <p-checkbox\r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [binary]=\"true\"\r\n inputId=\"binary\"\r\n [label]=\"attributeModel.displayText ?? ''\"\r\n class=\"dynamic-checkbox\"\r\n #checkBox=\"ngModel\"\r\n [ngModel]=\"this.record[this.attributeModel.name]\"\r\n [style]=\"{\r\n '--checkbox-size': attributeModel.customColumnWidth || '20px',\r\n '--checkbox-height': attributeModel.customHeight || '20px'\r\n }\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n (ngModelChange)=\"handleModelChange($event, checkBox.valid)\"\r\n >\r\n </p-checkbox>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n</div>", styles: [".asterisk{color:red}.checkBoxContainer{max-height:100%;display:flex;align-items:center;font-family:var(--font-family);position:relative}.checkBox{position:relative;max-width:100%;max-height:100%;word-wrap:break-word}::ng-deep .dynamic-checkbox .p-checkbox{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}::ng-deep .dynamic-checkbox .p-checkbox .p-checkbox-box{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3$2.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }] });
735
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: CheckBoxComponent, isStandalone: true, selector: "check-box", usesInheritance: true, ngImport: i0, template: "<div class=\"checkBoxContainer\">\r\n \r\n <div class=\"checkBox\">\r\n <p-checkbox\r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [binary]=\"true\"\r\n inputId=\"binary\"\r\n [label]=\"attributeModel.displayText ?? ''\"\r\n class=\"dynamic-checkbox\"\r\n #checkBox=\"ngModel\"\r\n [ngModel]=\"this.record[this.attributeModel.name]\"\r\n [style]=\"{\r\n '--checkbox-size': attributeModel.customColumnWidth || '20px',\r\n '--checkbox-height': attributeModel.customHeight || '20px'\r\n }\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n (ngModelChange)=\"handleModelChange($event, checkBox.valid)\"\r\n >\r\n </p-checkbox>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n</div>", styles: [".asterisk{color:red}.checkBoxContainer{max-height:100%;display:flex;align-items:center;font-family:var(--font-family);position:relative}.checkBox{position:relative;max-width:100%;max-height:100%;word-wrap:break-word}::ng-deep .dynamic-checkbox .p-checkbox{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}::ng-deep .dynamic-checkbox .p-checkbox .p-checkbox-box{width:var(--checkbox-size)!important;height:var(--checkbox-height)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3$2.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }] });
723
736
  }
724
737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CheckBoxComponent, decorators: [{
725
738
  type: Component,
@@ -728,7 +741,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
728
741
 
729
742
  class ButtonComponent extends BaseControlComponent {
730
743
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
731
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: ButtonComponent, isStandalone: true, selector: "lib-button", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"btn-control\">\r\n <p-button\r\n type=\"button\"\r\n [label]=\"attributeModel.buttonLabel ?? 'Click Me'\"\r\n [disabled]=\"attributeModel.isDisabled ?? false\"\r\n [style]=\"{\r\n width: attributeModel.customButtonWidth\r\n ? attributeModel.customButtonWidth\r\n : 'auto',\r\n padding: attributeModel.customPadding\r\n ? attributeModel.customPadding\r\n : '0.5rem' \r\n }\"\r\n [icon]=\"attributeModel.icon ? attributeModel.icon : ''\"\r\n [iconPos]=\"attributeModel.iconPosition ?? 'left'\" \r\n [ngClass]=\"{\r\n 'p-button-primary': attributeModel.isPrimary ?? true,\r\n 'p-button-secondary': !attributeModel.isPrimary\r\n }\"\r\n (onClick)=\"handleButtonClick($event)\"\r\n></p-button>\r\n\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: FormsModule }, { 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"] }] });
744
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: ButtonComponent, isStandalone: true, selector: "lib-button", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"btn-control\">\r\n <p-button\r\n type=\"button\"\r\n [label]=\"attributeModel.buttonLabel ?? 'Click Me'\"\r\n [disabled]=\"attributeModel.isDisabled ?? false\"\r\n [style]=\"{\r\n width: attributeModel.customButtonWidth\r\n ? attributeModel.customButtonWidth\r\n : 'auto',\r\n padding: attributeModel.customPadding\r\n ? attributeModel.customPadding\r\n : '0.5rem' \r\n }\"\r\n [icon]=\"attributeModel.icon ? attributeModel.icon : ''\"\r\n [iconPos]=\"attributeModel.iconPosition ?? 'left'\" \r\n [ngClass]=\"{\r\n 'p-button-primary': attributeModel.isPrimary ?? true,\r\n 'p-button-secondary': !attributeModel.isPrimary\r\n }\"\r\n (onClick)=\"handleButtonClick($event)\"\r\n></p-button>\r\n\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: FormsModule }, { 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"] }] });
732
745
  }
733
746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ButtonComponent, decorators: [{
734
747
  type: Component,
@@ -748,7 +761,7 @@ class TextBoxComponent extends BaseControlComponent {
748
761
  }
749
762
  }
750
763
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
751
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TextBoxComponent, isStandalone: true, selector: "text-box", usesInheritance: true, ngImport: i0, template: "<ng-container >\r\n <div class=\"\">\r\n\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"inputTextBox\">\r\n\r\n <input\r\n pInputText\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n class=\"block p-inputtext w-full\"\r\n [pTooltip]=\"attributeModel.tooltip ?? ''\"\r\n [tooltipPosition]=\"attributeModel.toolTipPosition ?? '' \"\r\n [ngModel]=\"record?.[attributeModel.name] ?? ''\"\r\n [disabled]=\"attributeModel.disable ?? false\" \r\n [readonly]=\"attributeModel.readonly ?? false\"\r\n [name]=\"attributeModel.name ?? 'textBox'\"\r\n [id]=\"attributeModel.name ?? 'textBox'\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : '',\r\n padding: attributeModel.customPadding ? attributeModel.customPadding : ''\r\n }\"\r\n #textboxField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textboxField.valid)\"\r\n [ngClass]=\"{'ng-dirty ng-invalid': (!textboxField.valid && textboxField.dirty)}\"\r\n />\r\n <div *ngIf=\"textboxField.errors?.['required'] && (textboxField.dirty || textboxField.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.inputTextBox{position:relative}.textCount{position:absolute;bottom:23%;right:1%;color:#bcbcbc}.markRed{color:red}.text-value-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
764
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TextBoxComponent, isStandalone: true, selector: "text-box", usesInheritance: true, ngImport: i0, template: "<ng-container >\r\n <div class=\"\">\r\n\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"inputTextBox\">\r\n\r\n <input\r\n pInputText\r\n type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n class=\"block p-inputtext w-full\"\r\n [pTooltip]=\"attributeModel.tooltip ?? ''\"\r\n [tooltipPosition]=\"attributeModel.toolTipPosition ?? '' \"\r\n [ngModel]=\"record?.[attributeModel.name] ?? ''\"\r\n [disabled]=\"attributeModel.disable ?? false\" \r\n [readonly]=\"attributeModel.readonly ?? false\"\r\n [name]=\"attributeModel.name ?? 'textBox'\"\r\n [id]=\"attributeModel.name ?? 'textBox'\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : '',\r\n padding: attributeModel.customPadding ? attributeModel.customPadding : ''\r\n }\"\r\n #textboxField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textboxField.valid)\"\r\n [ngClass]=\"{'ng-dirty ng-invalid': (!textboxField.valid && textboxField.dirty)}\"\r\n />\r\n <div *ngIf=\"textboxField.errors?.['required'] && (textboxField.dirty || textboxField.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.inputTextBox{position:relative}.textCount{position:absolute;bottom:23%;right:1%;color:#bcbcbc}.markRed{color:red}.text-value-wrapper{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4$2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
752
765
  }
753
766
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextBoxComponent, decorators: [{
754
767
  type: Component,
@@ -815,7 +828,7 @@ class FormContainerComponent {
815
828
  this.destroy$.complete();
816
829
  }
817
830
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FormContainerComponent, deps: [{ token: BaseQuery }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
818
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FormContainerComponent, isStandalone: true, selector: "form-container", inputs: { messages: "messages", record: "record", headerText: "headerText", showSave: "showSave", disableSaveButton: "disableSaveButton" }, outputs: { onSave: "onSave", onCancel: "onCancel" }, providers: [MessageService, ConfirmationService], ngImport: i0, template: "<div class=\"form-container\">\r\n <div class=\"text-900 font-bold text-xl form-header m-0 p-0\">\r\n <div class=\"form-header-container w-full mr-0\">\r\n <div class=\"form-header-title\"[innerHTML]=\"this.headerText\">\r\n </div>\r\n <div class=\"form-header-messege w-full\">\r\n <p-messages class=\"message-wrapper\" [(value)]=\"messages\" [enableService]=\"false\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-wrapper\">\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n @if(showSave){\r\n <button\r\n pButton\r\n pRipple\r\n label=\"Cancel\"\r\n (click)=\"handleCancelClick()\"\r\n class=\"p-button-outlined mr-2\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n class=\"p-button-success\"\r\n label=\"Save\"\r\n type=\"button\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"handleSaveClick()\"\r\n ></button>\r\n }\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n </div>\r\n </div>\r\n \r\n \r\n <p-toast></p-toast>\r\n\r\n <div>\r\n <p-confirmDialog>\r\n <ng-template pTemplate=\"message\" let-message>\r\n <div class=\"flex flex-column align-items-center w-full gap-3 border-bottom-1 surface-border\">\r\n <i class=\"pi pi-exclamation-circle text-6xl text-primary-500\"></i>\r\n <p>{{ message.message }}</p>\r\n </div>\r\n </ng-template>\r\n </p-confirmDialog>\r\n </div> \r\n <div class=\"grid m-0 mt-3\">\r\n <div class=\"col-12 p-0\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".form-container{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.form-container.card{padding:0}.form-container .p-button{padding:.5rem 1.25rem}.form-container .form-footer{background-color:var(--surface-100);padding:6px 0;height:46px;width:100%;margin-top:auto;position:sticky;bottom:0;z-index:4}.form-container .form-footer.card{margin-bottom:0!important}.form-container .form-header{padding:6px 0;height:46px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:4;width:100%}.form-container .form-top button{height:fit-content}.form-container .form-header-bg-light{background-color:#e1e2e8!important}.form-container .form-header-bg-dark{background-color:#3b3848!important}.form-container .left-wrapper{display:flex}.form-container .p-16{padding:4px 32px 16px}.form-container .m-16{margin:0 16px}.form-container .errors{position:sticky;top:3.4rem;z-index:1;background-color:var(--surface-900);padding:0 16px}.btn-wrapper{display:flex;justify-content:flex-end;align-items:center}.form-header-container{display:flex;flex-wrap:nowrap;align-items:center;margin-right:2rem}.form-header-container .form-header-title{text-wrap:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i5.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }], encapsulation: i0.ViewEncapsulation.None });
831
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FormContainerComponent, isStandalone: true, selector: "form-container", inputs: { messages: "messages", record: "record", headerText: "headerText", showSave: "showSave", disableSaveButton: "disableSaveButton" }, outputs: { onSave: "onSave", onCancel: "onCancel" }, providers: [MessageService, ConfirmationService], ngImport: i0, template: "<div class=\"form-container\">\r\n <div class=\"text-900 font-bold text-xl form-header m-0 p-0\">\r\n <div class=\"form-header-container w-full mr-0\">\r\n <div class=\"form-header-title\"[innerHTML]=\"this.headerText\">\r\n </div>\r\n <div class=\"form-header-messege w-full\">\r\n <p-messages class=\"message-wrapper\" [(value)]=\"messages\" [enableService]=\"false\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"btn-wrapper\">\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n @if(showSave){\r\n <button\r\n pButton\r\n pRipple\r\n label=\"Cancel\"\r\n (click)=\"handleCancelClick()\"\r\n class=\"p-button-outlined mr-2\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n class=\"p-button-success\"\r\n label=\"Save\"\r\n type=\"button\"\r\n tooltipPosition=\"bottom\"\r\n (click)=\"handleSaveClick()\"\r\n ></button>\r\n }\r\n <ng-content select=\"[headerButtons]\"></ng-content>\r\n </div>\r\n </div>\r\n \r\n \r\n <p-toast></p-toast>\r\n\r\n <div>\r\n <p-confirmDialog>\r\n <ng-template pTemplate=\"message\" let-message>\r\n <div class=\"flex flex-column align-items-center w-full gap-3 border-bottom-1 surface-border\">\r\n <i class=\"pi pi-exclamation-circle text-6xl text-primary-500\"></i>\r\n <p>{{ message.message }}</p>\r\n </div>\r\n </ng-template>\r\n </p-confirmDialog>\r\n </div> \r\n <div class=\"grid m-0 mt-3\">\r\n <div class=\"col-12 p-0\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".form-container{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.form-container.card{padding:0}.form-container .p-button{padding:.5rem 1.25rem}.form-container .form-footer{background-color:var(--surface-100);padding:6px 0;height:46px;width:100%;margin-top:auto;position:sticky;bottom:0;z-index:4}.form-container .form-footer.card{margin-bottom:0!important}.form-container .form-header{padding:6px 0;height:46px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:4;width:100%}.form-container .form-top button{height:fit-content}.form-container .form-header-bg-light{background-color:#e1e2e8!important}.form-container .form-header-bg-dark{background-color:#3b3848!important}.form-container .left-wrapper{display:flex}.form-container .p-16{padding:4px 32px 16px}.form-container .m-16{margin:0 16px}.form-container .errors{position:sticky;top:3.4rem;z-index:1;background-color:var(--surface-900);padding:0 16px}.btn-wrapper{display:flex;justify-content:flex-end;align-items:center}.form-header-container{display:flex;flex-wrap:nowrap;align-items:center;margin-right:2rem}.form-header-container .form-header-title{text-wrap:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i5$1.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }], encapsulation: i0.ViewEncapsulation.None });
819
832
  }
820
833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FormContainerComponent, decorators: [{
821
834
  type: Component,
@@ -859,6 +872,8 @@ class DATASOURCES {
859
872
  static Template = "MessageTemplates";
860
873
  static QUEUESAPICONFIG = "ApiConfigurations/getChildParentFields";
861
874
  static DELETEDICTIONARYITEM = "DataDictionaries/dictionaryItems";
875
+ static APPLICATION_QUEUE_SEARCH = "Applications/search/";
876
+ static APPLICATION_ASSIGNMENT = "ApplicationAssignments/assignApplication/";
862
877
  }
863
878
 
864
879
  /**
@@ -910,7 +925,7 @@ class AppConfigService {
910
925
  this.ensureConfigLoaded();
911
926
  return this.appConfig?.swaggerUrl;
912
927
  }
913
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
928
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
914
929
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, providedIn: 'root' });
915
930
  }
916
931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AppConfigService, decorators: [{
@@ -918,7 +933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
918
933
  args: [{
919
934
  providedIn: 'root'
920
935
  }]
921
- }], ctorParameters: () => [{ type: i1$1.HttpClient }] });
936
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
922
937
 
923
938
  class List {
924
939
  dataSource;
@@ -977,7 +992,7 @@ class ListService {
977
992
  getbyPathName(data) {
978
993
  return this.http.get(this.configService.apiBaseUrl + data);
979
994
  }
980
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, deps: [{ token: i1$1.HttpClient }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, deps: [{ token: i1.HttpClient }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
981
996
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, providedIn: 'root' });
982
997
  }
983
998
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ListService, decorators: [{
@@ -985,7 +1000,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
985
1000
  args: [{
986
1001
  providedIn: 'root',
987
1002
  }]
988
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: AppConfigService }] });
1003
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: AppConfigService }] });
989
1004
 
990
1005
  class BaseService {
991
1006
  store;
@@ -1055,13 +1070,13 @@ class BaseService {
1055
1070
  const baseUrl = this._pathName === DATASOURCES.Template ? this.interactBaseApi : this.apiUrl;
1056
1071
  return this.http.delete(`${baseUrl}${this._pathName}/${id}`).pipe(tap(() => this.store.remove(id)));
1057
1072
  }
1058
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, deps: [{ token: i1$1.HttpClient }, { token: BaseStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
1073
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, deps: [{ token: i1.HttpClient }, { token: BaseStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
1059
1074
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, providedIn: 'root' });
1060
1075
  }
1061
1076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BaseService, decorators: [{
1062
1077
  type: Injectable,
1063
1078
  args: [{ providedIn: 'root' }]
1064
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: BaseStore }, { type: AppConfigService }, { type: ListService }] });
1079
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: BaseStore }, { type: AppConfigService }, { type: ListService }] });
1065
1080
 
1066
1081
  class TablePrimaryModel {
1067
1082
  name;
@@ -1218,7 +1233,7 @@ class DropdownComponent extends BaseControlComponent {
1218
1233
  super.handleModelChange(event, valid);
1219
1234
  }
1220
1235
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DropdownComponent, deps: [{ token: BaseStore }, { token: ListService }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
1221
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DropdownComponent, isStandalone: true, selector: "dropdown", inputs: { isStaticDropdown: "isStaticDropdown" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"dropdownbox\">\r\n\r\n <p-dropdown \r\n \r\n [options]=\"options\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [showClear]=\"true\"\r\n [name]=\"attributeModel.name ?? 'testSingleSelect'\" \r\n [ngModel]=\"record[attributeModel.name]\" \r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [required]=\"attributeModel.isRequired ?? false\"\r\n filterBy=\"label\" \r\n [filter]=\"attributeModel.filter ?? false\" \r\n class=\"dropdownFeild\"\r\n #dropdown=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, dropdown.valid)\" \r\n [ngClass]=\"{'ng-dirty ng-invalid': (!dropdown.valid && dropdown.dirty)}\"\r\n appendTo=\"body\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\">\r\n</p-dropdown>\r\n<div *ngIf=\"dropdown.errors?.['required'] && (dropdown.dirty || dropdown.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n</div>\r\n</div>\r\n\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.p-dropdown,.dropdownFeild{width:100%!important}.dropdownbox{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
1236
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DropdownComponent, isStandalone: true, selector: "dropdown", inputs: { isStaticDropdown: "isStaticDropdown" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container>\r\n <div class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"dropdownbox\">\r\n\r\n <p-dropdown \r\n \r\n [options]=\"options\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n [showClear]=\"true\"\r\n [name]=\"attributeModel.name ?? 'testSingleSelect'\" \r\n [ngModel]=\"record[attributeModel.name]\" \r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [required]=\"attributeModel.isRequired ?? false\"\r\n filterBy=\"label\" \r\n [filter]=\"attributeModel.filter ?? false\" \r\n class=\"dropdownFeild\"\r\n #dropdown=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, dropdown.valid)\" \r\n [ngClass]=\"{'ng-dirty ng-invalid': (!dropdown.valid && dropdown.dirty)}\"\r\n appendTo=\"body\" \r\n optionLabel=\"label\" \r\n optionValue=\"value\">\r\n</p-dropdown>\r\n<div *ngIf=\"dropdown.errors?.['required'] && (dropdown.dirty || dropdown.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n</div>\r\n</div>\r\n\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.p-dropdown,.dropdownFeild{width:100%!important}.dropdownbox{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
1222
1237
  }
1223
1238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DropdownComponent, decorators: [{
1224
1239
  type: Component,
@@ -1561,7 +1576,7 @@ class DateComponent extends BaseControlComponent {
1561
1576
  return SHARED.EMPTY;
1562
1577
  }
1563
1578
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateComponent, deps: [{ token: BaseStore }, { token: DateParserService }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
1564
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: DateComponent, isStandalone: true, selector: "date", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (attributeModel && record) {\r\n<div class=\"\">\r\n <div class=\"mb-2\">\r\n <label>{{\r\n attributeModel?.displayText\r\n ? attributeModel?.displayText\r\n : attributeModel?.name\r\n }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{ 'font-size': '14px', color: '#0F1729', 'font-weight':'600' }\">\r\n <label>{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div>\r\n <p-calendar\r\n [showIcon]=\"attributeModel.showCalenderIcon ?? true\"\r\n inputId=\"icon\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [name]=\"attributeModel?.name ? attributeModel?.name : 'testDatePicker'\"\r\n [placeholder]=\"\r\n attributeModel.placeholder ? attributeModel.placeholder : ''\r\n \"\r\n [yearRange]=\"attributeModel.yearRange ?? '1950 : 2050'\"\r\n [title]=\"attributeModel.title ? attributeModel.title : ''\"\r\n [(ngModel)]=\"record[attributeModel?.name]\"\r\n #dateField=\"ngModel\"\r\n [dateFormat]=\"'dd/mm/yy'\"\r\n appendTo=\"body\"\r\n (ngModelChange)=\"handleModelChange($event, dateField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !dateField.valid && error == attributeModel?.name\r\n }\"\r\n [hourFormat]=\"attributeModel?.hourFormat ? '24' : ''\"\r\n >\r\n </p-calendar>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i5$2.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1579
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: DateComponent, isStandalone: true, selector: "date", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (attributeModel && record) {\r\n<div class=\"\">\r\n <div class=\"mb-2\">\r\n <label>{{\r\n attributeModel?.displayText\r\n ? attributeModel?.displayText\r\n : attributeModel?.name\r\n }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{ 'font-size': '14px', color: '#0F1729', 'font-weight':'600' }\">\r\n <label>{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div>\r\n <p-calendar\r\n [showIcon]=\"attributeModel.showCalenderIcon ?? true\"\r\n inputId=\"icon\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [name]=\"attributeModel?.name ? attributeModel?.name : 'testDatePicker'\"\r\n [placeholder]=\"\r\n attributeModel.placeholder ? attributeModel.placeholder : ''\r\n \"\r\n [yearRange]=\"attributeModel.yearRange ?? '1950 : 2050'\"\r\n [title]=\"attributeModel.title ? attributeModel.title : ''\"\r\n [(ngModel)]=\"record[attributeModel?.name]\"\r\n #dateField=\"ngModel\"\r\n [dateFormat]=\"'dd/mm/yy'\"\r\n appendTo=\"body\"\r\n (ngModelChange)=\"handleModelChange($event, dateField.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !dateField.valid && error == attributeModel?.name\r\n }\"\r\n [hourFormat]=\"attributeModel?.hourFormat ? '24' : ''\"\r\n >\r\n </p-calendar>\r\n </div>\r\n }\r\n</div>\r\n\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i5$3.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1565
1580
  }
1566
1581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DateComponent, decorators: [{
1567
1582
  type: Component,
@@ -1573,7 +1588,7 @@ class FileUploadComponent extends BaseControlComponent {
1573
1588
  console.log(event);
1574
1589
  }
1575
1590
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1576
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FileUploadComponent, isStandalone: true, selector: "file-upload", usesInheritance: true, ngImport: i0, template: "<ng-container class=\"documentContainer\">\r\n @if(!attributeModel.hideLabelOnForm){\r\n <div class=\"mb-2\">\r\n <label class=\"form-header-label\">{{ attributeModel?.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n }\r\n<div class=\"card flex justify-content-center\">\r\n <p-fileUpload \r\n mode=\"basic\" \r\n [chooseLabel]=\"record[attributeModel.name] ? attributeModel.displayText : 'No Files'\"\r\n chooseIcon=\"pi pi-plus\"\r\n [name]=\"attributeModel?.name\"\r\n accept=\"image/*,application/pdf\" \r\n [maxFileSize]=\"209715200\" class=\"fileUploader\"\r\n (onSelect)=\"handleSingleUpload($event)\" />\r\n</div>\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$1.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }] });
1591
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: FileUploadComponent, isStandalone: true, selector: "file-upload", usesInheritance: true, ngImport: i0, template: "<ng-container class=\"documentContainer\">\r\n @if(!attributeModel.hideLabelOnForm){\r\n <div class=\"mb-2\">\r\n <label class=\"form-header-label\">{{ attributeModel?.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n }\r\n<div class=\"card flex justify-content-center\">\r\n <p-fileUpload \r\n mode=\"basic\" \r\n [chooseLabel]=\"record[attributeModel.name] ? attributeModel.displayText : 'No Files'\"\r\n chooseIcon=\"pi pi-plus\"\r\n [name]=\"attributeModel?.name\"\r\n accept=\"image/*,application/pdf\" \r\n [maxFileSize]=\"209715200\" class=\"fileUploader\"\r\n (onSelect)=\"handleSingleUpload($event)\" />\r\n</div>\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FileUploadModule }, { kind: "component", type: i2$1.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }] });
1577
1592
  }
1578
1593
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: FileUploadComponent, decorators: [{
1579
1594
  type: Component,
@@ -1614,7 +1629,7 @@ class TextAreaComponent extends BaseControlComponent {
1614
1629
  }
1615
1630
  }
1616
1631
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1617
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TextAreaComponent, isStandalone: true, selector: "text-area", inputs: { rowspan: "rowspan" }, usesInheritance: true, ngImport: i0, template: "<ng-container class=\"textAreaContainer\">\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"textAreaControl\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"rowspan ?? 3\"\r\n cols=\"30\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [ngModel]=\"record[attributeModel.name]\"\r\n [name]=\"attributeModel.name ?? 'textArea'\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : ''\r\n }\"\r\n #textArea=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textArea.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textArea.valid && error == attributeModel?.name)\r\n \r\n }\"\r\n ></textarea>\r\n <div *ngIf=\"textArea.errors?.['required'] && (textArea.dirty || textArea.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n </div>\r\n </div>\r\n }\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.textAreaControl{position:relative}.textAreaControl textarea{width:100%;resize:vertical}.textCount{position:absolute;bottom:10%;right:2%;color:#bcbcbc}.markRed{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextareaModule }, { kind: "directive", type: i2$2.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1632
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TextAreaComponent, isStandalone: true, selector: "text-area", inputs: { rowspan: "rowspan" }, usesInheritance: true, ngImport: i0, template: "<ng-container class=\"textAreaContainer\">\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n @if (attributeModel.readonly) {\r\n <div class=\"mb-2\" [ngStyle]=\"{'font-size':'14px', 'color':'#0F1729', 'font-weight':'600' }\">\r\n <label class=\"text-value-wrapper\" [ngStyle]=\"{color: attributeModel.textColorOnReadonly}\">{{ getValue() }}</label>\r\n </div>\r\n } @else {\r\n <div class=\"textAreaControl\">\r\n <textarea\r\n pInputTextarea\r\n [rows]=\"rowspan ?? 3\"\r\n cols=\"30\"\r\n [disabled]=\"attributeModel?.readonly ?? false\"\r\n [ngModel]=\"record[attributeModel.name]\"\r\n [name]=\"attributeModel.name ?? 'textArea'\"\r\n [required]=\"attributeModel?.isRequired ?? false\"\r\n [ngStyle]=\"{\r\n width: attributeModel.customColumnWidth\r\n ? attributeModel.customColumnWidth\r\n : ''\r\n }\"\r\n #textArea=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, textArea.valid)\"\r\n [ngClass]=\"{\r\n 'ng-dirty ng-invalid':\r\n (!textArea.valid && error == attributeModel?.name)\r\n \r\n }\"\r\n ></textarea>\r\n <div *ngIf=\"textArea.errors?.['required'] && (textArea.dirty || textArea.touched)\" class=\"error-message\">\r\n <small class=\"p-error\"><span class=\"capitalize\">{{attributeModel.name}}</span> is required</small>\r\n </div>\r\n </div>\r\n }\r\n</ng-container>\r\n", styles: [".asterisk{color:red}.textAreaControl{position:relative}.textAreaControl textarea{width:100%;resize:vertical}.textCount{position:absolute;bottom:10%;right:2%;color:#bcbcbc}.markRed{color:red}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: InputTextareaModule }, { kind: "directive", type: i2$2.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1618
1633
  }
1619
1634
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TextAreaComponent, decorators: [{
1620
1635
  type: Component,
@@ -1636,7 +1651,7 @@ class QueueSearchCustomerComponent {
1636
1651
  console.log(SHARED.SELECTED_QUEUE, this.selectedQueue);
1637
1652
  }
1638
1653
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueSearchCustomerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1639
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueSearchCustomerComponent, isStandalone: false, selector: "queue-search-customer", ngImport: i0, template: "<div class=\"flex mt-5 xl:mt-0 xl:justify-content-between xl:align-items-center vh-100\">\r\n <div class=\"p-field m-0 p-0 w-full bg-white border-round\">\r\n <div class=\"p-inputgroup border-round-left bg-white\">\r\n <span class=\"p-inputgroup-addon bg-white\">\r\n <i class=\"pi pi-search\"></i>\r\n </span>\r\n <input type=\"text\" class=\"border-none h-44 border-noround-right bg-white\" pInputText placeholder=\"Search with Applicaiton no., Name or Address\" />\r\n </div>\r\n </div>\r\n <div class=\"p-field m-0 p-0 py-2 border-round-right border-noround-left\">\r\n <p-dropdown \r\n [styleClass]=\"'bg-white font-bold'\"\r\n [options]=\"queues\" \r\n [(ngModel)]=\"selectedQueue\" \r\n placeholder=\"All queue\"\r\n optionLabel=\"name\"\r\n class=\"left-arrow-dropdown\"\r\n ></p-dropdown>\r\n </div>\r\n <div class=\"p-field p-0 m-0 ml-3\">\r\n <button class=\"py-3 border-none\" pButton type=\"button\" label=\"Search\" (click)=\"onSearch()\"></button>\r\n </div>\r\n </div>\r\n ", styles: [".p-inputgroup{width:100%}.bg-primary{background-color:#d9d9d9}::ng-deep .left-arrow-dropdown .p-dropdown{direction:rtl;width:100%;height:44px;border-top-left-radius:0;border-bottom-left-radius:0}::ng-deep .left-arrow-dropdown .p-dropdown-label{display:flex;align-items:center}.h-44{height:44px}@media screen and (min-width: 1200px){.vh-100{height:calc(100vh - 170px)}}.bg-while{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i5$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] });
1654
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueSearchCustomerComponent, isStandalone: false, selector: "queue-search-customer", ngImport: i0, template: "<div class=\"flex mt-5 xl:mt-0 xl:justify-content-between xl:align-items-center vh-100\">\r\n <div class=\"p-field m-0 p-0 w-full bg-white border-round\">\r\n <div class=\"p-inputgroup border-round-left bg-white\">\r\n <span class=\"p-inputgroup-addon bg-white\">\r\n <i class=\"pi pi-search\"></i>\r\n </span>\r\n <input type=\"text\" class=\"border-none h-44 border-noround-right bg-white\" pInputText placeholder=\"Search with Applicaiton no., Name or Address\" />\r\n </div>\r\n </div>\r\n <div class=\"p-field m-0 p-0 py-2 border-round-right border-noround-left\">\r\n <p-dropdown \r\n [styleClass]=\"'bg-white font-bold'\"\r\n [options]=\"queues\" \r\n [(ngModel)]=\"selectedQueue\" \r\n placeholder=\"All queue\"\r\n optionLabel=\"name\"\r\n class=\"left-arrow-dropdown\"\r\n ></p-dropdown>\r\n </div>\r\n <div class=\"p-field p-0 m-0 ml-3\">\r\n <button class=\"py-3 border-none\" pButton type=\"button\" label=\"Search\" (click)=\"onSearch()\"></button>\r\n </div>\r\n </div>\r\n ", styles: [".p-inputgroup{width:100%}.bg-primary{background-color:#d9d9d9}::ng-deep .left-arrow-dropdown .p-dropdown{direction:rtl;width:100%;height:44px;border-top-left-radius:0;border-bottom-left-radius:0}::ng-deep .left-arrow-dropdown .p-dropdown-label{display:flex;align-items:center}.h-44{height:44px}@media screen and (min-width: 1200px){.vh-100{height:calc(100vh - 170px)}}.bg-while{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i5$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] });
1640
1655
  }
1641
1656
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueSearchCustomerComponent, decorators: [{
1642
1657
  type: Component,
@@ -1644,6 +1659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
1644
1659
  }], ctorParameters: () => [] });
1645
1660
 
1646
1661
  class ROUTES {
1662
+ static RECORD = 'record/';
1647
1663
  static QUEUE_FORM = "/queue/";
1648
1664
  static DICTIONARY_CREATE_FORM = '/DataDictionaries';
1649
1665
  static DICTIONARY = '/DataDictionaries/';
@@ -1697,7 +1713,7 @@ class BlockListComponent {
1697
1713
  }
1698
1714
  }
1699
1715
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BlockListComponent, deps: [{ token: i3$4.Router }], target: i0.ɵɵFactoryTarget.Component });
1700
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: BlockListComponent, isStandalone: true, selector: "block-list", inputs: { queueData: "queueData", showQueueDataForm: "showQueueDataForm" }, outputs: { queueDataById: "queueDataById" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card p-4 pr-3 mb-0\">\r\n <!-- <div class=\"px-4 w-full flex\">\r\n <button pButton pRipple label=\"Add New Queue\" routerLinkActive=\"router-link-active\" icon=\"pi pi-plus font-semibold\" class=\"py-3 justify-content-center font-semibold w-full border-round\" (click)=\"insertQueue()\"></button>\r\n </div> -->\r\n <div class=\"queues overflow-y-scroll scrollable\">\r\n\r\n @for(queue of queueData; let i = $index; track queue){\r\n <div class=\"flex flex-column gap-5 overflow-y-auto scrollable kanban-list\" [ngClass]=\"i !== 0 ? 'mt-2 pt-1' : ''\" #listEl style=\"min-height:2rem\" (click)=\"handleQueueClick(queue._id, false)\" >\r\n <div class=\"flex flex-column py-4 px-3 cursor-pointer queue-list-wrapper\" [ngClass]=\"{'active-queue-wrapper': queue._id === this.selectedQueueId}\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': queue._id === this.selectedQueueId}\"\r\n >{{queue.name}}</span>\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"flex flex-column gap-5 overflow-y-auto mt-2 pt-1 scrollable kanban-list\" #listEl style=\"min-height:2rem\" >\r\n <div class=\"flex flex-column py-4 px-3 p-3 cursor-pointer queue-list-wrapper\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n >Total Loss</span>\r\n <p-badge [value]=\"11\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-column gap-5 overflow-y-auto mt-2 pt-1 scrollable kanban-list\" #listEl style=\"min-height:2rem\" >\r\n <div class=\"flex flex-column py-4 px-3 p-3 cursor-pointer queue-list-wrapper\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n >Repair</span>\r\n <p-badge [value]=\"7\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> ", styles: [".block-list-wrapper{height:calc(100vh - 260px);overflow-y:scroll}.card{height:86vh}.scrollable{scroll-behavior:smooth;max-height:75vh}.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}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background-color:#868181;border-radius:20px}.queue-name{max-width:150px;word-wrap:break-word;white-space:normal}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RippleModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i3$5.Badge, selector: "p-badge", inputs: ["styleClass", "style", "badgeSize", "severity", "value", "badgeDisabled", "size"] }] });
1716
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: BlockListComponent, isStandalone: true, selector: "block-list", inputs: { queueData: "queueData", showQueueDataForm: "showQueueDataForm" }, outputs: { queueDataById: "queueDataById" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"card p-4 pr-3 mb-0\">\r\n <!-- <div class=\"px-4 w-full flex\">\r\n <button pButton pRipple label=\"Add New Queue\" routerLinkActive=\"router-link-active\" icon=\"pi pi-plus font-semibold\" class=\"py-3 justify-content-center font-semibold w-full border-round\" (click)=\"insertQueue()\"></button>\r\n </div> -->\r\n <div class=\"queues overflow-y-scroll scrollable\">\r\n\r\n @for(queue of queueData; let i = $index; track queue){\r\n <div class=\"flex flex-column gap-5 overflow-y-auto scrollable kanban-list\" [ngClass]=\"i !== 0 ? 'mt-2 pt-1' : ''\" #listEl style=\"min-height:2rem\" (click)=\"handleQueueClick(queue._id, false)\" >\r\n <div class=\"flex flex-column py-4 px-3 cursor-pointer queue-list-wrapper\" [ngClass]=\"{'active-queue-wrapper': queue._id === this.selectedQueueId}\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n [ngClass]=\"{'active-title-wrapper': queue._id === this.selectedQueueId}\"\r\n >{{queue.name}}</span>\r\n <p-badge [value]=\"queue.itemCount\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"flex flex-column gap-5 overflow-y-auto mt-2 pt-1 scrollable kanban-list\" #listEl style=\"min-height:2rem\" >\r\n <div class=\"flex flex-column py-4 px-3 p-3 cursor-pointer queue-list-wrapper\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n >Total Loss</span>\r\n <p-badge [value]=\"11\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-column gap-5 overflow-y-auto mt-2 pt-1 scrollable kanban-list\" #listEl style=\"min-height:2rem\" >\r\n <div class=\"flex flex-column py-4 px-3 p-3 cursor-pointer queue-list-wrapper\">\r\n <div class=\"flex text-center justify-content-between flex align-items-center\">\r\n <!-- <button class=\"btn-edit\" type=\"button\" pButton pRipple icon=\"pi pi-pencil\" -->\r\n <!-- (click)=\"handleQueueClick(queue._id, true)\"></button> -->\r\n <span class=\"text-color queue-name font-semibold\"\r\n >Repair</span>\r\n <p-badge [value]=\"7\" severity=\"primary\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div> ", styles: [".block-list-wrapper{height:calc(100vh - 260px);overflow-y:scroll}.card{height:86vh}.scrollable{scroll-behavior:smooth;max-height:75vh}.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}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background-color:#868181;border-radius:20px}.queue-name{max-width:150px;word-wrap:break-word;white-space:normal}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: RippleModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i3$5.Badge, selector: "p-badge", inputs: ["styleClass", "style", "badgeSize", "severity", "value", "badgeDisabled", "size"] }] });
1701
1717
  }
1702
1718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: BlockListComponent, decorators: [{
1703
1719
  type: Component,
@@ -1892,7 +1908,7 @@ class HEADERS {
1892
1908
 
1893
1909
  class UsernameComponent extends BaseControlComponent {
1894
1910
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: UsernameComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1895
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: UsernameComponent, isStandalone: true, selector: "username", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"username-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-envelope\"></i>\r\n <input pInputText type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [ngModel]=\"record[attributeModel.name]\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n #usernameField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, usernameField.valid)\" \r\n />\r\n </span>\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1911
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: UsernameComponent, isStandalone: true, selector: "username", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"username-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-envelope\"></i>\r\n <input pInputText type=\"text\"\r\n autocomplete=\"off\"\r\n [placeholder]=\"attributeModel.placeholder ?? ''\" \r\n [ngModel]=\"record[attributeModel.name]\"\r\n [required]=\"attributeModel.isRequired ?? false\" \r\n [disabled]=\"attributeModel.readonly ?? false\"\r\n #usernameField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, usernameField.valid)\" \r\n />\r\n </span>\r\n </div>\r\n </ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1896
1912
  }
1897
1913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: UsernameComponent, decorators: [{
1898
1914
  type: Component,
@@ -1908,7 +1924,7 @@ class PasswordComponent extends BaseControlComponent {
1908
1924
  this.invalidPasswordErrorMsg = "Invalid Password";
1909
1925
  }
1910
1926
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: PasswordComponent, deps: [{ token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
1911
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: PasswordComponent, isStandalone: true, selector: "password", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"password-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-key\"></i>\r\n <input type=\"password\" autocomplete=\"off\" pInputText [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n [ngModel]=\"record[attributeModel.name]\" [required]=\"attributeModel.isRequired ?? false\" #passwordField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, passwordField.valid)\" [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !passwordField.valid && error == attributeModel.name\r\n }\" class=\"block p-inputtext\" />\r\n\r\n </span>\r\n </div>\r\n @if (!passwordField.valid && passwordField.dirty) {\r\n <div>\r\n <small id=\"password-help\" class=\"p-error\">{{\r\n invalidPasswordErrorMsg\r\n }}</small>\r\n </div>\r\n }\r\n\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1927
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: PasswordComponent, isStandalone: true, selector: "password", usesInheritance: true, ngImport: i0, template: "<ng-container>\r\n <div *ngIf=\"attributeModel.displayText\" class=\"mb-2\">\r\n <label>{{ attributeModel.displayText }}</label>\r\n <span class=\"asterisk ml-1\" *ngIf=\"attributeModel.isRequired\">*</span>\r\n </div>\r\n <div class=\"password-control\">\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-key\"></i>\r\n <input type=\"password\" autocomplete=\"off\" pInputText [placeholder]=\"attributeModel.placeholder ?? ''\"\r\n [ngModel]=\"record[attributeModel.name]\" [required]=\"attributeModel.isRequired ?? false\" #passwordField=\"ngModel\"\r\n (ngModelChange)=\"handleModelChange($event, passwordField.valid)\" [ngClass]=\"{\r\n 'ng-dirty ng-invalid': !passwordField.valid && error == attributeModel.name\r\n }\" class=\"block p-inputtext\" />\r\n\r\n </span>\r\n </div>\r\n @if (!passwordField.valid && passwordField.dirty) {\r\n <div>\r\n <small id=\"password-help\" class=\"p-error\">{{\r\n invalidPasswordErrorMsg\r\n }}</small>\r\n </div>\r\n }\r\n\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1912
1928
  }
1913
1929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: PasswordComponent, decorators: [{
1914
1930
  type: Component,
@@ -2166,7 +2182,7 @@ class TablePrimaryComponent {
2166
2182
  this.templateDestroy$.complete();
2167
2183
  }
2168
2184
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, deps: [{ token: i3$4.Router }, { token: BaseService }, { token: TableBuilder }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
2169
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TablePrimaryComponent, isStandalone: true, selector: "lib-table-primary", inputs: { table: "table", metaData: "metaData", title: "title", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton", pathName: "pathName" }, viewQueries: [{ propertyName: "dt2", first: true, predicate: ["dt2"], descendants: true }, { propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], ngImport: i0, template: "<p-table #dt2 [lazy]=\"true\" \r\n [paginator]=\"false\"\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPage)=\"handleLoadRecords($event)\"\r\n [ngClass]=\"{'no-pagination': metaData.totalItems <= 10}\"\r\n [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center w-full\" *ngIf=\"showSearchBar\">\r\n <div class=\"grid m-0 flex align-items-center w-full\">\r\n <div class=\"col-8 pl-0\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"'Search ...'\" class=\"search-input-wrapper w-full\" />\r\n </div>\r\n <div class=\"col-4 pr-0 flex align-items-center justify-content-end gap-2 filter-dropdown-wrapper\">\r\n <p-dropdown \r\n [options]=\"statusList\" \r\n [(ngModel)]=\"isDataActive\" \r\n optionLabel=\"name\" \r\n placeholder=\"Status\"\r\n (onChange)=\"onStatusChange($event)\"\r\n />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\" [pSortableColumn]=\"col.name\" (click)=\"handleSortColumn(col.name)\">\r\n <span class=\"table-title-wrapper text-overflow-wrapper p-0 mt-1\">{{ col.name }}</span>\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" [permission]=\"this.table.editPermission ?? this.table.deletePermission\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-title-wrapper text-overflow-wrapper capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper text-overflow-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n <span *ngIf=\"col.name.toLowerCase() === 'body'; else normalText\" [innerHTML]=\"decodeHtml(rowData[col.name])\"></span>\r\n <ng-template #normalText>\r\n {{ rowData[col.name] }}\r\n </ng-template>\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" [permission]=\"this.table.editPermission\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" [permission]=\"this.table.deletePermission\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <!-- <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button> -->\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0)\" class=\"text-center text-color font-semibold p-4\">\r\n No records found\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<div *ngIf=\"metaData.totalItems > 10\" class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper bg-white\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ (metaData.currentPage - 1) * metaData.itemsPerPage + 1 }} to {{ recordNumber }} of {{ metaData?.totalItems || 0 }} entries\r\n </div>\r\n \r\n <p-paginator\r\n #paginator\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\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}.text-overflow-wrapper{display:block;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:14px;-webkit-line-clamp:1}.table-text-wrapper{-webkit-line-clamp:2}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.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}.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}.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}.radio-label-wrapper{color:#0f1729}.table-pagination-wrapper{border-radius:0 0 10px 10px;padding-bottom:10px}::ng-deep .no-pagination .p-datatable-table{border-radius:0 0 10px 10px;padding-bottom:24px!important}::ng-deep .filter-dropdown-wrapper .p-dropdown{padding:5px;background:#fff;border-radius:10px;border:1px solid rgba(76,98,146,.1)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-placeholder{color:var(--primary-color)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-dropdown-clear-icon{color:var(--primary-color)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-dropdown-trigger{color:var(--primary-color)}::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 .p-sortable-column.p-highlight,::ng-deep .p-sortable-column:not(.p-highlight):hover{background-color:inherit}::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 .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-primary-container .p-datatable-table{min-width:50rem;padding:20px 20px 12px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\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: "ngmodule", type: SharedModule }, { kind: "directive", type: HasPermissionDirective, selector: "[permission]", inputs: ["permission"] }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i9.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: i9.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i9.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { 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: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RadioButtonModule }, { 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: "component", type: i5$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: DropdownModule }] });
2185
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TablePrimaryComponent, isStandalone: true, selector: "lib-table-primary", inputs: { table: "table", metaData: "metaData", title: "title", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton", pathName: "pathName" }, viewQueries: [{ propertyName: "dt2", first: true, predicate: ["dt2"], descendants: true }, { propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], ngImport: i0, template: "<p-table #dt2 [lazy]=\"true\" \r\n [paginator]=\"false\"\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPage)=\"handleLoadRecords($event)\"\r\n [ngClass]=\"{'no-pagination': metaData.totalItems <= 10}\"\r\n [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center w-full\" *ngIf=\"showSearchBar\">\r\n <div class=\"grid m-0 flex align-items-center w-full\">\r\n <div class=\"col-8 pl-0\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (ngModelChange)=\"onSearchChange($event)\"\r\n [placeholder]=\"'Search ...'\" class=\"search-input-wrapper w-full\" />\r\n </div>\r\n <div class=\"col-4 pr-0 flex align-items-center justify-content-end gap-2 filter-dropdown-wrapper\">\r\n <p-dropdown \r\n [options]=\"statusList\" \r\n [(ngModel)]=\"isDataActive\" \r\n optionLabel=\"name\" \r\n placeholder=\"Status\"\r\n (onChange)=\"onStatusChange($event)\"\r\n />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\" [pSortableColumn]=\"col.name\" (click)=\"handleSortColumn(col.name)\">\r\n <span class=\"table-title-wrapper text-overflow-wrapper p-0 mt-1\">{{ col.name }}</span>\r\n <p-sortIcon [field]=\"col.name\"></p-sortIcon>\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" [permission]=\"this.table.editPermission ?? this.table.deletePermission\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-title-wrapper text-overflow-wrapper capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper text-overflow-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n <span *ngIf=\"col.name.toLowerCase() === 'body'; else normalText\" [innerHTML]=\"decodeHtml(rowData[col.name])\"></span>\r\n <ng-template #normalText>\r\n {{ rowData[col.name] }}\r\n </ng-template>\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" [permission]=\"this.table.editPermission\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" [permission]=\"this.table.deletePermission\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <!-- <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button> -->\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"table.headers.length + (showActions ? 1 : 0)\" class=\"text-center text-color font-semibold p-4\">\r\n No records found\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n\r\n<div *ngIf=\"metaData.totalItems > 10\" class=\"paginator-container flex align-items-center justify-content-center table-pagination-wrapper bg-white\">\r\n <div class=\"pagination-text text-color\">\r\n Showing {{ (metaData.currentPage - 1) * metaData.itemsPerPage + 1 }} to {{ recordNumber }} of {{ metaData?.totalItems || 0 }} entries\r\n </div>\r\n \r\n <p-paginator\r\n #paginator\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\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}.text-overflow-wrapper{display:block;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:14px;-webkit-line-clamp:1}.table-text-wrapper{-webkit-line-clamp:2}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.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}.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}.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}.radio-label-wrapper{color:#0f1729}.table-pagination-wrapper{border-radius:0 0 10px 10px;padding-bottom:10px}::ng-deep .no-pagination .p-datatable-table{border-radius:0 0 10px 10px;padding-bottom:24px!important}::ng-deep .filter-dropdown-wrapper .p-dropdown{padding:5px;background:#fff;border-radius:10px;border:1px solid rgba(76,98,146,.1)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-placeholder{color:var(--primary-color)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-dropdown-clear-icon{color:var(--primary-color)}::ng-deep .filter-dropdown-wrapper .p-dropdown .p-dropdown-trigger{color:var(--primary-color)}::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 .p-sortable-column.p-highlight,::ng-deep .p-sortable-column:not(.p-highlight):hover{background-color:inherit}::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 .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-primary-container .p-datatable-table{min-width:50rem;padding:20px 20px 12px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: HasPermissionDirective, selector: "[permission]", inputs: ["permission"] }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { 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: i6$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i6$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { 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: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: RadioButtonModule }, { 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: "component", type: i5$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: DropdownModule }] });
2170
2186
  }
2171
2187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, decorators: [{
2172
2188
  type: Component,
@@ -2197,6 +2213,282 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
2197
2213
  args: [SHARED.PAGINATOR]
2198
2214
  }] } });
2199
2215
 
2216
+ /**
2217
+ * A reusable table component that displays dynamic data using PrimeNG's Table.
2218
+ * Supports features like pagination, search, row actions, selection, and routing.
2219
+ */
2220
+ class TableSecondaryComponent {
2221
+ _router;
2222
+ service;
2223
+ activatedRoute;
2224
+ baseQuery;
2225
+ baseStore;
2226
+ table;
2227
+ metaData;
2228
+ title;
2229
+ builder;
2230
+ showStatus = true;
2231
+ showActions = true;
2232
+ showSearchBar = true;
2233
+ showNewRecordButton = true;
2234
+ showRefreshButton = true;
2235
+ pathName;
2236
+ selectionMode;
2237
+ selection;
2238
+ usePagination = true; // ✅ Pagination control
2239
+ selectionChange = new EventEmitter();
2240
+ rowSelection;
2241
+ rowSelectionChange = new EventEmitter();
2242
+ enableSelection = true;
2243
+ noRecordsMessage = 'No records found';
2244
+ recordNumber;
2245
+ page = 1;
2246
+ limit = 10;
2247
+ first = 0;
2248
+ globalFilter = SHARED.EMPTY;
2249
+ paginator;
2250
+ onDeleteRow = new EventEmitter();
2251
+ searchTerm = SHARED.EMPTY;
2252
+ filterQuery = SHARED.EMPTY;
2253
+ constructor(_router, service, activatedRoute, baseQuery, baseStore) {
2254
+ this._router = _router;
2255
+ this.service = service;
2256
+ this.activatedRoute = activatedRoute;
2257
+ this.baseQuery = baseQuery;
2258
+ this.baseStore = baseStore;
2259
+ }
2260
+ /**
2261
+ * Lifecycle hook that is called after data-bound properties are initialized.
2262
+ * Initializes the record count and validates table headers.
2263
+ */
2264
+ ngOnInit() {
2265
+ if (this.table && this.table.headers && this.table.headers.length === 0) {
2266
+ console.error('Table headers are missing.');
2267
+ }
2268
+ this.recordNumber = Math.min(this.metaData.currentPage * this.metaData.itemsPerPage, this.metaData.totalItems);
2269
+ }
2270
+ /**
2271
+ * Lifecycle hook called when any data-bound property changes.
2272
+ * Resets pagination if page is changed.
2273
+ */
2274
+ ngOnChanges() {
2275
+ this.baseQuery.selectPage().subscribe((res) => {
2276
+ if (this.paginator) {
2277
+ this.paginator.first = 0;
2278
+ }
2279
+ });
2280
+ this.recordNumber = Math.min(this.metaData.currentPage * this.metaData.itemsPerPage, this.metaData.totalItems);
2281
+ }
2282
+ /**
2283
+ * Returns the unique key used to identify each row in the table.
2284
+ * @returns {string} The data key used for identifying rows, or an empty string if not set.
2285
+ */
2286
+ get validDataKey() {
2287
+ return this.table?.dataKey ?? SHARED.EMPTY;
2288
+ }
2289
+ /**
2290
+ * Clears the global search filter and resets the table.
2291
+ * @param {any} table - The PrimeNG table instance.
2292
+ */
2293
+ clearSearch(table) {
2294
+ this.globalFilter = SHARED.EMPTY;
2295
+ table.clear();
2296
+ }
2297
+ /**
2298
+ * Navigates to the route for creating a new record.
2299
+ */
2300
+ handleCreate() {
2301
+ const currentRouteURL = this._router.url;
2302
+ this._router.navigate([currentRouteURL + SHARED.SLASH + SHARED.ZERO]);
2303
+ }
2304
+ /**
2305
+ * Navigates to the edit page for the given record ID.
2306
+ * @param {number} id - The ID of the record to edit.
2307
+ */
2308
+ handleEditClick(id) {
2309
+ const currentRouteURL = this._router.url;
2310
+ this._router.navigate([currentRouteURL + SHARED.SLASH + id]);
2311
+ }
2312
+ /**
2313
+ * Logs row data intended for editing.
2314
+ * @param {any} rowData - The data of the row to edit.
2315
+ */
2316
+ editRow(rowData) {
2317
+ console.log('Edit Row:', rowData);
2318
+ }
2319
+ /**
2320
+ * Handles the deletion of a row by emitting the row data and preventing event propagation.
2321
+ * @param {Event} event - The DOM event triggered by the delete action.
2322
+ * @param {any} rowData - The data object of the row to be deleted.
2323
+ */
2324
+ deleteRow(event, rowData) {
2325
+ this.baseStore.setUpdatedData(true);
2326
+ event.stopPropagation();
2327
+ this.onDeleteRow.emit(rowData);
2328
+ }
2329
+ /**
2330
+ * Logs row data intended for viewing.
2331
+ * @param {any} rowData - The data of the row to view.
2332
+ */
2333
+ viewRow(rowData) {
2334
+ console.log('Delete Row:', rowData);
2335
+ }
2336
+ /**
2337
+ * Returns CSS class for a table cell based on its content.
2338
+ * @param {any} col - The column definition.
2339
+ * @param {any} rowData - The data for the row.
2340
+ * @returns {string} A space-separated list of CSS classes for the cell.
2341
+ */
2342
+ getRowClass(col, rowData) {
2343
+ if (!col || !col.name)
2344
+ return '';
2345
+ let classes = [];
2346
+ if (rowData[col.name]?.class) {
2347
+ classes.push(rowData[col.name]?.class);
2348
+ }
2349
+ return classes.join(' '); // Return space-separated class names
2350
+ }
2351
+ /**
2352
+ * Handles pagination and data reload on paginator event.
2353
+ * @param {object} event - The PrimeNG paginator event.
2354
+ * @param {number} event.first - The index of the first record in the current page.
2355
+ * @param {number} event.rows - The number of records per page.
2356
+ */
2357
+ handleLoadRecords(event) {
2358
+ this.page = (event.first / event.rows) + 1;
2359
+ this.limit = event.rows;
2360
+ this.service.getPaginatedList(this.searchTerm, this.page, this.limit, SHARED.UPDATEDAT, SHARED.DESC, SHARED.EMPTY, SHARED.EMPTY, this.pathName).subscribe({
2361
+ /**
2362
+ * Handles the successful response from the paginated list API.
2363
+ * @param {any} res - The API response containing data and metadata.
2364
+ */
2365
+ next: (res) => {
2366
+ this.table = this.builder.buildTable(res.data);
2367
+ this.metaData = res.metadata;
2368
+ this.recordNumber = Math.min(this.metaData.currentPage * this.metaData.itemsPerPage, this.metaData.totalItems);
2369
+ },
2370
+ /**
2371
+ * Handles any error encountered while fetching the paginated list.
2372
+ * @param {any} err - The error object.
2373
+ */
2374
+ error: (err) => {
2375
+ console.error(ERROR.ERROR_FETCHING_DATA, err);
2376
+ }
2377
+ });
2378
+ }
2379
+ /**
2380
+ * Emits the updated selection when user changes selection in the table.
2381
+ * @param {any} event - The new selection data.
2382
+ */
2383
+ onSelectionChange(event) {
2384
+ this.selection = event;
2385
+ this.selectionChange.emit(this.selection);
2386
+ }
2387
+ /**
2388
+ * Emits the selected row when a row is clicked.
2389
+ * @param {any} rowData - The data of the clicked row.
2390
+ */
2391
+ onRowClick(rowData) {
2392
+ this.baseStore.setUpdatedData(true);
2393
+ this.rowSelection = rowData;
2394
+ this.rowSelectionChange.emit(this.rowSelection);
2395
+ }
2396
+ /**
2397
+ * Handles the click event on a table row.
2398
+ * If row selection is enabled (`enableSelection` is true),
2399
+ * it delegates the event to the `onRowClick` method with the provided row data.
2400
+ * @param {any} rowData - The data object for the clicked table row.
2401
+ */
2402
+ handleRowClick(rowData) {
2403
+ if (this.enableSelection) {
2404
+ this.onRowClick(rowData);
2405
+ }
2406
+ }
2407
+ /**
2408
+ * Checks if a given row is currently selected.
2409
+ * @param {any} rowData - The row data to check.
2410
+ * @returns {boolean} `true` if the row is selected, else `false`.
2411
+ */
2412
+ isRowSelected(rowData) {
2413
+ return this.rowSelection?.[this.validDataKey] === rowData[this.validDataKey];
2414
+ }
2415
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TableSecondaryComponent, deps: [{ token: i3$4.Router }, { token: BaseService }, { token: i3$4.ActivatedRoute }, { token: BaseQuery }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
2416
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", 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", rowSelection: "rowSelection", enableSelection: "enableSelection", noRecordsMessage: "noRecordsMessage", searchTerm: "searchTerm", filterQuery: "filterQuery" }, outputs: { selectionChange: "selectionChange", rowSelectionChange: "rowSelectionChange", onDeleteRow: "onDeleteRow" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n*ngIf=\"table && table.headers && table.headers.length > 0\"\r\n #dt2\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPage)=\"handleLoadRecords($event)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"table.sortField\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\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\"\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]=\"[col.class || '', i === 0 ? 'justify-content-start' : 'justify-content-center']\"\r\n class=\"flex align-items-center table-header-title capitalize font-semibold m-0\">\r\n {{ 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\" 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\" class=\"table-row-wrapper relative table-group-wrapper\" \r\n (click)=\"handleRowClick(rowData)\" [ngClass]=\"{ 'row-selected': isRowSelected(rowData) }\" [ngClass]=\"{\r\n 'row-selected': isRowSelected(rowData),'green-highlight': selection?.includes(rowData)}\">\r\n <td\r\n class=\"table-body-wrapper\"\r\n [ngClass]=\"(j === table.headers.length - 1 && selectionMode !== 'multiple' && !showActions) ? 'header-text-wrapper' : ''\"\r\n *ngFor=\"let col of table.headers; let j = index\"\r\n >\r\n <div class=\"row-wrapprt flex align-items-center justify-content-center\">\r\n <ng-container [ngSwitch]=\"col.customClass\">\r\n\r\n <!-- Required badge -->\r\n <ng-container *ngSwitchCase=\"'required-badge'\">\r\n <span\r\n [ngClass]=\"{\r\n 'px-3 py-1 rounded-2xl text-sm': true,\r\n 'bg-red-100 text-red-800': rowData[col.name] === 'Required',\r\n 'bg-gray-100 text-gray-500': rowData[col.name] !== 'Required'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n </span>\r\n </ng-container>\r\n\r\n <!-- Default cell rendering -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper p-0 flex align-items-center\"\r\n [ngClass]=\"[getRowClass(col, rowData), j === 0 ? 'justify-content-start' : 'justify-content-center']\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n style=\"\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n width:100%\r\n \"\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 <p class=\"mb-0\"> {{ rowData[col.name]?.value ?? rowData[col.name] }} </p>\r\n </div>\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 </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </td>\r\n \r\n <!-- Checkbox at end -->\r\n <td *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 </td>\r\n \r\n <!-- Actions -->\r\n <td *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 </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.currentPage - 1) * metaData.itemsPerPage + 1 }} to {{ recordNumber }} of {{ metaData?.totalItems || 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\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}.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{padding:20px 8px 12px;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;background:#f9f9fa}::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}.table-body-wrapper{padding:8px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.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"] }] });
2417
+ }
2418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TableSecondaryComponent, decorators: [{
2419
+ type: Component,
2420
+ 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 && table.headers.length > 0\"\r\n #dt2\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\r\n [rowsPerPageOptions]=\"[10, 20, 30, 40, 50]\"\r\n (onPage)=\"handleLoadRecords($event)\"\r\n [columns]=\"table.headers\"\r\n class=\"table-secondary-container\"\r\n [value]=\"table.records\"\r\n [sortField]=\"table.sortField\"\r\n [dataKey]=\"table.dataKey\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\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\"\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]=\"[col.class || '', i === 0 ? 'justify-content-start' : 'justify-content-center']\"\r\n class=\"flex align-items-center table-header-title capitalize font-semibold m-0\">\r\n {{ 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\" 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\" class=\"table-row-wrapper relative table-group-wrapper\" \r\n (click)=\"handleRowClick(rowData)\" [ngClass]=\"{ 'row-selected': isRowSelected(rowData) }\" [ngClass]=\"{\r\n 'row-selected': isRowSelected(rowData),'green-highlight': selection?.includes(rowData)}\">\r\n <td\r\n class=\"table-body-wrapper\"\r\n [ngClass]=\"(j === table.headers.length - 1 && selectionMode !== 'multiple' && !showActions) ? 'header-text-wrapper' : ''\"\r\n *ngFor=\"let col of table.headers; let j = index\"\r\n >\r\n <div class=\"row-wrapprt flex align-items-center justify-content-center\">\r\n <ng-container [ngSwitch]=\"col.customClass\">\r\n\r\n <!-- Required badge -->\r\n <ng-container *ngSwitchCase=\"'required-badge'\">\r\n <span\r\n [ngClass]=\"{\r\n 'px-3 py-1 rounded-2xl text-sm': true,\r\n 'bg-red-100 text-red-800': rowData[col.name] === 'Required',\r\n 'bg-gray-100 text-gray-500': rowData[col.name] !== 'Required'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n </span>\r\n </ng-container>\r\n\r\n <!-- Default cell rendering -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"table-text-wrapper p-0 flex align-items-center\"\r\n [ngClass]=\"[getRowClass(col, rowData), j === 0 ? 'justify-content-start' : 'justify-content-center']\"\r\n [ngStyle]=\"{ 'font-weight': col.name === table.showDecriptionFor ? 'bold' : 'normal' }\"\r\n style=\"\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n width:100%\r\n \"\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 <p class=\"mb-0\"> {{ rowData[col.name]?.value ?? rowData[col.name] }} </p>\r\n </div>\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 </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </td>\r\n \r\n <!-- Checkbox at end -->\r\n <td *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 </td>\r\n \r\n <!-- Actions -->\r\n <td *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 </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.currentPage - 1) * metaData.itemsPerPage + 1 }} to {{ recordNumber }} of {{ metaData?.totalItems || 0 }} entries\r\n </div>\r\n\r\n <p-paginator\r\n #paginator\r\n [rows]=\"metaData.itemsPerPage\"\r\n [totalRecords]=\"metaData.totalItems\"\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}.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{padding:20px 8px 12px;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;background:#f9f9fa}::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}.table-body-wrapper{padding:8px}}\n"] }]
2421
+ }], ctorParameters: () => [{ type: i3$4.Router }, { type: BaseService }, { type: i3$4.ActivatedRoute }, { type: BaseQuery }, { type: BaseStore }], propDecorators: { table: [{
2422
+ type: Input
2423
+ }], metaData: [{
2424
+ type: Input
2425
+ }], title: [{
2426
+ type: Input
2427
+ }], builder: [{
2428
+ type: Input
2429
+ }], showStatus: [{
2430
+ type: Input
2431
+ }], showActions: [{
2432
+ type: Input
2433
+ }], showSearchBar: [{
2434
+ type: Input
2435
+ }], showNewRecordButton: [{
2436
+ type: Input
2437
+ }], showRefreshButton: [{
2438
+ type: Input
2439
+ }], pathName: [{
2440
+ type: Input
2441
+ }], selectionMode: [{
2442
+ type: Input
2443
+ }], selection: [{
2444
+ type: Input
2445
+ }], usePagination: [{
2446
+ type: Input
2447
+ }], selectionChange: [{
2448
+ type: Output
2449
+ }], rowSelection: [{
2450
+ type: Input
2451
+ }], rowSelectionChange: [{
2452
+ type: Output
2453
+ }], enableSelection: [{
2454
+ type: Input
2455
+ }], noRecordsMessage: [{
2456
+ type: Input
2457
+ }], paginator: [{
2458
+ type: ViewChild,
2459
+ args: ['paginator']
2460
+ }], onDeleteRow: [{
2461
+ type: Output
2462
+ }], searchTerm: [{
2463
+ type: Input
2464
+ }], filterQuery: [{
2465
+ type: Input
2466
+ }] } });
2467
+
2468
+ class TableSecondaryModel {
2469
+ name;
2470
+ headers;
2471
+ records;
2472
+ columnStyles;
2473
+ sortField;
2474
+ dataKey;
2475
+ groupRowsBy;
2476
+ showDecriptionFor;
2477
+ descriptionColumnName = SHARED.EMPTY;
2478
+ isSortingAllow = SHARED.TRUE;
2479
+ rows;
2480
+ }
2481
+ class StyleClass {
2482
+ class = SHARED.EMPTY;
2483
+ value = SHARED.EMPTY;
2484
+ }
2485
+
2486
+ class TableSecondaryHeaderModel {
2487
+ name;
2488
+ attributes;
2489
+ width;
2490
+ }
2491
+
2200
2492
  class ApiConfigModel extends BaseModel {
2201
2493
  name;
2202
2494
  path;
@@ -2272,13 +2564,13 @@ class ApiAdminService extends BaseService {
2272
2564
  checkApiByPathName(name, record) {
2273
2565
  return this.http.post(this.apiUrl + name, record).pipe(tap$1((entities) => this.apiManagementStore.set(entities)));
2274
2566
  }
2275
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, deps: [{ token: i1$1.HttpClient }, { token: ApiAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
2567
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, deps: [{ token: i1.HttpClient }, { token: ApiAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
2276
2568
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, providedIn: 'root' });
2277
2569
  }
2278
2570
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApiAdminService, decorators: [{
2279
2571
  type: Injectable,
2280
2572
  args: [{ providedIn: 'root' }]
2281
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: ApiAdminStore }, { type: AppConfigService }, { type: ListService }] });
2573
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: ApiAdminStore }, { type: AppConfigService }, { type: ListService }] });
2282
2574
 
2283
2575
  /**
2284
2576
  * Form component for creating and updating API configurations.
@@ -2399,6 +2691,9 @@ class PERMISSION {
2399
2691
  static WIDGETS_PUT = 'Widgets-PUT';
2400
2692
  static WIDGETS_DELETE = 'Widgets-DELETE';
2401
2693
  static WIDGETS_EVALUATE = 'Widgets-evaluate';
2694
+ static QUEUES_GET = 'Queues-GET';
2695
+ static QUEUES_POST = 'Queues-POST';
2696
+ static QUEUES_PUT = 'Queues-PUT';
2402
2697
  }
2403
2698
 
2404
2699
  /**
@@ -2558,13 +2853,13 @@ class WidgetAdminService extends BaseService {
2558
2853
  return null;
2559
2854
  }
2560
2855
  }
2561
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminService, deps: [{ token: i1$1.HttpClient }, { token: WidgetAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
2856
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminService, deps: [{ token: i1.HttpClient }, { token: WidgetAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
2562
2857
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminService, providedIn: 'root' });
2563
2858
  }
2564
2859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminService, decorators: [{
2565
2860
  type: Injectable,
2566
2861
  args: [{ providedIn: 'root' }]
2567
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: WidgetAdminStore }, { type: AppConfigService }, { type: ListService }] });
2862
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: WidgetAdminStore }, { type: AppConfigService }, { type: ListService }] });
2568
2863
 
2569
2864
  /**
2570
2865
  * Widget Admin List Component
@@ -2752,7 +3047,7 @@ class WidgetAdminFormComponent extends BaseFormComponent {
2752
3047
  super.ngOnDestroy();
2753
3048
  }
2754
3049
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminFormComponent, deps: [{ token: WidgetAdminService }, { token: ValidatorService }, { token: WidgetAdminStore }, { token: WidgetAdminQuery }, { token: i3$4.Router }, { token: i3$4.ActivatedRoute }, { token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
2755
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetAdminFormComponent, isStandalone: false, selector: "lib-widget-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [record]=\"record\" [showSave]=\"true\" [messages]=\"message\" (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\">\r\n <div class=\"card p-fluid p-formgrid\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Widget Form</h4>\r\n <div class=\"col-12 md:col-12 mt-2 mb-2 flex\">\r\n <div class=\"col-3 md:col-3 mt-2 mb-2\">\r\n <text-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Widget Name'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-3 md:col-3 mt-2 mb-2\">\r\n <dropdown [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'apiConfigId',\r\n displayText : 'Select API',\r\n isRequired:true,\r\n }\" (onInput)=\"handleAPIChange($event)\">\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-4 md:col-4 mt-2 mb-2\">\r\n <text-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'style',\r\n isRequired: false,\r\n displayText: 'Style',\r\n placeholder: 'Enter Widget Style'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center m-0\">\r\n <div class=\"col-6 md:col-5 mt-2 mb-2 flex\">\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'headerDictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleHeaderDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'headerDictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select Header Item',\r\n options: headerDictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-6 md:col-5 mt-2 mb-2 flex\">\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'subHeaderDictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleSubHeaderDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'subHeaderDictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select SubHeader Item',\r\n options: subHeaderDictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-6 md:col-2 mt-2 mb-2 flex\">\r\n <div class=\"field col-12 pl-2 pb-0 mb-2 md:mr-2 md:col-12\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'layoutType',\r\n listLabelProperty:'name',\r\n listValueProperty:'value',\r\n displayText : 'Select Layout Type',\r\n options: widgetLayoutTypeList\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field p-0 pr-2 col-12 md:col-2\">\r\n <div class=\"card m-0 p-0 mb-2\">\r\n <div class=\"mt-3 w-full flex\">\r\n <button pButton pRipple routerLinkActive=\"router-link-active\"\r\n icon=\"pi pi-plus font-semibold\"\r\n class=\"py-3 justify-content-center font-semibold w-full border-round\"\r\n (click)=\"handleWidgetItemAddBtnClick()\">\r\n <span class=\"ml-3\">Add Widget Item </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Widget Items -->\r\n <div class=\"feild-card col-12 md:col-12 flex\" *ngFor=\"let widgetItem of record.dataItems; let i = index;\">\r\n <div class=\"field col-2 col-sm-6\">\r\n <text-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name : 'name',\r\n readonly : false,\r\n displayText : 'Item Label',\r\n isRequired : true,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field col-2 col-sm-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'dictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n isRequired:true,\r\n options: dictionaries\r\n }\" (onInput)=\"handleWidgetItemDictionarySelect($event, i)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-2 col-sm-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'dictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select Properties',\r\n isRequired:true,\r\n options: dictionaryItemArray[i]\r\n }\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-4 col-sm-6\">\r\n <text-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name : 'style',\r\n readonly : false,\r\n displayText : 'Item Style',\r\n isRequired : false,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field col-4 m-0 flex justify-content-center md:col-2 mt-5\">\r\n <div class=\"m-0\">\r\n <check-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Is Active ?',\r\n }\">\r\n </check-box>\r\n </div>\r\n <div class=\"ml-4 delete-icon-container\">\r\n <i class=\"pi pi-trash trash-icon-wrapper cursor-pointer\" (click)=\"handleDeleteRecord(i)\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".trash-icon-wrapper{font-size:20px;color:var(--red-500)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] });
3050
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetAdminFormComponent, isStandalone: false, selector: "lib-widget-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [record]=\"record\" [showSave]=\"true\" [messages]=\"message\" (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\">\r\n <div class=\"card p-fluid p-formgrid\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Widget Form</h4>\r\n <div class=\"col-12 md:col-12 mt-2 mb-2 flex\">\r\n <div class=\"col-3 md:col-3 mt-2 mb-2\">\r\n <text-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Widget Name'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-3 md:col-3 mt-2 mb-2\">\r\n <dropdown [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'apiConfigId',\r\n displayText : 'Select API',\r\n isRequired:true,\r\n }\" (onInput)=\"handleAPIChange($event)\">\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-4 md:col-4 mt-2 mb-2\">\r\n <text-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'style',\r\n isRequired: false,\r\n displayText: 'Style',\r\n placeholder: 'Enter Widget Style'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"widgetStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n <div class=\"grid align-items-center m-0\">\r\n <div class=\"col-6 md:col-5 mt-2 mb-2 flex\">\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'headerDictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleHeaderDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'headerDictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select Header Item',\r\n options: headerDictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-6 md:col-5 mt-2 mb-2 flex\">\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'subHeaderDictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleSubHeaderDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-6 pl-2 pb-0 mb-2 md:mr-2 md:col-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'subHeaderDictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select SubHeader Item',\r\n options: subHeaderDictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-6 md:col-2 mt-2 mb-2 flex\">\r\n <div class=\"field col-12 pl-2 pb-0 mb-2 md:mr-2 md:col-12\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name:'layoutType',\r\n listLabelProperty:'name',\r\n listValueProperty:'value',\r\n displayText : 'Select Layout Type',\r\n options: widgetLayoutTypeList\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field p-0 pr-2 col-12 md:col-2\">\r\n <div class=\"card m-0 p-0 mb-2\">\r\n <div class=\"mt-3 w-full flex\">\r\n <button pButton pRipple routerLinkActive=\"router-link-active\"\r\n icon=\"pi pi-plus font-semibold\"\r\n class=\"py-3 justify-content-center font-semibold w-full border-round\"\r\n (click)=\"handleWidgetItemAddBtnClick()\">\r\n <span class=\"ml-3\">Add Widget Item </span>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- Widget Items -->\r\n <div class=\"feild-card col-12 md:col-12 flex\" *ngFor=\"let widgetItem of record.dataItems; let i = index;\">\r\n <div class=\"field col-2 col-sm-6\">\r\n <text-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name : 'name',\r\n readonly : false,\r\n displayText : 'Item Label',\r\n isRequired : true,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field col-2 col-sm-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'dictionaryID',\r\n listLabelProperty:'name',\r\n listValueProperty:'_id',\r\n displayText : 'Select Dictionary',\r\n isRequired:true,\r\n options: dictionaries\r\n }\" (onInput)=\"handleWidgetItemDictionarySelect($event, i)\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-2 col-sm-6\">\r\n <dropdown [store]=\"widgetStore\" [isStaticDropdown]=\"true\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'dictionaryItemID',\r\n listLabelProperty:'itemName',\r\n listValueProperty:'_id',\r\n displayText : 'Select Properties',\r\n isRequired:true,\r\n options: dictionaryItemArray[i]\r\n }\">\r\n </dropdown>\r\n </div>\r\n <div class=\"field col-4 col-sm-6\">\r\n <text-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name : 'style',\r\n readonly : false,\r\n displayText : 'Item Style',\r\n isRequired : false,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field col-4 m-0 flex justify-content-center md:col-2 mt-5\">\r\n <div class=\"m-0\">\r\n <check-box [store]=\"widgetStore\" [record]=\"widgetItem\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Is Active ?',\r\n }\">\r\n </check-box>\r\n </div>\r\n <div class=\"ml-4 delete-icon-container\">\r\n <i class=\"pi pi-trash trash-icon-wrapper cursor-pointer\" (click)=\"handleDeleteRecord(i)\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".trash-icon-wrapper{font-size:20px;color:var(--red-500)}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] });
2756
3051
  }
2757
3052
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetAdminFormComponent, decorators: [{
2758
3053
  type: Component,
@@ -2816,17 +3111,17 @@ class QueueModel extends BaseModel {
2816
3111
  isActive;
2817
3112
  }
2818
3113
 
2819
- let QueueStore = class QueueStore extends BaseStore {
3114
+ let QueueStore$1 = class QueueStore extends BaseStore {
2820
3115
  constructor() {
2821
3116
  super();
2822
3117
  }
2823
3118
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2824
3119
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, providedIn: "root" });
2825
3120
  };
2826
- QueueStore = __decorate([
3121
+ QueueStore$1 = __decorate([
2827
3122
  StoreConfig({ name: "queues" })
2828
- ], QueueStore);
2829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, decorators: [{
3123
+ ], QueueStore$1);
3124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore$1, decorators: [{
2830
3125
  type: Injectable,
2831
3126
  args: [{ providedIn: "root" }]
2832
3127
  }], ctorParameters: () => [] });
@@ -2837,15 +3132,15 @@ class QueueQuery extends BaseQuery {
2837
3132
  super(store);
2838
3133
  this.store = store;
2839
3134
  }
2840
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueQuery, deps: [{ token: QueueStore }], target: i0.ɵɵFactoryTarget.Injectable });
3135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueQuery, deps: [{ token: QueueStore$1 }], target: i0.ɵɵFactoryTarget.Injectable });
2841
3136
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueQuery, providedIn: "root" });
2842
3137
  }
2843
3138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueQuery, decorators: [{
2844
3139
  type: Injectable,
2845
3140
  args: [{ providedIn: "root" }]
2846
- }], ctorParameters: () => [{ type: QueueStore }] });
3141
+ }], ctorParameters: () => [{ type: QueueStore$1 }] });
2847
3142
 
2848
- class QueueService extends BaseService {
3143
+ let QueueService$1 = class QueueService extends BaseService {
2849
3144
  queueStore;
2850
3145
  constructor(queueStore, http, appConfigService, listService) {
2851
3146
  super(http, queueStore, appConfigService, listService);
@@ -2863,13 +3158,13 @@ class QueueService extends BaseService {
2863
3158
  .get(url)
2864
3159
  .pipe(tap$1((entities) => this.queueStore.set(entities)));
2865
3160
  }
2866
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, deps: [{ token: QueueStore }, { token: i1$1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, deps: [{ token: QueueStore$1 }, { token: i1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
2867
3162
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, providedIn: "root" });
2868
- }
2869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, decorators: [{
3163
+ };
3164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService$1, decorators: [{
2870
3165
  type: Injectable,
2871
3166
  args: [{ providedIn: "root" }]
2872
- }], ctorParameters: () => [{ type: QueueStore }, { type: i1$1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
3167
+ }], ctorParameters: () => [{ type: QueueStore$1 }, { type: i1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
2873
3168
 
2874
3169
  class QueueAdminFormComponent extends BaseFormComponent {
2875
3170
  queueQuery;
@@ -3026,30 +3321,30 @@ class QueueAdminFormComponent extends BaseFormComponent {
3026
3321
  this.record = {};
3027
3322
  super.ngOnDestroy();
3028
3323
  }
3029
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminFormComponent, deps: [{ token: QueueQuery }, { token: QueueService }, { token: i3$4.ActivatedRoute }, { token: QueueStore }, { token: ValidatorService }, { token: i3$4.Router }, { token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
3324
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminFormComponent, deps: [{ token: QueueQuery }, { token: QueueService$1 }, { token: i3$4.ActivatedRoute }, { token: QueueStore$1 }, { token: ValidatorService }, { token: i3$4.Router }, { token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
3030
3325
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueAdminFormComponent, isStandalone: false, selector: "lib-queue-admin-form", usesInheritance: true, ngImport: i0, template: "<div class=\"grid m-0\">\r\n <div class=\"col-12\">\r\n <div>\r\n <form-container\r\n [record]=\"record\"\r\n [headerText]=\"'Queue / Create Queue'\"\r\n (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\"\r\n [showSave]=\"true\"\r\n [messages]=\"messages\"\r\n >\r\n <div class=\"card m-0\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Create Queue</h4>\r\n <div class=\"col-12 md:col-5\">\r\n <text-box\r\n [record]=\"record\"\r\n [store]=\"queueStore\"\r\n [attributeModel]=\"{\r\n name : 'name',\r\n displayText:'Queue Name',\r\n readonly : false,\r\n isRequired : true,\r\n }\"\r\n >\r\n </text-box>\r\n </div>\r\n <div class=\"col-12 md:col-5\">\r\n <dropdown\r\n [record]=\"record\"\r\n [store]=\"queueStore\"\r\n [attributeModel]=\"{\r\n name: 'apiConfigId',\r\n readonly: false,\r\n isRequired: true,\r\n dataSource: 'apiConfig',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText: 'Api'\r\n }\" (onInput)=\"handleQueueChange($event)\"\r\n >\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"queueStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full px-2 mt-2 flex justify-content-end mb-2\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n label=\"Validate\"\r\n (click)=\"handleGetData()\"\r\n class=\"p-button-raised validate-btn-wrapper\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"queueStore\"\r\n [record]=\"record\"\r\n [isStaticDropdown]=\"true\"\r\n [attributeModel]=\"{\r\n name:'header',\r\n displayText : 'Header',\r\n placeholder: 'Select Header',\r\n listValueProperty: 'value',\r\n listLabelProperty: 'value',\r\n readonly : false,\r\n isRequired : true,\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"queueStore\"\r\n [record]=\"record\"\r\n [isStaticDropdown]=\"true\"\r\n [attributeModel]=\"{\r\n name:'subHeader',\r\n displayText : 'SubHeader',\r\n placeholder: 'Select SubHeader',\r\n listValueProperty: 'value',\r\n listLabelProperty: 'value',\r\n readonly : false,\r\n isRequired : false,\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card m-0\">\r\n <div class=\"p-fluid p-formgrid grid m-0 mb-2\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Queue Details</h4>\r\n </div>\r\n <ngx-query-builder\r\n class=\"p-2\"\r\n [(ngModel)]=\"query\"\r\n [config]=\"config\"\r\n (queryChange)=\"onQueryChange($event)\"\r\n ></ngx-query-builder>\r\n </div>\r\n </form-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".q-ruleset .q-switch-radio:checked+.q-switch-label{background:var(--surface-section)!important;color:var(--text-color)!important;border:1px solid var(--primary-color)!important}.q-ruleset .q-switch-label{color:#000!important;border:1px solid}.q-ruleset .q-button{color:var(--text-color)!important;background:var(--primary-color)!important;border-radius:var(--border-radius)!important}.q-ruleset .q-rule{background:var(--surface-section)!important}.q-ruleset .q-field-control,.q-ruleset .q-operator-control,.q-ruleset .q-input-control,.q-ruleset .q-remove-button{background:var(--surface-section)!important;color:var(--text-color)!important;border:1px solid var(--surface-border)!important}.q-ruleset .q-row{border:1px solid var(--surface-border)!important}.validate-btn-wrapper{width:15%;padding:.8rem 1rem!important}.card-footer{display:flex;justify-content:flex-end;margin:10px}.button-container{display:flex}.create-button{padding:10px}\n"], dependencies: [{ kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: i11.QueryBuilderComponent, selector: "ngx-query-builder", inputs: ["disabled", "level", "data", "allowRuleset", "allowCollapse", "emptyMessage", "classNames", "operatorMap", "parentValue", "config", "parentArrowIconTemplate", "parentInputTemplates", "parentOperatorTemplate", "parentFieldTemplate", "parentEntityTemplate", "parentSwitchGroupTemplate", "parentButtonGroupTemplate", "parentRulesetAddRuleButtonTemplate", "parentRulesetAddRulesetButtonTemplate", "parentRulesetRemoveButtonTemplate", "parentRuleRemoveButtonTemplate", "parentEmptyWarningTemplate", "parentChangeCallback", "parentTouchedCallback", "persistValueOnFieldChange", "value"] }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }], encapsulation: i0.ViewEncapsulation.None });
3031
3326
  }
3032
3327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminFormComponent, decorators: [{
3033
3328
  type: Component,
3034
3329
  args: [{ selector: "lib-queue-admin-form", standalone: false, encapsulation: ViewEncapsulation.None, template: "<div class=\"grid m-0\">\r\n <div class=\"col-12\">\r\n <div>\r\n <form-container\r\n [record]=\"record\"\r\n [headerText]=\"'Queue / Create Queue'\"\r\n (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\"\r\n [showSave]=\"true\"\r\n [messages]=\"messages\"\r\n >\r\n <div class=\"card m-0\">\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Create Queue</h4>\r\n <div class=\"col-12 md:col-5\">\r\n <text-box\r\n [record]=\"record\"\r\n [store]=\"queueStore\"\r\n [attributeModel]=\"{\r\n name : 'name',\r\n displayText:'Queue Name',\r\n readonly : false,\r\n isRequired : true,\r\n }\"\r\n >\r\n </text-box>\r\n </div>\r\n <div class=\"col-12 md:col-5\">\r\n <dropdown\r\n [record]=\"record\"\r\n [store]=\"queueStore\"\r\n [attributeModel]=\"{\r\n name: 'apiConfigId',\r\n readonly: false,\r\n isRequired: true,\r\n dataSource: 'apiConfig',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText: 'Api'\r\n }\" (onInput)=\"handleQueueChange($event)\"\r\n >\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"queueStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-full px-2 mt-2 flex justify-content-end mb-2\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n label=\"Validate\"\r\n (click)=\"handleGetData()\"\r\n class=\"p-button-raised validate-btn-wrapper\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"queueStore\"\r\n [record]=\"record\"\r\n [isStaticDropdown]=\"true\"\r\n [attributeModel]=\"{\r\n name:'header',\r\n displayText : 'Header',\r\n placeholder: 'Select Header',\r\n listValueProperty: 'value',\r\n listLabelProperty: 'value',\r\n readonly : false,\r\n isRequired : true,\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown\r\n [store]=\"queueStore\"\r\n [record]=\"record\"\r\n [isStaticDropdown]=\"true\"\r\n [attributeModel]=\"{\r\n name:'subHeader',\r\n displayText : 'SubHeader',\r\n placeholder: 'Select SubHeader',\r\n listValueProperty: 'value',\r\n listLabelProperty: 'value',\r\n readonly : false,\r\n isRequired : false,\r\n options: apiPropertyList\r\n }\"></dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card m-0\">\r\n <div class=\"p-fluid p-formgrid grid m-0 mb-2\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Queue Details</h4>\r\n </div>\r\n <ngx-query-builder\r\n class=\"p-2\"\r\n [(ngModel)]=\"query\"\r\n [config]=\"config\"\r\n (queryChange)=\"onQueryChange($event)\"\r\n ></ngx-query-builder>\r\n </div>\r\n </form-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".q-ruleset .q-switch-radio:checked+.q-switch-label{background:var(--surface-section)!important;color:var(--text-color)!important;border:1px solid var(--primary-color)!important}.q-ruleset .q-switch-label{color:#000!important;border:1px solid}.q-ruleset .q-button{color:var(--text-color)!important;background:var(--primary-color)!important;border-radius:var(--border-radius)!important}.q-ruleset .q-rule{background:var(--surface-section)!important}.q-ruleset .q-field-control,.q-ruleset .q-operator-control,.q-ruleset .q-input-control,.q-ruleset .q-remove-button{background:var(--surface-section)!important;color:var(--text-color)!important;border:1px solid var(--surface-border)!important}.q-ruleset .q-row{border:1px solid var(--surface-border)!important}.validate-btn-wrapper{width:15%;padding:.8rem 1rem!important}.card-footer{display:flex;justify-content:flex-end;margin:10px}.button-container{display:flex}.create-button{padding:10px}\n"] }]
3035
- }], ctorParameters: () => [{ type: QueueQuery }, { type: QueueService }, { type: i3$4.ActivatedRoute }, { type: QueueStore }, { type: ValidatorService }, { type: i3$4.Router }, { type: BaseStore }, { type: BaseQuery }] });
3330
+ }], ctorParameters: () => [{ type: QueueQuery }, { type: QueueService$1 }, { type: i3$4.ActivatedRoute }, { type: QueueStore$1 }, { type: ValidatorService }, { type: i3$4.Router }, { type: BaseStore }, { type: BaseQuery }] });
3036
3331
 
3037
- const routes = [
3332
+ const routes$1 = [
3038
3333
  {
3039
3334
  path: '',
3040
3335
  component: QueueAdminFormComponent,
3041
3336
  children: [],
3042
3337
  },
3043
3338
  ];
3044
- class QueueRoutingModule {
3339
+ let QueueRoutingModule$1 = class QueueRoutingModule {
3045
3340
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3046
3341
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, imports: [i3$4.RouterModule], exports: [RouterModule] });
3047
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
3048
- }
3049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, decorators: [{
3342
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, imports: [RouterModule.forChild(routes$1), RouterModule] });
3343
+ };
3344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule$1, decorators: [{
3050
3345
  type: NgModule,
3051
3346
  args: [{
3052
- imports: [RouterModule.forChild(routes)],
3347
+ imports: [RouterModule.forChild(routes$1)],
3053
3348
  exports: [RouterModule],
3054
3349
  }]
3055
3350
  }] });
@@ -3165,13 +3460,13 @@ class QueueApplicationListComponent {
3165
3460
  onStatusChange(selectedStatus) {
3166
3461
  this.selectedStatus = selectedStatus.target.value;
3167
3462
  }
3168
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueApplicationListComponent, deps: [{ token: QueueService }, { token: DataTransformerService }, { token: i3$4.Router }, { token: QueueStore }], target: i0.ɵɵFactoryTarget.Component });
3169
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: QueueApplicationListComponent, isStandalone: false, selector: "queue-application-list", inputs: { queueData: "queueData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"grid m-0\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid p-2\">\r\n <div class=\"card col-12 md:col-12 flex flex-column border-bottom align-items-start p-4 pb-3\" style=\"\r\n border-bottom: 1px solid var(--surface-border);\r\n border-radius: 0px;\r\n border-top-left-radius: 8px;\r\n border-top-right-radius: 8px;\r\n \">\r\n <h4 class=\"text-color m-0 queue-name font-semibold margin\">\r\n {{ queueData.name }}\r\n </h4>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 p-0 flex scrollable flex-column\" [ngClass]=\"\r\n selectedStatus === 'active' ? 'surface-card' : 'inactive-card-wrapper'\r\n \">\r\n @for(record of associateQueueList; track record; let i = $index) {\r\n @if(record){\r\n <div class=\"col-12 md:col-12 border-bottom-1 p-0 surface-border gap-2 hover:surface-ground cursor-pointer\"\r\n (click)=\"handleApplicationClick(record)\">\r\n\r\n <div class=\"col-12 md:col-12 flex align-items-center py-3 px-4 userInfo\">\r\n <div class=\"col-12 md:col-2 p-0 userImage\">\r\n <div\r\n class=\"mainimg flex align-items-center justify-content-center circleColor w-3rem h-3rem border-circle\">\r\n <span class=\"font-bold\" style=\"font-weight: 600; font-size: 13.5; font-family: inherit;\">\r\n {{ record.initials }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-10 p-0\">\r\n <div class=\"flex justify-content-between align-items-center col-12 md:col-12 p-0\">\r\n <div class=\"userName\" style=\"font-weight: 600; font-size: 15px; \">\r\n {{ record.FullName | capitalizeWords }} \r\n </div>\r\n <div class=\"dayAndtime flex\">\r\n @if(record.message.type == \"Email\"){\r\n <span class=\"pi pi-envelope mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }\r\n @else if(record.message.type == \"SMS\") {\r\n <span class=\"pi pi-comments mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }@else if(record.message.type == \"WhatsApp\"){\r\n <span class=\"pi pi-whatsapp mr-2\" style=\"color: #676B89;font-size: 17px;\"></span>\r\n\r\n }\r\n <span style=\"color: #676B89; font-family: inherit;\"> {{record.message.day}}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-between mt-1\">\r\n <div class=\"email col-12 md:col-12 p-0\" style=\"color: #8A8EA6;\">\r\n {{ record.message.content }}\r\n </div>\r\n \r\n <div class=\"countOfMessages\">\r\n <span>{{record.message.count}}</span>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".label,.value{font-size:14px}.card{margin-bottom:0!important}.queue-name{max-width:85%;word-wrap:break-word;white-space:normal}.text-verflow-elipses{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{background:var(--surface-card)}.card .filter-section .filter-dropdown,.card .filter-section .filter-button{padding:.2rem .5rem;border:1px solid #cce7ff;border-radius:5px;background-color:#f0f8ff;color:#333;cursor:pointer}.set-reminder-box{background-color:#4c629214;border:1px solid rgba(76,98,146,.2)}.set-reminder-box .pi-bell{color:#f57c00}.inactive-card-wrapper{background-color:#f3f5f8;border-left:1px solid #e0e3f3!important;border-right:1px solid #e0e3f3!important}::ng-deep .inactive-tag-wrapper .p-tag{background-color:#676b89!important}.circleColor{background-color:#eef0f5;color:#4c6292}.email{max-width:85%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countOfMessages{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#0f8bfd;color:#fff;width:22px!important;height:22px!important}.userInfo:hover{background-color:#eef0f5b3}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: CapitalizeWordsPipe, name: "capitalizeWords" }] });
3463
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueApplicationListComponent, deps: [{ token: QueueService$1 }, { token: DataTransformerService }, { token: i3$4.Router }, { token: QueueStore$1 }], target: i0.ɵɵFactoryTarget.Component });
3464
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: QueueApplicationListComponent, isStandalone: false, selector: "queue-application-list", inputs: { queueData: "queueData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"grid m-0\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid p-2\">\r\n <div class=\"card col-12 md:col-12 flex flex-column border-bottom align-items-start p-4 pb-3\" style=\"\r\n border-bottom: 1px solid var(--surface-border);\r\n border-radius: 0px;\r\n border-top-left-radius: 8px;\r\n border-top-right-radius: 8px;\r\n \">\r\n <h4 class=\"text-color m-0 queue-name font-semibold margin\">\r\n {{ queueData.name }}\r\n </h4>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 p-0 flex scrollable flex-column\" [ngClass]=\"\r\n selectedStatus === 'active' ? 'surface-card' : 'inactive-card-wrapper'\r\n \">\r\n @for(record of associateQueueList; track record; let i = $index) {\r\n @if(record){\r\n <div class=\"col-12 md:col-12 border-bottom-1 p-0 surface-border gap-2 hover:surface-ground cursor-pointer\"\r\n (click)=\"handleApplicationClick(record)\">\r\n\r\n <div class=\"col-12 md:col-12 flex align-items-center py-3 px-4 userInfo\">\r\n <div class=\"col-12 md:col-2 p-0 userImage\">\r\n <div\r\n class=\"mainimg flex align-items-center justify-content-center circleColor w-3rem h-3rem border-circle\">\r\n <span class=\"font-bold\" style=\"font-weight: 600; font-size: 13.5; font-family: inherit;\">\r\n {{ record.initials }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-10 p-0\">\r\n <div class=\"flex justify-content-between align-items-center col-12 md:col-12 p-0\">\r\n <div class=\"userName\" style=\"font-weight: 600; font-size: 15px; \">\r\n {{ record.FullName | capitalizeWords }} \r\n </div>\r\n <div class=\"dayAndtime flex\">\r\n @if(record.message.type == \"Email\"){\r\n <span class=\"pi pi-envelope mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }\r\n @else if(record.message.type == \"SMS\") {\r\n <span class=\"pi pi-comments mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }@else if(record.message.type == \"WhatsApp\"){\r\n <span class=\"pi pi-whatsapp mr-2\" style=\"color: #676B89;font-size: 17px;\"></span>\r\n\r\n }\r\n <span style=\"color: #676B89; font-family: inherit;\"> {{record.message.day}}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-between mt-1\">\r\n <div class=\"email col-12 md:col-12 p-0\" style=\"color: #8A8EA6;\">\r\n {{ record.message.content }}\r\n </div>\r\n \r\n <div class=\"countOfMessages\">\r\n <span>{{record.message.count}}</span>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".label,.value{font-size:14px}.card{margin-bottom:0!important}.queue-name{max-width:85%;word-wrap:break-word;white-space:normal}.text-verflow-elipses{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{background:var(--surface-card)}.card .filter-section .filter-dropdown,.card .filter-section .filter-button{padding:.2rem .5rem;border:1px solid #cce7ff;border-radius:5px;background-color:#f0f8ff;color:#333;cursor:pointer}.set-reminder-box{background-color:#4c629214;border:1px solid rgba(76,98,146,.2)}.set-reminder-box .pi-bell{color:#f57c00}.inactive-card-wrapper{background-color:#f3f5f8;border-left:1px solid #e0e3f3!important;border-right:1px solid #e0e3f3!important}::ng-deep .inactive-tag-wrapper .p-tag{background-color:#676b89!important}.circleColor{background-color:#eef0f5;color:#4c6292}.email{max-width:85%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countOfMessages{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#0f8bfd;color:#fff;width:22px!important;height:22px!important}.userInfo:hover{background-color:#eef0f5b3}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: CapitalizeWordsPipe, name: "capitalizeWords" }] });
3170
3465
  }
3171
3466
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueApplicationListComponent, decorators: [{
3172
3467
  type: Component,
3173
3468
  args: [{ selector: 'queue-application-list', standalone: false, template: "<div class=\"grid m-0\">\r\n <div class=\"col-12\">\r\n <div class=\"p-fluid p-formgrid grid p-2\">\r\n <div class=\"card col-12 md:col-12 flex flex-column border-bottom align-items-start p-4 pb-3\" style=\"\r\n border-bottom: 1px solid var(--surface-border);\r\n border-radius: 0px;\r\n border-top-left-radius: 8px;\r\n border-top-right-radius: 8px;\r\n \">\r\n <h4 class=\"text-color m-0 queue-name font-semibold margin\">\r\n {{ queueData.name }}\r\n </h4>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 p-0 flex scrollable flex-column\" [ngClass]=\"\r\n selectedStatus === 'active' ? 'surface-card' : 'inactive-card-wrapper'\r\n \">\r\n @for(record of associateQueueList; track record; let i = $index) {\r\n @if(record){\r\n <div class=\"col-12 md:col-12 border-bottom-1 p-0 surface-border gap-2 hover:surface-ground cursor-pointer\"\r\n (click)=\"handleApplicationClick(record)\">\r\n\r\n <div class=\"col-12 md:col-12 flex align-items-center py-3 px-4 userInfo\">\r\n <div class=\"col-12 md:col-2 p-0 userImage\">\r\n <div\r\n class=\"mainimg flex align-items-center justify-content-center circleColor w-3rem h-3rem border-circle\">\r\n <span class=\"font-bold\" style=\"font-weight: 600; font-size: 13.5; font-family: inherit;\">\r\n {{ record.initials }}\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-10 p-0\">\r\n <div class=\"flex justify-content-between align-items-center col-12 md:col-12 p-0\">\r\n <div class=\"userName\" style=\"font-weight: 600; font-size: 15px; \">\r\n {{ record.FullName | capitalizeWords }} \r\n </div>\r\n <div class=\"dayAndtime flex\">\r\n @if(record.message.type == \"Email\"){\r\n <span class=\"pi pi-envelope mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }\r\n @else if(record.message.type == \"SMS\") {\r\n <span class=\"pi pi-comments mr-2\" style=\"color: #676B89; font-size: 17px;\"></span>\r\n }@else if(record.message.type == \"WhatsApp\"){\r\n <span class=\"pi pi-whatsapp mr-2\" style=\"color: #676B89;font-size: 17px;\"></span>\r\n\r\n }\r\n <span style=\"color: #676B89; font-family: inherit;\"> {{record.message.day}}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-between mt-1\">\r\n <div class=\"email col-12 md:col-12 p-0\" style=\"color: #8A8EA6;\">\r\n {{ record.message.content }}\r\n </div>\r\n \r\n <div class=\"countOfMessages\">\r\n <span>{{record.message.count}}</span>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".label,.value{font-size:14px}.card{margin-bottom:0!important}.queue-name{max-width:85%;word-wrap:break-word;white-space:normal}.text-verflow-elipses{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card{background:var(--surface-card)}.card .filter-section .filter-dropdown,.card .filter-section .filter-button{padding:.2rem .5rem;border:1px solid #cce7ff;border-radius:5px;background-color:#f0f8ff;color:#333;cursor:pointer}.set-reminder-box{background-color:#4c629214;border:1px solid rgba(76,98,146,.2)}.set-reminder-box .pi-bell{color:#f57c00}.inactive-card-wrapper{background-color:#f3f5f8;border-left:1px solid #e0e3f3!important;border-right:1px solid #e0e3f3!important}::ng-deep .inactive-tag-wrapper .p-tag{background-color:#676b89!important}.circleColor{background-color:#eef0f5;color:#4c6292}.email{max-width:85%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.countOfMessages{display:flex;align-items:center;justify-content:center;border-radius:50%;background-color:#0f8bfd;color:#fff;width:22px!important;height:22px!important}.userInfo:hover{background-color:#eef0f5b3}\n"] }]
3174
- }], ctorParameters: () => [{ type: QueueService }, { type: DataTransformerService }, { type: i3$4.Router }, { type: QueueStore }], propDecorators: { queueData: [{
3469
+ }], ctorParameters: () => [{ type: QueueService$1 }, { type: DataTransformerService }, { type: i3$4.Router }, { type: QueueStore$1 }], propDecorators: { queueData: [{
3175
3470
  type: Input
3176
3471
  }] } });
3177
3472
 
@@ -3210,26 +3505,26 @@ class QueueAdminListComponent extends BaseContainerComponent {
3210
3505
  console.warn(ERROR.NO_QUEUE_FOUND_WITH_ID);
3211
3506
  }
3212
3507
  }
3213
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminListComponent, deps: [{ token: QueueStore }, { token: QueueService }], target: i0.ɵɵFactoryTarget.Component });
3508
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminListComponent, deps: [{ token: QueueStore$1 }, { token: QueueService$1 }], target: i0.ɵɵFactoryTarget.Component });
3214
3509
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: QueueAdminListComponent, isStandalone: false, selector: "lib-queue-admin-list", usesInheritance: true, ngImport: i0, template: "<div class=\"container grid m-0\">\r\n <div class=\"col-12 xl:col-3 md:col-12\">\r\n <block-list\r\n [queueData]=\"queueList\"\r\n (queueDataById)=\"handleQueueId($event)\"\r\n ></block-list>\r\n </div>\r\n <div class=\"col-12 xl:col-3 md:col-12\">\r\n @if(selectedQueue){\r\n <div class=\"animation-duration-500 associated-list\">\r\n <queue-application-list\r\n [queueData]=\"selectedQueue\"\r\n ></queue-application-list>\r\n </div>\r\n }\r\n </div>\r\n \r\n <div class=\"xl:col-6 md:col-12\">\r\n <div class=\"searchbar-wrapper\">\r\n <queue-search-customer></queue-search-customer>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".custom-tabview .p-tabview-nav{display:flex}::ng-deep .custom-tabview .p-tabview-nav-content ul li{flex:1;max-width:25%}.scrollable{scroll-behavior:smooth;max-height:75vh}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background-color:#868181;border-radius:20px}\n"], dependencies: [{ kind: "component", type: QueueSearchCustomerComponent, selector: "queue-search-customer" }, { kind: "component", type: BlockListComponent, selector: "block-list", inputs: ["queueData", "showQueueDataForm"], outputs: ["queueDataById"] }, { kind: "component", type: QueueApplicationListComponent, selector: "queue-application-list", inputs: ["queueData"] }] });
3215
3510
  }
3216
3511
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminListComponent, decorators: [{
3217
3512
  type: Component,
3218
3513
  args: [{ selector: 'lib-queue-admin-list', standalone: false, template: "<div class=\"container grid m-0\">\r\n <div class=\"col-12 xl:col-3 md:col-12\">\r\n <block-list\r\n [queueData]=\"queueList\"\r\n (queueDataById)=\"handleQueueId($event)\"\r\n ></block-list>\r\n </div>\r\n <div class=\"col-12 xl:col-3 md:col-12\">\r\n @if(selectedQueue){\r\n <div class=\"animation-duration-500 associated-list\">\r\n <queue-application-list\r\n [queueData]=\"selectedQueue\"\r\n ></queue-application-list>\r\n </div>\r\n }\r\n </div>\r\n \r\n <div class=\"xl:col-6 md:col-12\">\r\n <div class=\"searchbar-wrapper\">\r\n <queue-search-customer></queue-search-customer>\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".custom-tabview .p-tabview-nav{display:flex}::ng-deep .custom-tabview .p-tabview-nav-content ul li{flex:1;max-width:25%}.scrollable{scroll-behavior:smooth;max-height:75vh}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background-color:#868181;border-radius:20px}\n"] }]
3219
- }], ctorParameters: () => [{ type: QueueStore }, { type: QueueService }] });
3514
+ }], ctorParameters: () => [{ type: QueueStore$1 }, { type: QueueService$1 }] });
3220
3515
 
3221
3516
  class QueueAdminModule {
3222
3517
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3223
3518
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminModule, declarations: [QueueAdminFormComponent, QueueAdminListComponent, QueueApplicationListComponent], imports: [CommonModule,
3224
3519
  SharedModule,
3225
- QueueRoutingModule,
3520
+ QueueRoutingModule$1,
3226
3521
  FormsModule,
3227
3522
  QueryBuilderModule,
3228
3523
  ButtonModule,
3229
3524
  CheckBoxComponent], exports: [QueueAdminFormComponent, QueueAdminListComponent, QueueApplicationListComponent] });
3230
3525
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueAdminModule, imports: [CommonModule,
3231
3526
  SharedModule,
3232
- QueueRoutingModule,
3527
+ QueueRoutingModule$1,
3233
3528
  FormsModule,
3234
3529
  QueryBuilderModule,
3235
3530
  ButtonModule,
@@ -3242,7 +3537,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
3242
3537
  imports: [
3243
3538
  CommonModule,
3244
3539
  SharedModule,
3245
- QueueRoutingModule,
3540
+ QueueRoutingModule$1,
3246
3541
  FormsModule,
3247
3542
  QueryBuilderModule,
3248
3543
  ButtonModule,
@@ -3279,13 +3574,13 @@ class AdminActionService extends BaseService {
3279
3574
  const apiUrl = `${this.apiUrl}${name}/${encodeURIComponent(id)}`;
3280
3575
  return this.http.post(`${apiUrl}`, record).pipe(tap$1((entities) => this.actionStore.set(entities)));
3281
3576
  }
3282
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionService, deps: [{ token: AdminActionStore }, { token: i1$1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3577
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionService, deps: [{ token: AdminActionStore }, { token: i1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3283
3578
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionService, providedIn: 'root' });
3284
3579
  }
3285
3580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: AdminActionService, decorators: [{
3286
3581
  type: Injectable,
3287
3582
  args: [{ providedIn: 'root' }]
3288
- }], ctorParameters: () => [{ type: AdminActionStore }, { type: i1$1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
3583
+ }], ctorParameters: () => [{ type: AdminActionStore }, { type: i1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
3289
3584
 
3290
3585
  /**
3291
3586
  * Admin Action List Component
@@ -3490,13 +3785,13 @@ class DictionaryService extends BaseService {
3490
3785
  return of({ error: true, message: ERROR.ERROR_DELETE_DICTIONARY_ITEM });
3491
3786
  }));
3492
3787
  }
3493
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DictionaryService, deps: [{ token: DictionaryStore }, { token: i1$1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DictionaryService, deps: [{ token: DictionaryStore }, { token: i1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3494
3789
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DictionaryService, providedIn: 'root' });
3495
3790
  }
3496
3791
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DictionaryService, decorators: [{
3497
3792
  type: Injectable,
3498
3793
  args: [{ providedIn: 'root' }]
3499
- }], ctorParameters: () => [{ type: DictionaryStore }, { type: i1$1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
3794
+ }], ctorParameters: () => [{ type: DictionaryStore }, { type: i1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
3500
3795
 
3501
3796
  /**
3502
3797
  * DictionaryQuery
@@ -3614,7 +3909,7 @@ class DdAdminItemFormComponent {
3614
3909
  this.attributeRecord = new DdAttributeSidebarViewModel();
3615
3910
  }
3616
3911
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DdAdminItemFormComponent, deps: [{ token: DictionaryStore }, { token: DictionaryQuery }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
3617
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DdAdminItemFormComponent, isStandalone: false, selector: "lib-dd-admin-item-form", inputs: { ddItemRecord: "ddItemRecord", isItemExpression: "isItemExpression", isSidebarVisible: "isSidebarVisible" }, outputs: { saveClick: "saveClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dicitonary-edit-action px-3\">\r\n <div class=\"flex align-items-center justify-content-end mt-3\">\r\n <lib-button\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n buttonLabel: 'Save',\r\n isDisabled: false,\r\n }\"\r\n (onBtnClick)=\"handleSaveBtnClick($event)\"\r\n >\r\n </lib-button>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 mt-5\">\r\n <label *ngIf=\"!isItemExpression\" for=\"styleInput\" class=\"text-gray-600 text-sm mb-2 block\">\r\n Hint: Use key-value pairs for styles.\r\n <br/>\r\n Example:<code>\r\n 'background-color': 'lightgray',\r\n 'font-size': '16px',<br>\r\n 'padding': '10px'\r\n </code>\r\n </label>\r\n <text-area\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n displayText: 'Expression',\r\n readonly : false,\r\n name : 'mappingInfo',\r\n isRequired : isItemExpression ? true : false,\r\n placeholder : 'Enter Text',\r\n customPadding: '12px',\r\n }\"\r\n ></text-area>\r\n </div>\r\n <div class=\"col-12 md:col-12\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"dictionaryStore\" [isStaticDropdown]=\"true\" [record]=\"attributeRecord\" [attributeModel]=\"{\r\n name:'propertyList',\r\n displayText : 'Select properties',\r\n isRequired:false,\r\n listLabelProperty: 'label',\r\n listValueProperty: 'value',\r\n options : propertyOptions,\r\n filter : true\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-3\">\r\n <lib-button\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n buttonLabel: 'Add to expression',\r\n isDisabled: false,\r\n }\"\r\n (onBtnClick)=\"handleAddExpressionClick($event)\"\r\n >\r\n </lib-button>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: ButtonComponent, selector: "lib-button" }, { kind: "component", type: TextAreaComponent, selector: "text-area", inputs: ["rowspan"] }] });
3912
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DdAdminItemFormComponent, isStandalone: false, selector: "lib-dd-admin-item-form", inputs: { ddItemRecord: "ddItemRecord", isItemExpression: "isItemExpression", isSidebarVisible: "isSidebarVisible" }, outputs: { saveClick: "saveClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dicitonary-edit-action px-3\">\r\n <div class=\"flex align-items-center justify-content-end mt-3\">\r\n <lib-button\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n buttonLabel: 'Save',\r\n isDisabled: false,\r\n }\"\r\n (onBtnClick)=\"handleSaveBtnClick($event)\"\r\n >\r\n </lib-button>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 mt-5\">\r\n <label *ngIf=\"!isItemExpression\" for=\"styleInput\" class=\"text-gray-600 text-sm mb-2 block\">\r\n Hint: Use key-value pairs for styles.\r\n <br/>\r\n Example:<code>\r\n 'background-color': 'lightgray',\r\n 'font-size': '16px',<br>\r\n 'padding': '10px'\r\n </code>\r\n </label>\r\n <text-area\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n displayText: 'Expression',\r\n readonly : false,\r\n name : 'mappingInfo',\r\n isRequired : isItemExpression ? true : false,\r\n placeholder : 'Enter Text',\r\n customPadding: '12px',\r\n }\"\r\n ></text-area>\r\n </div>\r\n <div class=\"col-12 md:col-12\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"dictionaryStore\" [isStaticDropdown]=\"true\" [record]=\"attributeRecord\" [attributeModel]=\"{\r\n name:'propertyList',\r\n displayText : 'Select properties',\r\n isRequired:false,\r\n listLabelProperty: 'label',\r\n listValueProperty: 'value',\r\n options : propertyOptions,\r\n filter : true\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-3\">\r\n <lib-button\r\n [store]=\"dictionaryStore\"\r\n [record]=\"attributeRecord\"\r\n [attributeModel]=\"{\r\n buttonLabel: 'Add to expression',\r\n isDisabled: false,\r\n }\"\r\n (onBtnClick)=\"handleAddExpressionClick($event)\"\r\n >\r\n </lib-button>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: ButtonComponent, selector: "lib-button" }, { kind: "component", type: TextAreaComponent, selector: "text-area", inputs: ["rowspan"] }] });
3618
3913
  }
3619
3914
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DdAdminItemFormComponent, decorators: [{
3620
3915
  type: Component,
@@ -3726,7 +4021,7 @@ class DdAdminFormComponent extends BaseFormComponent {
3726
4021
  super.ngOnDestroy();
3727
4022
  }
3728
4023
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DdAdminFormComponent, deps: [{ token: DictionaryService }, { token: DictionaryQuery }, { token: ValidatorService }, { token: i3$4.Router }, { token: i3$4.ActivatedRoute }, { token: DictionaryStore }, { token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
3729
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DdAdminFormComponent, isStandalone: false, selector: "lib-dd-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [messages]=\"messages\" [record]=\"record\" [headerText]=\"'Dictionary Form'\" [showSave]=\"true\"\r\n (onCancel)=\"handleCancel()\" (onSave)=\"handleSubmit()\">\r\n <div class=\"card p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 flex align-items-center justify-content-between\">\r\n <div class=\"col-12 md:col-5 p-field\">\r\n <div class=\"dictionary-name\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly : false,\r\n name : 'name',\r\n isRequired : true,\r\n displayText: 'Dictionary Name',\r\n placeholder : 'Enter Text',\r\n }\"></text-box>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-5\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'apiConfigId',\r\n dataSource: 'apiconfigs',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText: 'API ',\r\n placeholder: 'Select API',\r\n isRequired: true\r\n }\" (onInput)=\"handleGetProperties($event)\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field p-0 pr-2 ml-3 col-12 md:col-2\">\r\n <div class=\"card m-0 p-0 mb-2\">\r\n <div class=\"mt-3 w-full flex\">\r\n <button pButton pRipple routerLinkActive=\"router-link-active\"\r\n class=\"py-3 justify-content-center font-semibold w-full border-round\"\r\n (click)=\"handleDictionaryItemAddBtnClick()\">\r\n Add New Item\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- dictionary Items -->\r\n <div class=\"col-12 md:col-12 flex align-items-center justify-content-between\"\r\n *ngFor=\"let ddItem of record.dictionaryItems; let i = index\">\r\n <div class=\"field col-12 md:col-3 pr-0\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'itemName',\r\n readonly : false,\r\n displayText : 'Item Name',\r\n isRequired : true,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field flex align-items-center justify-content-between col-12 md:col-3 pr-0\">\r\n <div class=\"flex align-items-center w-full\">\r\n <div class=\"w-full mr-3\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'itemExpression',\r\n readonly : true,\r\n displayText : 'Item Expression',\r\n isRequired : true,\r\n }\">\r\n </text-box>\r\n </div>\r\n <span class=\"pi pi-cog mt-4 cursor-pointer text-xl\"\r\n (click)=\"handleItemExpression(i, $event )\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3 flex align-items-center justify-content-between pr-0\">\r\n <div class=\"flex align-items-center w-full\">\r\n <div class=\"w-full mr-3\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'styleExpression',\r\n readonly : false,\r\n disable : true,\r\n displayText : 'Style Expression',\r\n isRequired : false,\r\n }\">\r\n </text-box>\r\n </div>\r\n <span class=\"pi pi-cog mt-4 text-xl cursor-pointer text-color\"\r\n (click)=\"handleStyleExpression(i, $event)\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-2 flex align-items-center justify-content-center mt-4\">\r\n <check-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Is Active',\r\n }\">\r\n </check-box>\r\n\r\n <div class=\"ml-6 delete-icon-container\">\r\n <i class=\"pi pi-trash trash-icon-wrapper cursor-pointer\"\r\n (click)=\"handleDeleteRecord(i, ddItem?._id)\"></i>\r\n </div>\r\n </div>\r\n <sidebar [isSidebarVisible]=\"sidebarVisibility[i]\" [title]=\"'Edit Expression'\"\r\n (onClose)=\"onSidebarClose($event)\">\r\n <lib-dd-admin-item-form [ddItemRecord]=\"ddItem\" [isItemExpression]=\"isItemExpression\"\r\n (saveClick)=\"onSidebarClose($event)\"></lib-dd-admin-item-form>\r\n </sidebar>\r\n </div>\r\n\r\n </div>\r\n</form-container>", styles: [".trash-icon-wrapper{font-size:20px;color:var(--red-500)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: SidebarComponent, selector: "sidebar", inputs: ["isSidebarVisible", "title"], outputs: ["onClose"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: DdAdminItemFormComponent, selector: "lib-dd-admin-item-form", inputs: ["ddItemRecord", "isItemExpression", "isSidebarVisible"], outputs: ["saveClick"] }] });
4024
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: DdAdminFormComponent, isStandalone: false, selector: "lib-dd-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [messages]=\"messages\" [record]=\"record\" [headerText]=\"'Dictionary Form'\" [showSave]=\"true\"\r\n (onCancel)=\"handleCancel()\" (onSave)=\"handleSubmit()\">\r\n <div class=\"card p-fluid p-formgrid grid m-0\">\r\n <div class=\"col-12 md:col-12 flex align-items-center justify-content-between\">\r\n <div class=\"col-12 md:col-5 p-field\">\r\n <div class=\"dictionary-name\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly : false,\r\n name : 'name',\r\n isRequired : true,\r\n displayText: 'Dictionary Name',\r\n placeholder : 'Enter Text',\r\n }\"></text-box>\r\n </div>\r\n </div>\r\n <div class=\"col-12 md:col-5\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'apiConfigId',\r\n dataSource: 'apiconfigs',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText: 'API ',\r\n placeholder: 'Select API',\r\n isRequired: true\r\n }\" (onInput)=\"handleGetProperties($event)\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"ddAdminStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field p-0 pr-2 ml-3 col-12 md:col-2\">\r\n <div class=\"card m-0 p-0 mb-2\">\r\n <div class=\"mt-3 w-full flex\">\r\n <button pButton pRipple routerLinkActive=\"router-link-active\"\r\n class=\"py-3 justify-content-center font-semibold w-full border-round\"\r\n (click)=\"handleDictionaryItemAddBtnClick()\">\r\n Add New Item\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- dictionary Items -->\r\n <div class=\"col-12 md:col-12 flex align-items-center justify-content-between\"\r\n *ngFor=\"let ddItem of record.dictionaryItems; let i = index\">\r\n <div class=\"field col-12 md:col-3 pr-0\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'itemName',\r\n readonly : false,\r\n displayText : 'Item Name',\r\n isRequired : true,\r\n }\"></text-box>\r\n </div>\r\n <div class=\"field flex align-items-center justify-content-between col-12 md:col-3 pr-0\">\r\n <div class=\"flex align-items-center w-full\">\r\n <div class=\"w-full mr-3\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'itemExpression',\r\n readonly : true,\r\n displayText : 'Item Expression',\r\n isRequired : true,\r\n }\">\r\n </text-box>\r\n </div>\r\n <span class=\"pi pi-cog mt-4 cursor-pointer text-xl\"\r\n (click)=\"handleItemExpression(i, $event )\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-3 flex align-items-center justify-content-between pr-0\">\r\n <div class=\"flex align-items-center w-full\">\r\n <div class=\"w-full mr-3\">\r\n <text-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name : 'styleExpression',\r\n readonly : false,\r\n disable : true,\r\n displayText : 'Style Expression',\r\n isRequired : false,\r\n }\">\r\n </text-box>\r\n </div>\r\n <span class=\"pi pi-cog mt-4 text-xl cursor-pointer text-color\"\r\n (click)=\"handleStyleExpression(i, $event)\"></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field col-12 md:col-2 flex align-items-center justify-content-center mt-4\">\r\n <check-box [store]=\"ddAdminStore\" [record]=\"ddItem\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Is Active',\r\n }\">\r\n </check-box>\r\n\r\n <div class=\"ml-6 delete-icon-container\">\r\n <i class=\"pi pi-trash trash-icon-wrapper cursor-pointer\"\r\n (click)=\"handleDeleteRecord(i, ddItem?._id)\"></i>\r\n </div>\r\n </div>\r\n <sidebar [isSidebarVisible]=\"sidebarVisibility[i]\" [title]=\"'Edit Expression'\"\r\n (onClose)=\"onSidebarClose($event)\">\r\n <lib-dd-admin-item-form [ddItemRecord]=\"ddItem\" [isItemExpression]=\"isItemExpression\"\r\n (saveClick)=\"onSidebarClose($event)\"></lib-dd-admin-item-form>\r\n </sidebar>\r\n </div>\r\n\r\n </div>\r\n</form-container>", styles: [".trash-icon-wrapper{font-size:20px;color:var(--red-500)}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: SidebarComponent, selector: "sidebar", inputs: ["isSidebarVisible", "title"], outputs: ["onClose"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "directive", type: i3$3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: DdAdminItemFormComponent, selector: "lib-dd-admin-item-form", inputs: ["ddItemRecord", "isItemExpression", "isSidebarVisible"], outputs: ["saveClick"] }] });
3730
4025
  }
3731
4026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: DdAdminFormComponent, decorators: [{
3732
4027
  type: Component,
@@ -3864,13 +4159,13 @@ class TemplateAdminService extends BaseService {
3864
4159
  listLabelProperty: "key",
3865
4160
  }
3866
4161
  ];
3867
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminService, deps: [{ token: i1$1.HttpClient }, { token: TemplateAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
4162
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminService, deps: [{ token: i1.HttpClient }, { token: TemplateAdminStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
3868
4163
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminService, providedIn: 'root' });
3869
4164
  }
3870
4165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminService, decorators: [{
3871
4166
  type: Injectable,
3872
4167
  args: [{ providedIn: 'root' }]
3873
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: TemplateAdminStore }, { type: AppConfigService }, { type: ListService }] });
4168
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: TemplateAdminStore }, { type: AppConfigService }, { type: ListService }] });
3874
4169
 
3875
4170
  /**
3876
4171
  * Template Admin Query
@@ -3956,7 +4251,7 @@ class TemplateAdminFormComponent extends BaseFormComponent {
3956
4251
  super.ngOnDestroy();
3957
4252
  }
3958
4253
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminFormComponent, deps: [{ token: TemplateAdminService }, { token: ValidatorService }, { token: i3$4.Router }, { token: i3$4.ActivatedRoute }, { token: TemplateAdminQuery }, { token: TemplateAdminStore }, { token: BaseStore }, { token: BaseQuery }], target: i0.ɵɵFactoryTarget.Component });
3959
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TemplateAdminFormComponent, isStandalone: false, selector: "lib-template-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [record]=\"record\" [showSave]=\"true\" [messages]=\"message\" (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\">\r\n <div class=\"card p-fluid p-formgrid\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Template Form</h4>\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div class=\"col-12 md:col-5\">\r\n <text-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Template Name'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-5\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'type',\r\n displayText: 'Type',\r\n listLabelProperty: 'value',\r\n listValueProperty: 'value',\r\n placeholder: 'Select Type',\r\n isRequired: true,\r\n options: templateTypeList\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'queueId',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText : 'Select Queue',\r\n placeholder: 'Select Queue',\r\n isRequired:true\r\n }\" (onInput)=\"handleQueueChange($event)\">\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'dictionaryID',\r\n displayText: 'Select Dictionary',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n placeholder: 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div *ngIf=\"record.type === 'email'\" class=\"col-12 md:col-6\">\r\n <text-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'subject',\r\n isRequired: true,\r\n displayText: 'Subject',\r\n placeholder: 'Enter Subject'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'dictionaryItemID',\r\n displayText: 'Select Dictionary Item',\r\n listLabelProperty: 'itemName',\r\n listValueProperty: '_id',\r\n placeholder: 'Select Dictionary Item',\r\n options: dictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12\">\r\n <label>Message</label>\r\n <span class=\"asterisk ml-1\">*</span>\r\n <quill-editor [(ngModel)]=\"messageContent\" class=\"w-full mt-2\"></quill-editor>\r\n <div *ngIf=\"isFormSubmitted && !messageContent\" class=\"error-message\">\r\n <small class=\"p-error\">Message is required</small>\r\n </div>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".asterisk{color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "component", type: i1$2.QuillEditorComponent, selector: "quill-editor" }] });
4254
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TemplateAdminFormComponent, isStandalone: false, selector: "lib-template-admin-form", usesInheritance: true, ngImport: i0, template: "<form-container [record]=\"record\" [showSave]=\"true\" [messages]=\"message\" (onSave)=\"handleSubmit()\"\r\n (onCancel)=\"handleCancel()\">\r\n <div class=\"card p-fluid p-formgrid\">\r\n <h4 class=\"font-bold col-12 md:col-12\">Template Form</h4>\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div class=\"col-12 md:col-5\">\r\n <text-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'name',\r\n isRequired: true,\r\n displayText: 'Name',\r\n placeholder: 'Enter Template Name'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-5\">\r\n <div class=\"p-field queue-list-wrapper\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'type',\r\n displayText: 'Type',\r\n listLabelProperty: 'value',\r\n listValueProperty: 'value',\r\n placeholder: 'Select Type',\r\n isRequired: true,\r\n options: templateTypeList\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-2 md:col-2 mt-5\">\r\n <check-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'isActive',\r\n displayText : 'Active',\r\n }\">\r\n </check-box>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n name:'queueId',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n displayText : 'Select Queue',\r\n placeholder: 'Select Queue',\r\n isRequired:true\r\n }\" (onInput)=\"handleQueueChange($event)\">\r\n </dropdown>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'dictionaryID',\r\n displayText: 'Select Dictionary',\r\n listLabelProperty: 'name',\r\n listValueProperty: '_id',\r\n placeholder: 'Select Dictionary',\r\n options: dictionaries\r\n }\" (onInput)=\"handleDictionarySelect($event)\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12 flex px-0\">\r\n <div *ngIf=\"record.type === 'email'\" class=\"col-12 md:col-6\">\r\n <text-box [store]=\"templateStore\" [record]=\"record\" [attributeModel]=\"{\r\n readonly: false,\r\n name: 'subject',\r\n isRequired: true,\r\n displayText: 'Subject',\r\n placeholder: 'Enter Subject'\r\n }\"></text-box>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-6\">\r\n <dropdown [store]=\"templateStore\" [isStaticDropdown]=\"true\" [record]=\"record\" [attributeModel]=\"{\r\n name: 'dictionaryItemID',\r\n displayText: 'Select Dictionary Item',\r\n listLabelProperty: 'itemName',\r\n listValueProperty: '_id',\r\n placeholder: 'Select Dictionary Item',\r\n options: dictionaryItems\r\n }\">\r\n </dropdown>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 md:col-12\">\r\n <label>Message</label>\r\n <span class=\"asterisk ml-1\">*</span>\r\n <quill-editor [(ngModel)]=\"messageContent\" class=\"w-full mt-2\"></quill-editor>\r\n <div *ngIf=\"isFormSubmitted && !messageContent\" class=\"error-message\">\r\n <small class=\"p-error\">Message is required</small>\r\n </div>\r\n </div>\r\n </div>\r\n</form-container>", styles: [".asterisk{color:red}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TextBoxComponent, selector: "text-box" }, { kind: "component", type: DropdownComponent, selector: "dropdown", inputs: ["isStaticDropdown"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormContainerComponent, selector: "form-container", inputs: ["messages", "record", "headerText", "showSave", "disableSaveButton"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: CheckBoxComponent, selector: "check-box" }, { kind: "component", type: i1$1.QuillEditorComponent, selector: "quill-editor" }] });
3960
4255
  }
3961
4256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminFormComponent, decorators: [{
3962
4257
  type: Component,
@@ -3986,7 +4281,7 @@ class TemplateAdminListComponent extends BaseListComponent {
3986
4281
  this.baseStore.setSelectedTemplate(this.activeTabIndex === 0 ? SHARED.EMPTY : this.selectedType);
3987
4282
  }
3988
4283
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminListComponent, deps: [{ token: TemplateAdminService }, { token: TableBuilder }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
3989
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TemplateAdminListComponent, isStandalone: false, selector: "lib-template-admin-list", usesInheritance: true, ngImport: i0, template: "<div class=\"template-tab-wrapper\">\r\n <p-tabView class=\"application-tabs-wrapper h-full\" [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <span class=\"font-semibold\">All Templates</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n \r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-envelope mr-3 message-type-wrapper\"></i>\r\n <span class=\"mr-1\">Email</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n \r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-comment mr-3 message-type-wrapper\"></i>\r\n <span>SMS</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n\r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-whatsapp mr-3 message-type-wrapper\"></i>\r\n <span>WhatsApp</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n</div>\r\n\r\n@if(table){\r\n <lib-table-primary [table]=\"table\" [pathName]=\"pathName\" [metaData]=\"metaData\">\r\n </lib-table-primary>\r\n}", styles: ["::ng-deep .application-tabs-wrapper .p-tabview{height:100%}::ng-deep .application-tabs-wrapper .p-tabview-panels{height:calc(100% - 64px);padding-bottom:0}::ng-deep .application-tabs-wrapper .p-tabview-panel{height:100%}::ng-deep .application-tabs-wrapper .p-tabview-nav-content .p-tabview-nav li{width:15%;margin-bottom:2px}::ng-deep .application-tabs-wrapper .p-tabview-nav-content .p-tabview-nav a{justify-content:center}.message-type-wrapper{font-size:16px}\n"], dependencies: [{ kind: "component", type: TablePrimaryComponent, selector: "lib-table-primary", inputs: ["table", "metaData", "title", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton", "pathName"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5$3.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5$3.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }] });
4284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: TemplateAdminListComponent, isStandalone: false, selector: "lib-template-admin-list", usesInheritance: true, ngImport: i0, template: "<div class=\"template-tab-wrapper\">\r\n <p-tabView class=\"application-tabs-wrapper h-full\" [(activeIndex)]=\"activeTabIndex\" (onChange)=\"onTabChange($event)\">\r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <span class=\"font-semibold\">All Templates</span>\r\n </ng-template>\r\n </p-tabPanel>\r\n \r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-envelope mr-3 message-type-wrapper\"></i>\r\n <span class=\"mr-1\">Email</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n \r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-comment mr-3 message-type-wrapper\"></i>\r\n <span>SMS</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n\r\n <p-tabPanel>\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex align-items-center font-semibold\">\r\n <i class=\"pi pi-whatsapp mr-3 message-type-wrapper\"></i>\r\n <span>WhatsApp</span>\r\n </div>\r\n </ng-template>\r\n </p-tabPanel>\r\n </p-tabView>\r\n</div>\r\n\r\n@if(table){\r\n <lib-table-primary [table]=\"table\" [pathName]=\"pathName\" [metaData]=\"metaData\">\r\n </lib-table-primary>\r\n}", styles: ["::ng-deep .application-tabs-wrapper .p-tabview{height:100%}::ng-deep .application-tabs-wrapper .p-tabview-panels{height:calc(100% - 64px);padding-bottom:0}::ng-deep .application-tabs-wrapper .p-tabview-panel{height:100%}::ng-deep .application-tabs-wrapper .p-tabview-nav-content .p-tabview-nav li{width:15%;margin-bottom:2px}::ng-deep .application-tabs-wrapper .p-tabview-nav-content .p-tabview-nav a{justify-content:center}.message-type-wrapper{font-size:16px}\n"], dependencies: [{ kind: "component", type: TablePrimaryComponent, selector: "lib-table-primary", inputs: ["table", "metaData", "title", "showStatus", "showActions", "showSearchBar", "showNewRecordButton", "showRefreshButton", "pathName"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5$4.TabView, selector: "p-tabView", inputs: ["style", "styleClass", "controlClose", "scrollable", "activeIndex", "selectOnFocus", "nextButtonAriaLabel", "prevButtonAriaLabel", "autoHideButtons", "tabindex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { kind: "component", type: i5$4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }] });
3990
4285
  }
3991
4286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminListComponent, decorators: [{
3992
4287
  type: Component,
@@ -4003,7 +4298,7 @@ class TemplateAdminModule {
4003
4298
  SharedModule,
4004
4299
  FormsModule,
4005
4300
  TabViewModule,
4006
- CheckBoxComponent, i1$2.QuillModule, i1$2.QuillConfigModule], exports: [TemplateAdminFormComponent, TemplateAdminListComponent] });
4301
+ CheckBoxComponent, i1$1.QuillModule, i1$1.QuillConfigModule], exports: [TemplateAdminFormComponent, TemplateAdminListComponent] });
4007
4302
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TemplateAdminModule, imports: [CommonModule,
4008
4303
  TablePrimaryComponent,
4009
4304
  TextBoxComponent,
@@ -4130,13 +4425,13 @@ class WidgetService extends BaseService {
4130
4425
  const url = `${this.apiUrl}${ROUTES.EVALUATE_BY_WIDGETNAME}${SHARED.QUESTION_MARK}${SHARED.RECORDID}${SHARED.EQUALS}${recordId}${SHARED.AMPERSAND}${SHARED.WIDGET_NAME}${SHARED.EQUALS}${widgetName}`;
4131
4426
  return this.http.get(url).pipe(tap$1((entities) => this.widgetStore.set(entities)));
4132
4427
  }
4133
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetService, deps: [{ token: i1$1.HttpClient }, { token: WidgetStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
4428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetService, deps: [{ token: i1.HttpClient }, { token: WidgetStore }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
4134
4429
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetService, providedIn: 'root' });
4135
4430
  }
4136
4431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetService, decorators: [{
4137
4432
  type: Injectable,
4138
4433
  args: [{ providedIn: 'root' }]
4139
- }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: WidgetStore }, { type: AppConfigService }, { type: ListService }] });
4434
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: WidgetStore }, { type: AppConfigService }, { type: ListService }] });
4140
4435
 
4141
4436
  /**
4142
4437
  * Widget Admin Query
@@ -4258,11 +4553,11 @@ class WidgetHeaderComponent {
4258
4553
  }
4259
4554
  }
4260
4555
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetHeaderComponent, deps: [{ token: StyleBuilderService }], target: i0.ɵɵFactoryTarget.Component });
4261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetHeaderComponent, isStandalone: false, selector: "lib-widget-header", inputs: { widget: "widget" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"widget.header || widget.subHeader\" class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-12 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <i classs=\"headerIconClass\" [ngStyle]=\"headerIconStyle\"></i>\r\n <h3 [ngStyle]=\"headerStyle\" class=\"mb-0 application-title-wrapper font-bold\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span [ngStyle]=\"subHeaderStyle\" class=\"mr-3 font-semibold\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:18px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}@media screen and (min-width: 1200px) and (max-width: 1800px){.application-title-wrapper{font-size:14px}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4556
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetHeaderComponent, isStandalone: false, selector: "lib-widget-header", inputs: { widget: "widget" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"widget.header || widget.subHeader\" class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-12 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <i classs=\"headerIconClass\" [ngStyle]=\"headerIconStyle\"></i>\r\n <h3 [ngStyle]=\"headerStyle\" class=\"m-0 application-title-wrapper font-bold\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span [ngStyle]=\"subHeaderStyle\" class=\"mr-3 font-semibold\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:16px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}@media screen and (min-width: 1200px) and (max-width: 1800px){.application-title-wrapper{font-size:14px}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4262
4557
  }
4263
4558
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetHeaderComponent, decorators: [{
4264
4559
  type: Component,
4265
- args: [{ selector: 'lib-widget-header', standalone: false, template: "<div *ngIf=\"widget.header || widget.subHeader\" class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-12 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <i classs=\"headerIconClass\" [ngStyle]=\"headerIconStyle\"></i>\r\n <h3 [ngStyle]=\"headerStyle\" class=\"mb-0 application-title-wrapper font-bold\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span [ngStyle]=\"subHeaderStyle\" class=\"mr-3 font-semibold\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:18px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}@media screen and (min-width: 1200px) and (max-width: 1800px){.application-title-wrapper{font-size:14px}}\n"] }]
4560
+ args: [{ selector: 'lib-widget-header', standalone: false, template: "<div *ngIf=\"widget.header || widget.subHeader\" class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-12 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <i classs=\"headerIconClass\" [ngStyle]=\"headerIconStyle\"></i>\r\n <h3 [ngStyle]=\"headerStyle\" class=\"m-0 application-title-wrapper font-bold\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span [ngStyle]=\"subHeaderStyle\" class=\"mr-3 font-semibold\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:16px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}@media screen and (min-width: 1200px) and (max-width: 1800px){.application-title-wrapper{font-size:14px}}\n"] }]
4266
4561
  }], ctorParameters: () => [{ type: StyleBuilderService }], propDecorators: { widget: [{
4267
4562
  type: Input
4268
4563
  }] } });
@@ -4283,7 +4578,7 @@ class WidgetFooterComponent {
4283
4578
  }
4284
4579
  }
4285
4580
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetFooterComponent, deps: [{ token: WidgetStore }], target: i0.ɵɵFactoryTarget.Component });
4286
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetFooterComponent, isStandalone: false, selector: "lib-widget-footer", inputs: { widget: "widget" }, ngImport: i0, template: "<div *ngIf=\"widget.isFormEnabled\" class=\"col-12 p-0 mt-3 flex justify-content-center\">\r\n <a class=\"p-button p-button-link text-primary-500\">\r\n @if(widget.isFormEnabled){\r\n <span class=\"underline font-semibold\" [permission]=\"PERMISSION.WIDGETS_EVALUATE\"\r\n (click)=\"viewAllDetails($event)\">View\r\n All Details</span>\r\n <i class=\"pi pi-arrow-up-right arrow-up-icon ml-2\"></i>\r\n }\r\n </a>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HasPermissionDirective, selector: "[permission]", inputs: ["permission"] }] });
4581
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetFooterComponent, isStandalone: false, selector: "lib-widget-footer", inputs: { widget: "widget" }, ngImport: i0, template: "<div *ngIf=\"widget.isFormEnabled\" class=\"col-12 p-0 mt-3 flex justify-content-center\">\r\n <a class=\"p-button p-button-link text-primary-500\">\r\n @if(widget.isFormEnabled){\r\n <span class=\"underline font-semibold\" [permission]=\"PERMISSION.WIDGETS_EVALUATE\"\r\n (click)=\"viewAllDetails($event)\">View\r\n All Details</span>\r\n <i class=\"pi pi-arrow-up-right arrow-up-icon ml-2\"></i>\r\n }\r\n </a>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: HasPermissionDirective, selector: "[permission]", inputs: ["permission"] }] });
4287
4582
  }
4288
4583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetFooterComponent, decorators: [{
4289
4584
  type: Component,
@@ -4396,7 +4691,7 @@ class WidgetItemComponent {
4396
4691
  this.widgetStore.setOnWidgetItemClick(updatedItem);
4397
4692
  }
4398
4693
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetItemComponent, deps: [{ token: StyleBuilderService }, { token: WidgetStore }, { token: WidgetQuery }], target: i0.ɵɵFactoryTarget.Component });
4399
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetItemComponent, isStandalone: false, selector: "lib-widget-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-container px-3 overflow-hidden\">\r\n <div class=\"widget-content widget-wrapper\" [class.border-top]=\"hasSeparator\"\r\n [ngClass]=\"{\r\n 'layout-row': widget.layoutType === 'row',\r\n 'layout-tile m-0': widget.layoutType === 'tile'\r\n }\">\r\n <div class=\"flex align-items-center justify-content-between\" [ngClass]=\"widget.layoutType === 'row' ? 'w-7' : 'w-full'\">\r\n <div class=\"flex align-items-center\">\r\n <i *ngIf=\"keyIconClass\" class=\"mr-2\" [ngClass]=\"keyIconClass\" [ngStyle]=\"keyIconStyle\"></i>\r\n <p *ngIf=\"!isMenu\" [ngStyle]=\"fieldKeyStyle\" class=\"mb-0 mr-3 key-field-wrapper\">{{ widgetKey }}</p>\r\n <p *ngIf=\"isMenu\" [ngStyle]=\"fieldKeyStyle\" (click)=\"handleDynamicEvent(widget.recordId)\"\r\n class=\"mb-0 mr-3 key-field-wrapper\">{{ widgetKey }}</p>\r\n </div>\r\n <div class=\"check-icon-container flex justify-content-end\" *ngIf=\"isConfirmed\">\r\n <i class=\"pi pi-check check-icon-wrapper\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-full\"\r\n [ngClass]=\"widget.layoutType === 'row' ? 'flex align-items-center justify-content-end w-5': 'w-full'\">\r\n <i *ngIf=\"valueIconClass\" [ngClass]=\"valueIconClass\" [ngStyle]=\"mergedValueIconStyle\"></i>\r\n <i *ngIf=\"valueIconClassExpression\" [ngClass]=\"valueIconClassExpression\" [ngStyle]=\"mergedValueIconStyle\"></i>\r\n <p class=\"key-field-wrapper\">\r\n <ng-container *ngIf=\"widgetItem.isEvent; else notEvent\">\r\n <a\r\n class=\"cursor-pointer\"\r\n [ngStyle]=\"mergedValueStyle\"\r\n (click)=\"handleDynamicEvent(widget.recordId)\"\r\n >\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #notEvent>\r\n <ng-container *ngIf=\"widgetItem.isLink; else plainText\">\r\n <a\r\n class=\"cursor-pointer\"\r\n [ngStyle]=\"mergedValueStyle\"\r\n (click)=\"handleWidgetItemClick(widgetItem)\"\r\n >\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #plainText>\r\n @if(widgetItem.isHtml) {\r\n <div [innerHTML]=\"widgetItem.value !== 'null' ? widgetItem.value : ''\" [ngStyle]=\"mergedValueStyle\"></div>\r\n }\r\n @else {\r\n <span [ngStyle]=\"fieldValueStyle\">\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </span>\r\n }\r\n\r\n </ng-template>\r\n </p>\r\n </div>\r\n </div>\r\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;white-space:normal;box-sizing:border-box;color:#4b5563}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}.border-top{border-top:1px solid rgba(76,98,146,.1)}.check-icon-wrapper{border-radius:50%;background:#22c55e;color:#fff;padding:4px}.key-title-wrapper{width:100%}.widget-wrapper{padding:6px 0}.widget-content.layout-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.widget-content.layout-tile{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;row-gap:.5rem;align-items:start;margin:0}@media screen and (min-width: 1200px) and (max-width: 1800px){.key-title-wrapper{width:66.6667%!important}.check-icon-container{width:33.3333%!important;margin-right:4px}}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4694
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetItemComponent, isStandalone: false, selector: "lib-widget-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-container px-3 overflow-hidden\">\r\n <div class=\"widget-content widget-wrapper\" [class.border-top]=\"hasSeparator\"\r\n [ngClass]=\"{\r\n 'layout-row': widget.layoutType === 'row',\r\n 'layout-tile m-0': widget.layoutType === 'tile'\r\n }\">\r\n <div class=\"flex align-items-center justify-content-between\" [ngClass]=\"widget.layoutType === 'row' ? 'w-7' : 'w-full'\">\r\n <div class=\"flex align-items-center\">\r\n <i *ngIf=\"keyIconClass\" class=\"mr-2\" [ngClass]=\"keyIconClass\" [ngStyle]=\"keyIconStyle\"></i>\r\n <p *ngIf=\"!isMenu\" [ngStyle]=\"fieldKeyStyle\" class=\"mb-0 mr-3 key-field-wrapper\">{{ widgetKey }}</p>\r\n <p *ngIf=\"isMenu\" [ngStyle]=\"fieldKeyStyle\" (click)=\"handleDynamicEvent(widget.recordId)\"\r\n class=\"mb-0 mr-3 key-field-wrapper\">{{ widgetKey }}</p>\r\n </div>\r\n <div class=\"check-icon-container flex justify-content-end\" *ngIf=\"isConfirmed\">\r\n <i class=\"pi pi-check check-icon-wrapper\"></i>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-full\"\r\n [ngClass]=\"widget.layoutType === 'row' ? 'flex align-items-center justify-content-end w-5': 'w-full'\">\r\n <i *ngIf=\"valueIconClass\" [ngClass]=\"valueIconClass\" [ngStyle]=\"mergedValueIconStyle\"></i>\r\n <i *ngIf=\"valueIconClassExpression\" [ngClass]=\"valueIconClassExpression\" [ngStyle]=\"mergedValueIconStyle\"></i>\r\n <p class=\"key-field-wrapper\">\r\n <ng-container *ngIf=\"widgetItem.isEvent; else notEvent\">\r\n <a\r\n class=\"cursor-pointer\"\r\n [ngStyle]=\"mergedValueStyle\"\r\n (click)=\"handleDynamicEvent(widget.recordId)\"\r\n >\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #notEvent>\r\n <ng-container *ngIf=\"widgetItem.isLink; else plainText\">\r\n <a\r\n class=\"cursor-pointer\"\r\n [ngStyle]=\"mergedValueStyle\"\r\n (click)=\"handleWidgetItemClick(widgetItem)\"\r\n >\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #plainText>\r\n @if(widgetItem.isHtml) {\r\n <div [innerHTML]=\"widgetItem.value !== 'null' ? widgetItem.value : ''\" [ngStyle]=\"mergedValueStyle\"></div>\r\n }\r\n @else {\r\n <span [ngStyle]=\"fieldValueStyle\">\r\n {{ widgetItem.value !== 'null' ? widgetItem.value : '' }}\r\n </span>\r\n }\r\n\r\n </ng-template>\r\n </p>\r\n </div>\r\n </div>\r\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;white-space:normal;box-sizing:border-box;color:#4b5563}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}.border-top{border-top:1px solid rgba(76,98,146,.1)}.check-icon-wrapper{border-radius:50%;background:#22c55e;color:#fff;padding:4px}.key-title-wrapper{width:100%}.widget-wrapper{padding:6px 0}.widget-content.layout-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.widget-content.layout-tile{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;row-gap:.5rem;align-items:start;margin:0}@media screen and (min-width: 1200px) and (max-width: 1800px){.key-title-wrapper{width:66.6667%!important}.check-icon-container{width:33.3333%!important;margin-right:4px}}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4400
4695
  }
4401
4696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetItemComponent, decorators: [{
4402
4697
  type: Component,
@@ -4434,7 +4729,7 @@ class WidgetBodyComponent {
4434
4729
  }
4435
4730
  }
4436
4731
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetBodyComponent, deps: [{ token: StyleBuilderService }], target: i0.ɵɵFactoryTarget.Component });
4437
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetBodyComponent, isStandalone: false, selector: "lib-widget-body", inputs: { widget: "widget" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-body-container grid m-0\">\r\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\" [ngClass]=\"[widget.style.width, widget.style.width === 'col-12' ? 'p-0' : '']\">\r\n @if(!dataItem.isHidden){\r\n <div class=\"h-full\" [ngStyle]=\"widgetItemStyle[i]\" \r\n [ngClass]=\"{\r\n 'widget-confirm-wrapper': isConfirmed[i]\r\n }\">\r\n <div>\r\n <lib-widget-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-item>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-confirm-wrapper{background-color:#e8fbee!important;border:1px solid #22C55E!important}.vulnerability-title-wrapper{background:#fb392d36}\n"], dependencies: [{ 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WidgetItemComponent, selector: "lib-widget-item", inputs: ["widgetItem", "widget", "application"] }] });
4732
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetBodyComponent, isStandalone: false, selector: "lib-widget-body", inputs: { widget: "widget" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-body-container grid m-0\">\r\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\" [ngClass]=\"[widget.style.width, widget.style.width === 'col-12' ? 'p-0' : '']\">\r\n @if(!dataItem.isHidden){\r\n <div class=\"h-full\" [ngStyle]=\"widgetItemStyle[i]\" \r\n [ngClass]=\"{\r\n 'widget-confirm-wrapper': isConfirmed[i]\r\n }\">\r\n <div>\r\n <lib-widget-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-item>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-confirm-wrapper{background-color:#e8fbee!important;border:1px solid #22C55E!important}.vulnerability-title-wrapper{background:#fb392d36}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WidgetItemComponent, selector: "lib-widget-item", inputs: ["widgetItem", "widget", "application"] }] });
4438
4733
  }
4439
4734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetBodyComponent, decorators: [{
4440
4735
  type: Component,
@@ -4464,11 +4759,11 @@ class WidgetMainComponent {
4464
4759
  }
4465
4760
  }
4466
4761
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMainComponent, deps: [{ token: StyleBuilderService }], target: i0.ɵɵFactoryTarget.Component });
4467
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMainComponent, isStandalone: false, selector: "lib-widget-main", inputs: { widget: "widget", index: "index" }, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"widgetCombinedStyle\" class=\"widget-container-wrapper\" [ngClass]=\"index !== 0 ? 'mt-4' : ''\">\r\n <div class=\"widget-container-wrapper\">\r\n <lib-widget-header [widget]=\"widget\"></lib-widget-header>\r\n <div [ngClass]=\"[(widget.header || widget.subHeader) ? 'widget-content-wrapper mt-3' : '', widget.style.width === 'col-6' ? 'px-2' : '']\" class=\"py-3\">\r\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WidgetHeaderComponent, selector: "lib-widget-header", inputs: ["widget"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetBodyComponent, selector: "lib-widget-body", inputs: ["widget"] }] });
4762
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMainComponent, isStandalone: false, selector: "lib-widget-main", inputs: { widget: "widget", index: "index" }, usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"widgetCombinedStyle\" class=\"widget-container-wrapper\" [ngClass]=\"index !== 0 ? 'mt-4' : ''\">\r\n <div class=\"widget-container-wrapper\">\r\n <lib-widget-header [widget]=\"widget\"></lib-widget-header>\r\n <div [ngClass]=\"[(widget.header || widget.subHeader) ? 'widget-content-wrapper' : '', widget.style.width === 'col-6' ? 'px-2' : '']\" class=\"py-3\">\r\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: WidgetHeaderComponent, selector: "lib-widget-header", inputs: ["widget"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetBodyComponent, selector: "lib-widget-body", inputs: ["widget"] }] });
4468
4763
  }
4469
4764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMainComponent, decorators: [{
4470
4765
  type: Component,
4471
- args: [{ selector: 'lib-widget-main', standalone: false, template: "<div [ngStyle]=\"widgetCombinedStyle\" class=\"widget-container-wrapper\" [ngClass]=\"index !== 0 ? 'mt-4' : ''\">\r\n <div class=\"widget-container-wrapper\">\r\n <lib-widget-header [widget]=\"widget\"></lib-widget-header>\r\n <div [ngClass]=\"[(widget.header || widget.subHeader) ? 'widget-content-wrapper mt-3' : '', widget.style.width === 'col-6' ? 'px-2' : '']\" class=\"py-3\">\r\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"] }]
4766
+ args: [{ selector: 'lib-widget-main', standalone: false, template: "<div [ngStyle]=\"widgetCombinedStyle\" class=\"widget-container-wrapper\" [ngClass]=\"index !== 0 ? 'mt-4' : ''\">\r\n <div class=\"widget-container-wrapper\">\r\n <lib-widget-header [widget]=\"widget\"></lib-widget-header>\r\n <div [ngClass]=\"[(widget.header || widget.subHeader) ? 'widget-content-wrapper' : '', widget.style.width === 'col-6' ? 'px-2' : '']\" class=\"py-3\">\r\n <lib-widget-body [widget]=\"widget\"></lib-widget-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"] }]
4472
4767
  }], ctorParameters: () => [{ type: StyleBuilderService }], propDecorators: { widget: [{
4473
4768
  type: Input
4474
4769
  }], index: [{
@@ -4520,7 +4815,7 @@ class CustomWidgetComponent {
4520
4815
  return this.widgetUtilService.getEventIndex(event, this.widgetData);
4521
4816
  }
4522
4817
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CustomWidgetComponent, deps: [{ token: CustomWidgetService }], target: i0.ɵɵFactoryTarget.Component });
4523
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: CustomWidgetComponent, isStandalone: false, selector: "lib-custom-widget", inputs: { widgetData: "widgetData" }, ngImport: i0, template: "@if(widgetData){\r\n<div class=\"custom-widget\">\r\n\r\n <div class=\" ml-3\" style=\"display: flex; flex-direction: row; align-items: center;\">\r\n <h3 class=\"mb-0 font-bold mr-3 widgetData-title-wrapper\">\r\n {{ (widgetData.title) }}\r\n </h3>\r\n \r\n <span class=\"px-2 py-1 rounded text-white font-semibold badge\" [ngClass]=\"{\r\n 'bg-yellow-500': widgetData.badge === 'Pending',\r\n 'bg-green-500': widgetData.badge === 'Verified'\r\n }\">\r\n <i class=\"{{ widgetData.badgeIcon }}\"></i> {{ widgetData.badge }}\r\n </span>\r\n \r\n </div>\r\n <div class=\"widget-body-wrapper\">\r\n\r\n <p-timeline class=\"widget-timeline-wrapper\" [value]=\"widgetData?.statusList\">\r\n <ng-template pTemplate=\"marker\" let-event let-i=\"index\">\r\n <div class=\"p-timeline-event-marker\" [ngStyle]=\"{\r\n 'background-color': event.status === 'active' ? '#0F8BFD' :\r\n event.status === 'pending' ? '#676B89' :\r\n event.status === 'removed' ? '#FF0000' :\r\n '#0F8BFD',\r\n 'border-color': event.status === 'active' ? '#0F8BFD' :\r\n event.status === 'pending' ? '#676B89' :\r\n event.status === 'removed' ? '#FF0000' :\r\n '#0F8BFD',\r\n 'outline': event.status === 'active' ? '4px solid #0f8bfd33' :\r\n event.status === 'pending' ? '4px solid #676b8933' :\r\n event.status === 'removed' ? '4px solid #FF0000' :\r\n '4px solid #0F8BFD',\r\n }\"></div>\r\n\r\n <div class=\"p-timeline-event-connector-border\" *ngIf=\"!isLastIndex(event)\" [ngStyle]=\"{\r\n border:\r\n getNextEventStatus(event) === 'active'\r\n ? '2px solid #0F8BFD'\r\n : getNextEventStatus(event) === 'pending'\r\n ? '2px solid #44486d33'\r\n : getNextEventStatus(event) === 'removed'\r\n ? '2px solid #FF0000'\r\n : '2px solid #0F8BFD',\r\n height: 'calc(100% - 18px)'\r\n }\"></div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"content\" let-event>\r\n <div class=\"p-timeline-event-content mb-2\"\r\n [ngClass]=\"{ 'mb-4': widgetData.title === 'Valuation' && event.title }\">\r\n\r\n <p *ngIf=\"!(widgetData.title === 'Valuation') && event.title\" class=\"event-title mb-2\"\r\n [innerHTML]=\"event.title\">\r\n </p>\r\n\r\n <p *ngIf=\"widgetData.title === 'Valuation' && event.title\" class=\"event-title mb-2\">\r\n <span style=\"color: #0f8bfd; text-decoration: underline; font-weight: bold\">{{ event.title?.split(' ')[0]\r\n }}</span>\r\n {{ event.title?.substring(event.title.indexOf(' ') + 1) }}\r\n </p>\r\n \r\n <span class=\"font-medium event-description\" [ngClass]=\"{ 'font-bold': event.textColor }\"\r\n [ngStyle]=\"{ color: event.textColor }\" [innerHTML]=\"event.description\"></span>\r\n </div>\r\n </ng-template>\r\n </p-timeline>\r\n </div>\r\n</div>\r\n\r\n}", styles: [".custom-widget{margin-top:21px}::ng-deep .widget-timeline-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#f9fafb}::ng-deep .widget-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .p-timeline-event{min-height:50px!important}::ng-deep .p-timeline-event:last-child{min-height:30px!important}.widgetData-title-wrapper{font-size:18px;font-weight:400}.badge{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:5px;font-size:14px}.widget-body-wrapper{padding:14px;margin-top:14px;margin-bottom:14px}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$3.Timeline, selector: "p-timeline", inputs: ["value", "style", "styleClass", "align", "layout"] }] });
4818
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: CustomWidgetComponent, isStandalone: false, selector: "lib-custom-widget", inputs: { widgetData: "widgetData" }, ngImport: i0, template: "@if(widgetData){\r\n<div class=\"custom-widget\">\r\n\r\n <div class=\" ml-3\" style=\"display: flex; flex-direction: row; align-items: center;\">\r\n <h3 class=\"mb-0 font-bold mr-3 widgetData-title-wrapper\">\r\n {{ (widgetData.title) }}\r\n </h3>\r\n \r\n <span class=\"px-2 py-1 rounded text-white font-semibold badge\" [ngClass]=\"{\r\n 'bg-yellow-500': widgetData.badge === 'Pending',\r\n 'bg-green-500': widgetData.badge === 'Verified'\r\n }\">\r\n <i class=\"{{ widgetData.badgeIcon }}\"></i> {{ widgetData.badge }}\r\n </span>\r\n \r\n </div>\r\n <div class=\"widget-body-wrapper\">\r\n\r\n <p-timeline class=\"widget-timeline-wrapper\" [value]=\"widgetData?.statusList\">\r\n <ng-template pTemplate=\"marker\" let-event let-i=\"index\">\r\n <div class=\"p-timeline-event-marker\" [ngStyle]=\"{\r\n 'background-color': event.status === 'active' ? '#0F8BFD' :\r\n event.status === 'pending' ? '#676B89' :\r\n event.status === 'removed' ? '#FF0000' :\r\n '#0F8BFD',\r\n 'border-color': event.status === 'active' ? '#0F8BFD' :\r\n event.status === 'pending' ? '#676B89' :\r\n event.status === 'removed' ? '#FF0000' :\r\n '#0F8BFD',\r\n 'outline': event.status === 'active' ? '4px solid #0f8bfd33' :\r\n event.status === 'pending' ? '4px solid #676b8933' :\r\n event.status === 'removed' ? '4px solid #FF0000' :\r\n '4px solid #0F8BFD',\r\n }\"></div>\r\n\r\n <div class=\"p-timeline-event-connector-border\" *ngIf=\"!isLastIndex(event)\" [ngStyle]=\"{\r\n border:\r\n getNextEventStatus(event) === 'active'\r\n ? '2px solid #0F8BFD'\r\n : getNextEventStatus(event) === 'pending'\r\n ? '2px solid #44486d33'\r\n : getNextEventStatus(event) === 'removed'\r\n ? '2px solid #FF0000'\r\n : '2px solid #0F8BFD',\r\n height: 'calc(100% - 18px)'\r\n }\"></div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"content\" let-event>\r\n <div class=\"p-timeline-event-content mb-2\"\r\n [ngClass]=\"{ 'mb-4': widgetData.title === 'Valuation' && event.title }\">\r\n\r\n <p *ngIf=\"!(widgetData.title === 'Valuation') && event.title\" class=\"event-title mb-2\"\r\n [innerHTML]=\"event.title\">\r\n </p>\r\n\r\n <p *ngIf=\"widgetData.title === 'Valuation' && event.title\" class=\"event-title mb-2\">\r\n <span style=\"color: #0f8bfd; text-decoration: underline; font-weight: bold\">{{ event.title?.split(' ')[0]\r\n }}</span>\r\n {{ event.title?.substring(event.title.indexOf(' ') + 1) }}\r\n </p>\r\n \r\n <span class=\"font-medium event-description\" [ngClass]=\"{ 'font-bold': event.textColor }\"\r\n [ngStyle]=\"{ color: event.textColor }\" [innerHTML]=\"event.description\"></span>\r\n </div>\r\n </ng-template>\r\n </p-timeline>\r\n </div>\r\n</div>\r\n\r\n}", styles: [".custom-widget{margin-top:21px}::ng-deep .widget-timeline-wrapper{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#f9fafb}::ng-deep .widget-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .p-timeline-event{min-height:50px!important}::ng-deep .p-timeline-event:last-child{min-height:30px!important}.widgetData-title-wrapper{font-size:18px;font-weight:400}.badge{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:5px;font-size:14px}.widget-body-wrapper{padding:14px;margin-top:14px;margin-bottom:14px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4$3.Timeline, selector: "p-timeline", inputs: ["value", "style", "styleClass", "align", "layout"] }] });
4524
4819
  }
4525
4820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: CustomWidgetComponent, decorators: [{
4526
4821
  type: Component,
@@ -4633,7 +4928,7 @@ class WidgetMenuComponent {
4633
4928
  this.destroy$.complete();
4634
4929
  }
4635
4930
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuComponent, deps: [{ token: WidgetService }, { token: i3$4.ActivatedRoute }, { token: WidgetQuery }, { token: WidgetStore }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4636
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuComponent, isStandalone: false, selector: "lib-widget-menu", inputs: { isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData" }, outputs: { onViewAllDetails: "onViewAllDetails", onWidgetEventClick: "onWidgetEventClick", onWidgetItemClick: "onWidgetItemClick" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper custom-scroll pt-2\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n\r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <lib-widget-main [widget]=\"widget\" [index]=\"i\"></lib-widget-main>\r\n </ng-container>\r\n <ng-container *ngIf=\"offerWidgetData\">\r\n <lib-custom-widget [widgetData]=\"offerWidgetData\"></lib-custom-widget>\r\n </ng-container>\r\n <ng-container *ngIf=\"valuationWidgetData\">\r\n <lib-custom-widget [widgetData]=\"valuationWidgetData\"></lib-custom-widget>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n</p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetMainComponent, selector: "lib-widget-main", inputs: ["widget", "index"] }, { kind: "component", type: CustomWidgetComponent, selector: "lib-custom-widget", inputs: ["widgetData"] }] });
4931
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuComponent, isStandalone: false, selector: "lib-widget-menu", inputs: { isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData" }, outputs: { onViewAllDetails: "onViewAllDetails", onWidgetEventClick: "onWidgetEventClick", onWidgetItemClick: "onWidgetItemClick" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper custom-scroll pt-2\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n\r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <lib-widget-main [widget]=\"widget\" [index]=\"i\"></lib-widget-main>\r\n </ng-container>\r\n <ng-container *ngIf=\"offerWidgetData\">\r\n <lib-custom-widget [widgetData]=\"offerWidgetData\"></lib-custom-widget>\r\n </ng-container>\r\n <ng-container *ngIf=\"valuationWidgetData\">\r\n <lib-custom-widget [widgetData]=\"valuationWidgetData\"></lib-custom-widget>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n</p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetMainComponent, selector: "lib-widget-main", inputs: ["widget", "index"] }, { kind: "component", type: CustomWidgetComponent, selector: "lib-custom-widget", inputs: ["widgetData"] }] });
4637
4932
  }
4638
4933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuComponent, decorators: [{
4639
4934
  type: Component,
@@ -4690,7 +4985,7 @@ class WidgetRowTileComponent {
4690
4985
  this.destroy$.complete();
4691
4986
  }
4692
4987
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetRowTileComponent, deps: [{ token: WidgetService }], target: i0.ɵɵFactoryTarget.Component });
4693
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetRowTileComponent, isStandalone: false, selector: "lib-widget-row-tile", inputs: { recordId: "recordId", widgetName: "widgetName", onWidgetUpdate: "onWidgetUpdate" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n \r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <lib-widget-main [widget]=\"widget\" [index]=\"i\"></lib-widget-main>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetMainComponent, selector: "lib-widget-main", inputs: ["widget", "index"] }] });
4988
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetRowTileComponent, isStandalone: false, selector: "lib-widget-row-tile", inputs: { recordId: "recordId", widgetName: "widgetName", onWidgetUpdate: "onWidgetUpdate" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n \r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <lib-widget-main [widget]=\"widget\" [index]=\"i\"></lib-widget-main>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}::ng-deep .widget-block-wrapper{height:100%}::ng-deep .widget-block-wrapper .p-card{height:100%;background-color:var(--surface-0)!important;border-radius:10px;box-shadow:none}::ng-deep .widget-block-wrapper .p-card-body{padding:0;height:100%}::ng-deep .widget-block-wrapper .p-card-content{padding:0;height:100%}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}.widget-section-wrapper{height:100%}.custom-scroll{overflow-y:hidden;scrollbar-gutter:stable}.custom-scroll:hover{overflow-y:auto}.widget-menu-container{border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n", ""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetMainComponent, selector: "lib-widget-main", inputs: ["widget", "index"] }] });
4694
4989
  }
4695
4990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetRowTileComponent, decorators: [{
4696
4991
  type: Component,
@@ -4765,7 +5060,7 @@ class WidgetMenuHeaderComponent {
4765
5060
  widget;
4766
5061
  progressChartData;
4767
5062
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4768
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetMenuHeaderComponent, isStandalone: false, selector: "lib-widget-menu-header", inputs: { widget: "widget", progressChartData: "progressChartData" }, ngImport: i0, template: "<div class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-10 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <h3 class=\"mb-0 application-title-wrapper font-bold mr-3\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span class=\"mr-1\">Risk Rating:</span>\r\n <span class=\"mr-3 font-semibold\" [ngClass]=\"{\r\n 'text-red-500': widget.subHeader === 'High',\r\n 'text-green-500': widget.subHeader === 'Low',\r\n 'text-yellow-500': widget.subHeader === 'Medium'\r\n }\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n @if(widget.predefinedName == \"ApplicationWidget\") {\r\n <div class=\"chart-container\">\r\n <p-chart type=\"pie\" [data]=\"progressChartData\" height=\"50px\" width=\"50px\"></p-chart>\r\n <p class=\"percentage-label text-green-500 text-lg\">{{ progressChartData.datasets[0].data[0] }}%</p>\r\n </div>\r\n }\r\n \r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:18px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}\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: i2$3.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] });
5063
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetMenuHeaderComponent, isStandalone: false, selector: "lib-widget-menu-header", inputs: { widget: "widget", progressChartData: "progressChartData" }, ngImport: i0, template: "<div class=\"grid m-0 align-items-center justify-content-between px-3\">\r\n <div class=\"col-10 p-0\">\r\n <div class=\"flex align-items-center\">\r\n <h3 class=\"mb-0 application-title-wrapper font-bold mr-3\">\r\n {{ (widget.header) }}\r\n </h3>\r\n </div>\r\n <div *ngIf=\"widget?.subHeader\" class=\"flex align-items-center mt-2\">\r\n <span class=\"mr-1\">Risk Rating:</span>\r\n <span class=\"mr-3 font-semibold\" [ngClass]=\"{\r\n 'text-red-500': widget.subHeader === 'High',\r\n 'text-green-500': widget.subHeader === 'Low',\r\n 'text-yellow-500': widget.subHeader === 'Medium'\r\n }\">{{ widget.subHeader }}</span>\r\n </div>\r\n </div>\r\n @if(widget.predefinedName == \"ApplicationWidget\") {\r\n <div class=\"chart-container\">\r\n <p-chart type=\"pie\" [data]=\"progressChartData\" height=\"50px\" width=\"50px\"></p-chart>\r\n <p class=\"percentage-label text-green-500 text-lg\">{{ progressChartData.datasets[0].data[0] }}%</p>\r\n </div>\r\n }\r\n \r\n</div>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}.application-title-wrapper{font-size:18px;font-weight:700}.chart-container{display:flex;flex-direction:column;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }] });
4769
5064
  }
4770
5065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuHeaderComponent, decorators: [{
4771
5066
  type: Component,
@@ -4833,7 +5128,7 @@ class WidgetMenuItemComponent {
4833
5128
  this.widgetStore.setOnWidgetItemClick(updatedItem);
4834
5129
  }
4835
5130
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuItemComponent, deps: [{ token: StyleBuilderService }, { token: WidgetStore }], target: i0.ɵɵFactoryTarget.Component });
4836
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuItemComponent, isStandalone: false, selector: "lib-widget-menu-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-container\">\r\n <div class=\"flex justify-content-between\"\r\n [ngClass]=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget') ? 'align-items-center' : ''\">\r\n <p class=\"mb-0 text-color-secondary mr-3 key-field-wrapper w-50\">{{ widgetItem?.key }}</p>\r\n \r\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-50 flex align-items-center justify-content-end\">\r\n <i *ngIf=\"false\" class=\"pi pi-exclamation-triangle text-red-500 mr-1\"\r\n style=\"font-size: 1.3rem\"></i>\r\n <p *ngIf=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget')\" class=\"key-field-wrapper\"\r\n [ngStyle]=\"getStyle(widgetItem.style)\">\r\n <ng-container *ngIf=\"widgetItem?.isLink; else plainText\">\r\n <a class=\"cursor-pointer\" (click)=\"handleWidgetItemClick(widgetItem)\">\r\n {{ (widgetItem.value && widgetItem.value !== 'null') ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n <ng-template #plainText>\r\n <a (click)=\"handleWidgetItemClick(widgetItem)\"> {{ (widgetItem?.value && widgetItem?.value !== 'null') ? widgetItem?.value : '' }} </a>\r\n </ng-template>\r\n </p>\r\n <i *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\r\n class=\"pi pi-map-marker map-icon map-icon-wrapper\"></i>\r\n </div>\r\n </div>\r\n \r\n \r\n <div *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\r\n class=\"address-title-wrapper cursor-pointer\" [ngStyle]=\"getStyle(widgetItem.style)\" (click)=\"onHandleSidebar(widget.recordId)\">\r\n {{ widgetItem?.value }}\r\n </div>\r\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}\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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuItemComponent, isStandalone: false, selector: "lib-widget-menu-item", inputs: { widgetItem: "widgetItem", widget: "widget", application: "application" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-container\">\r\n <div class=\"flex justify-content-between\"\r\n [ngClass]=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget') ? 'align-items-center' : ''\">\r\n <p class=\"mb-0 text-color-secondary mr-3 key-field-wrapper w-50\">{{ widgetItem?.key }}</p>\r\n \r\n <div class=\"mb-0 text-color font-semibold text-value-wrapper w-50 flex align-items-center justify-content-end\">\r\n <i *ngIf=\"false\" class=\"pi pi-exclamation-triangle text-red-500 mr-1\"\r\n style=\"font-size: 1.3rem\"></i>\r\n <p *ngIf=\"!(widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget')\" class=\"key-field-wrapper\"\r\n [ngStyle]=\"getStyle(widgetItem.style)\">\r\n <ng-container *ngIf=\"widgetItem?.isLink; else plainText\">\r\n <a class=\"cursor-pointer\" (click)=\"handleWidgetItemClick(widgetItem)\">\r\n {{ (widgetItem.value && widgetItem.value !== 'null') ? widgetItem.value : '' }}\r\n </a>\r\n </ng-container>\r\n <ng-template #plainText>\r\n <a (click)=\"handleWidgetItemClick(widgetItem)\"> {{ (widgetItem?.value && widgetItem?.value !== 'null') ? widgetItem?.value : '' }} </a>\r\n </ng-template>\r\n </p>\r\n <i *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\r\n class=\"pi pi-map-marker map-icon map-icon-wrapper\"></i>\r\n </div>\r\n </div>\r\n \r\n \r\n <div *ngIf=\"widgetItem.key === 'Address' && widget.predefinedName === 'PropertyWidget'\"\r\n class=\"address-title-wrapper cursor-pointer\" [ngStyle]=\"getStyle(widgetItem.style)\" (click)=\"onHandleSidebar(widget.recordId)\">\r\n {{ widgetItem?.value }}\r\n </div>\r\n</div>", styles: [".text-value-wrapper{-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%}.key-field-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-50{width:50%!important}.map-icon-wrapper{font-size:16px;padding:13px;border-radius:30px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.address-title-wrapper{width:80%;word-break:break-word;margin-top:-12px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
4837
5132
  }
4838
5133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuItemComponent, decorators: [{
4839
5134
  type: Component,
@@ -4849,7 +5144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
4849
5144
  class WidgetMenuBodyComponent {
4850
5145
  widget;
4851
5146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4852
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetMenuBodyComponent, isStandalone: false, selector: "lib-widget-menu-body", inputs: { widget: "widget" }, ngImport: i0, template: "<div class=\"widget-body-container\">\r\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\">\r\n @if(!dataItem.isHidden){\r\n <div [ngClass]=\"i !== ((widget.dataItems || []).length - 1) ? 'widget-item-wrapper' : ''\">\r\n <div [ngClass]=\"\r\n dataItem?.key === 'Vulnerability' && widget.predefinedName === 'ApplicantWidget'\r\n ? 'vulnerability-title-wrapper'\r\n : ( i !== ((widget.dataItems || []).length - 1) ? 'widget-wrapper' : 'widget-last-wrapper' )\r\n \" class=\"px-3\">\r\n <lib-widget-menu-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-menu-item>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-wrapper{padding:10px 0}.vulnerability-title-wrapper{background:#fb392d36}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: WidgetMenuItemComponent, selector: "lib-widget-menu-item", inputs: ["widgetItem", "widget", "application"] }] });
5147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: WidgetMenuBodyComponent, isStandalone: false, selector: "lib-widget-menu-body", inputs: { widget: "widget" }, ngImport: i0, template: "<div class=\"widget-body-container\">\r\n <div *ngFor=\"let dataItem of widget?.dataItems || []; let i = index\">\r\n @if(!dataItem.isHidden){\r\n <div [ngClass]=\"i !== ((widget.dataItems || []).length - 1) ? 'widget-item-wrapper' : ''\">\r\n <div [ngClass]=\"\r\n dataItem?.key === 'Vulnerability' && widget.predefinedName === 'ApplicantWidget'\r\n ? 'vulnerability-title-wrapper'\r\n : ( i !== ((widget.dataItems || []).length - 1) ? 'widget-wrapper' : 'widget-last-wrapper' )\r\n \" class=\"px-3\">\r\n <lib-widget-menu-item [widgetItem]=\"dataItem\" [widget]=\"widget\"></lib-widget-menu-item>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".widget-item-wrapper{border-bottom:1px solid rgba(68,72,109,.1)}.widget-wrapper{padding:10px 0}.vulnerability-title-wrapper{background:#fb392d36}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: WidgetMenuItemComponent, selector: "lib-widget-menu-item", inputs: ["widgetItem", "widget", "application"] }] });
4853
5148
  }
4854
5149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuBodyComponent, decorators: [{
4855
5150
  type: Component,
@@ -4989,7 +5284,7 @@ class WidgetMenuContainerComponent {
4989
5284
  this.destroy$.complete();
4990
5285
  }
4991
5286
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuContainerComponent, deps: [{ token: WidgetService }, { token: i3$4.ActivatedRoute }, { token: WidgetQuery }, { token: WidgetStore }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
4992
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuContainerComponent, isStandalone: false, selector: "lib-widget-menu-container", inputs: { widgetName: "widgetName", recordId: "recordId", isRouteChanged: "isRouteChanged", isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData", progressChartData: "progressChartData" }, outputs: { onViewAllDetails: "onViewAllDetails", onViewAllProperties: "onViewAllProperties", onWidgetItemClick: "onWidgetItemClick", getWidgetData: "getWidgetData", onDirectDebitClick: "onDirectDebitClick", onWidgetLoaded: "onWidgetLoaded" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper pt-2\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n \r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <div class=\"widget-container-wrapper pl-1\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\">\r\n <lib-widget-menu-header [widget]=\"widget\" [progressChartData]=\"progressChartData\"></lib-widget-menu-header>\r\n <div class=\"widget-content-wrapper mt-3 py-3\">\r\n <lib-widget-menu-body [widget]=\"widget\"></lib-widget-menu-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"], dependencies: [{ 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: "component", type: i6$1.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetMenuHeaderComponent, selector: "lib-widget-menu-header", inputs: ["widget", "progressChartData"] }, { kind: "component", type: WidgetMenuBodyComponent, selector: "lib-widget-menu-body", inputs: ["widget"] }] });
5287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: WidgetMenuContainerComponent, isStandalone: false, selector: "lib-widget-menu-container", inputs: { widgetName: "widgetName", recordId: "recordId", isRouteChanged: "isRouteChanged", isSidebarVisible: "isSidebarVisible", offerWidgetData: "offerWidgetData", valuationWidgetData: "valuationWidgetData", progressChartData: "progressChartData" }, outputs: { onViewAllDetails: "onViewAllDetails", onViewAllProperties: "onViewAllProperties", onWidgetItemClick: "onWidgetItemClick", getWidgetData: "getWidgetData", onDirectDebitClick: "onDirectDebitClick", onWidgetLoaded: "onWidgetLoaded" }, usesOnChanges: true, ngImport: i0, template: "<p-card class=\"widget-block-wrapper block\">\r\n <div class=\"widget-section-wrapper pt-2\">\r\n <!-- Loading state -->\r\n <ng-container *ngIf=\"isLoading; else widgetContent\">\r\n <p class=\"text-color ml-3 font-semibold\">Widget configuration loading...</p>\r\n </ng-container>\r\n \r\n <!-- Content after API call -->\r\n <ng-template #widgetContent>\r\n <ng-container *ngIf=\"(widgets && widgets.length > 0) || (valuationWidgetData || offerWidgetData); else noWidgets\">\r\n <ng-container *ngFor=\"let widget of widgets; let i = index\">\r\n <div class=\"widget-container-wrapper pl-1\" [ngClass]=\"i !== 0 ? 'mt-4' : ''\">\r\n <lib-widget-menu-header [widget]=\"widget\" [progressChartData]=\"progressChartData\"></lib-widget-menu-header>\r\n <div class=\"widget-content-wrapper mt-3 py-3\">\r\n <lib-widget-menu-body [widget]=\"widget\"></lib-widget-menu-body>\r\n <lib-widget-footer [widget]=\"widget\"></lib-widget-footer>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <!-- No widget configured state -->\r\n <ng-template #noWidgets>\r\n <p class=\"text-color ml-3 font-semibold\">No Widgets Configured</p>\r\n </ng-template>\r\n </ng-template>\r\n </div>\r\n </p-card>", styles: ["::ng-deep .badge-wrapper .p-button{padding:4px 8px}::ng-deep .refresh-btn-wrapper .p-button{padding:0}::ng-deep .valuation-timeline-wrapper .p-timeline-event-opposite{display:none}::ng-deep .rating-badge-wrapper .p-button{display:flex;align-items:center}.application-title-wrapper{font-size:18px;font-weight:400}.application-section-wrapper{background-color:#4c629208;border:1px solid rgba(76,98,146,.1);border-radius:10px}:host ::-webkit-scrollbar{width:6px}:host ::-webkit-scrollbar-track{background:transparent}:host ::-webkit-scrollbar-thumb{background:#d1d5db94;border-radius:20px}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.Card, selector: "p-card", inputs: ["header", "subheader", "style", "styleClass"] }, { kind: "component", type: WidgetFooterComponent, selector: "lib-widget-footer", inputs: ["widget"] }, { kind: "component", type: WidgetMenuHeaderComponent, selector: "lib-widget-menu-header", inputs: ["widget", "progressChartData"] }, { kind: "component", type: WidgetMenuBodyComponent, selector: "lib-widget-menu-body", inputs: ["widget"] }] });
4993
5288
  }
4994
5289
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: WidgetMenuContainerComponent, decorators: [{
4995
5290
  type: Component,
@@ -5059,6 +5354,792 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
5059
5354
  }]
5060
5355
  }] });
5061
5356
 
5357
+ let QueueStore = class QueueStore extends BaseStore {
5358
+ constructor() {
5359
+ super();
5360
+ }
5361
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5362
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, providedIn: "root" });
5363
+ };
5364
+ QueueStore = __decorate([
5365
+ StoreConfig({ name: "queues" })
5366
+ ], QueueStore);
5367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueStore, decorators: [{
5368
+ type: Injectable,
5369
+ args: [{ providedIn: "root" }]
5370
+ }], ctorParameters: () => [] });
5371
+
5372
+ /**
5373
+ * Service for managing queue-related operations such as retrieving,
5374
+ * searching, and storing queue data in the QueueStore.
5375
+ */
5376
+ class QueueService extends BaseService {
5377
+ queueStore;
5378
+ /**
5379
+ * Creates an instance of QueueService.
5380
+ * @param {QueueStore} queueStore - The store that manages the QueueModel state
5381
+ * @param {HttpClient} http - Angular HttpClient for making HTTP requests
5382
+ * @param {AppConfigService} appConfigService - Service for accessing application configuration
5383
+ * @param {ListService} listService - Service for handling list-related operations
5384
+ */
5385
+ constructor(queueStore, http, appConfigService, listService) {
5386
+ super(http, queueStore, appConfigService, listService);
5387
+ this.queueStore = queueStore;
5388
+ this._pathName = DATASOURCES.QUEUES;
5389
+ }
5390
+ /**
5391
+ * Fetches queue records using the provided apiConfig URL and optional params.
5392
+ * @param {string} apiConfig - The full API endpoint to fetch records for the selected queue
5393
+ * @param {any} [params] - Optional query parameters as an object
5394
+ * @returns {Observable<any>} Observable emitting the queue records
5395
+ */
5396
+ getQueueRecordsByApiConfig(apiConfig, params) {
5397
+ let url = apiConfig;
5398
+ if (params && typeof params === 'object') {
5399
+ const queryString = new URLSearchParams(params).toString();
5400
+ if (queryString) {
5401
+ url += (url.includes('?') ? '&' : '?') + queryString;
5402
+ }
5403
+ }
5404
+ return this.http.get(url).pipe(tap$1((response) => {
5405
+ if (response && response.data) {
5406
+ this.queueStore.set(response.data);
5407
+ }
5408
+ else if (Array.isArray(response)) {
5409
+ this.queueStore.set(response);
5410
+ }
5411
+ }));
5412
+ }
5413
+ /**
5414
+ * Fetches all queue entities from the configured data source.
5415
+ * The entities are stored in the queueStore upon retrieval.
5416
+ * @returns {Observable<any>} Observable emitting the fetched queue entities
5417
+ */
5418
+ getAllQueue() {
5419
+ return this.http.get(this.apiUrl + this._pathName).pipe(tap$1((entities) => { this.queueStore.set(entities); }));
5420
+ }
5421
+ /**
5422
+ * Searches for queue data based on the provided search criteria.
5423
+ * Results are stored in the queueStore.
5424
+ * @param {any} searchItem - The search parameter or query string used to filter queues
5425
+ * @returns {Observable<any[]>} Observable emitting the search results as an array
5426
+ */
5427
+ getQueuesData(searchItem) {
5428
+ return this.http
5429
+ .get(`${this.apiUrl}${DATASOURCES.APPLICATION_QUEUE_SEARCH}${searchItem}`)
5430
+ .pipe(tap$1((entities) => this.queueStore.set(entities)) // optional: only if storing
5431
+ );
5432
+ }
5433
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, deps: [{ token: QueueStore }, { token: i1.HttpClient }, { token: AppConfigService }, { token: ListService }], target: i0.ɵɵFactoryTarget.Injectable });
5434
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, providedIn: "root" });
5435
+ }
5436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueService, decorators: [{
5437
+ type: Injectable,
5438
+ args: [{ providedIn: "root" }]
5439
+ }], ctorParameters: () => [{ type: QueueStore }, { type: i1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
5440
+
5441
+ /**
5442
+ * `QueueSearchComponent` is responsible for displaying a search input and interacting with
5443
+ * queue-related data. It emits filtered results when a search is performed.
5444
+ * Selector: `queue-search`
5445
+ * Template: `./queue-search.component.html`
5446
+ * Styles: `./queue-search.component.scss`
5447
+ */
5448
+ class QueueSearchComponent {
5449
+ QueueService;
5450
+ searchText = SHARED.EMPTY;
5451
+ queueFilteredData = new EventEmitter();
5452
+ destroy$ = new Subject();
5453
+ /**
5454
+ * Constructs the QueueSearchComponent with required services.
5455
+ * @param {QueueService} QueueService - Service to perform queue data search.
5456
+ */
5457
+ constructor(QueueService) {
5458
+ this.QueueService = QueueService;
5459
+ }
5460
+ /**
5461
+ * Lifecycle hook called on component initialization.
5462
+ * @returns {void}
5463
+ */
5464
+ ngOnInit() {
5465
+ // Component initialization - no additional setup needed
5466
+ }
5467
+ /**
5468
+ * Handles the search functionality and emits filtered results.
5469
+ * If the search text is empty, it emits an empty array and empty string.
5470
+ * @returns {void}
5471
+ */
5472
+ onSearch() {
5473
+ const searchItem = this.searchText?.trim();
5474
+ if (searchItem?.length > 0) {
5475
+ this.QueueService.getQueuesData(searchItem)
5476
+ .pipe(takeUntil(this.destroy$))
5477
+ .subscribe({
5478
+ next: (data) => {
5479
+ if (data) {
5480
+ this.queueFilteredData.emit([data, searchItem]);
5481
+ }
5482
+ else {
5483
+ this.queueFilteredData.emit([[], searchItem]);
5484
+ }
5485
+ },
5486
+ error: (err) => {
5487
+ console.error('Search failed:', err);
5488
+ this.queueFilteredData.emit([[], searchItem]);
5489
+ },
5490
+ });
5491
+ }
5492
+ else {
5493
+ this.queueFilteredData.emit([[], '']);
5494
+ }
5495
+ }
5496
+ /**
5497
+ * Lifecycle hook called when the component is destroyed.
5498
+ * It completes all subscriptions to avoid memory leaks.
5499
+ * @returns {void}
5500
+ */
5501
+ ngOnDestroy() {
5502
+ this.destroy$.next();
5503
+ this.destroy$.complete();
5504
+ }
5505
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueSearchComponent, deps: [{ token: QueueService }], target: i0.ɵɵFactoryTarget.Component });
5506
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueSearchComponent, isStandalone: false, selector: "queue-search", outputs: { queueFilteredData: "queueFilteredData" }, ngImport: i0, template: "<div class=\"flex mt-5 xl:mt-0 xl:justify-content-between\">\r\n <div class=\"p-field m-0 p-0 w-full bg-white border-round py-1\">\r\n <div class=\"p-inputgroup border-round-left bg-white\">\r\n <span class=\"p-inputgroup-addon bg-white\">\r\n <i class=\"pi pi-search\"></i>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"searchText\" class=\"border-none h-44 border-noround-right bg-white w-full outline-none\" pInputText placeholder=\"Search with Applicaiton no. or Name\" (keydown.enter)=\"onSearch()\" />\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".p-inputgroup{width:100%}.bg-primary{background-color:#d9d9d9}::ng-deep .left-arrow-dropdown .p-dropdown{direction:rtl;width:100%;height:44px;border-top-left-radius:0;border-bottom-left-radius:0}::ng-deep .left-arrow-dropdown .p-dropdown-label{display:flex;align-items:center}.h-44{height:44px}@media screen and (min-width: 1200px){.vh-100{height:calc(100vh - 170px)}}.bg-while{background-color:#fff}\n"], dependencies: [{ 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
5507
+ }
5508
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueSearchComponent, decorators: [{
5509
+ type: Component,
5510
+ args: [{ selector: 'queue-search', standalone: false, template: "<div class=\"flex mt-5 xl:mt-0 xl:justify-content-between\">\r\n <div class=\"p-field m-0 p-0 w-full bg-white border-round py-1\">\r\n <div class=\"p-inputgroup border-round-left bg-white\">\r\n <span class=\"p-inputgroup-addon bg-white\">\r\n <i class=\"pi pi-search\"></i>\r\n </span>\r\n <input type=\"text\" [(ngModel)]=\"searchText\" class=\"border-none h-44 border-noround-right bg-white w-full outline-none\" pInputText placeholder=\"Search with Applicaiton no. or Name\" (keydown.enter)=\"onSearch()\" />\r\n </div>\r\n </div>\r\n </div>\r\n ", styles: [".p-inputgroup{width:100%}.bg-primary{background-color:#d9d9d9}::ng-deep .left-arrow-dropdown .p-dropdown{direction:rtl;width:100%;height:44px;border-top-left-radius:0;border-bottom-left-radius:0}::ng-deep .left-arrow-dropdown .p-dropdown-label{display:flex;align-items:center}.h-44{height:44px}@media screen and (min-width: 1200px){.vh-100{height:calc(100vh - 170px)}}.bg-while{background-color:#fff}\n"] }]
5511
+ }], ctorParameters: () => [{ type: QueueService }], propDecorators: { queueFilteredData: [{
5512
+ type: Output
5513
+ }] } });
5514
+
5515
+ class QueueItemComponent {
5516
+ router;
5517
+ sessionService;
5518
+ queueData;
5519
+ showQueueDataForm = true;
5520
+ queueDataById = new EventEmitter();
5521
+ userRole;
5522
+ selectedQueueId;
5523
+ filteredQueueData = []; // Store filtered queues
5524
+ selectedStatus = 'active'; // Default to 'active'
5525
+ PERMISSION = PERMISSION;
5526
+ constructor(router, sessionService) {
5527
+ this.router = router;
5528
+ this.sessionService = sessionService;
5529
+ }
5530
+ ngOnChanges() {
5531
+ this.filterQueues();
5532
+ this.queueDataById.emit(this.filteredQueueData[0]?._id);
5533
+ this.selectedQueueId = this.filteredQueueData[0]?._id;
5534
+ this.userRole = this.sessionService.getUserSession().roles.includes('EnterpriseAdmins');
5535
+ }
5536
+ insertQueue() {
5537
+ this.router.navigate([ROUTES.QUEUE_FORM + SHARED.ZERO]);
5538
+ }
5539
+ handleQueueClick(queueId, showQueueDataForm) {
5540
+ this.selectedQueueId = queueId;
5541
+ if (showQueueDataForm) {
5542
+ this.router.navigateByUrl(ROUTES.QUEUE_FORM + queueId);
5543
+ }
5544
+ else {
5545
+ this.queueDataById.emit(queueId);
5546
+ }
5547
+ }
5548
+ onStatusChange(event) {
5549
+ this.selectedStatus = event.target.value;
5550
+ this.filterQueues();
5551
+ }
5552
+ filterQueues() {
5553
+ if (this.selectedStatus === 'inactive') {
5554
+ this.filteredQueueData = this.queueData?.filter(queue => !queue.isActive) || [];
5555
+ }
5556
+ else if (this.selectedStatus === 'active') {
5557
+ this.filteredQueueData = this.queueData?.filter(queue => queue.isActive) || [];
5558
+ }
5559
+ else {
5560
+ this.filteredQueueData = [...this.queueData];
5561
+ }
5562
+ if (this.filteredQueueData.length) {
5563
+ this.selectedQueueId = this.filteredQueueData[0]._id;
5564
+ this.queueDataById.emit(this.selectedQueueId);
5565
+ }
5566
+ }
5567
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueItemComponent, deps: [{ token: i3$4.Router }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
5568
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: QueueItemComponent, isStandalone: false, selector: "app-queue-item", inputs: { queueData: "queueData", showQueueDataForm: "showQueueDataForm" }, outputs: { queueDataById: "queueDataById" }, usesOnChanges: true, ngImport: i0, template: "\r\n\r\n<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)=\"handleQueueClick(queue._id, false)\" >\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': queue._id === selectedQueueId,\r\n 'inActiveQueue': !queue.isActive,\r\n 'queue-list-wrapper': queue.isActive\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': queue._id === this.selectedQueueId}\"\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': !queue.isActive,\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\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: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }] });
5569
+ }
5570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueItemComponent, decorators: [{
5571
+ type: Component,
5572
+ args: [{ selector: 'app-queue-item', standalone: false, template: "\r\n\r\n<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)=\"handleQueueClick(queue._id, false)\" >\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': queue._id === selectedQueueId,\r\n 'inActiveQueue': !queue.isActive,\r\n 'queue-list-wrapper': queue.isActive\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': queue._id === this.selectedQueueId}\"\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': !queue.isActive,\r\n }\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\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"] }]
5573
+ }], ctorParameters: () => [{ type: i3$4.Router }, { type: SessionService }], propDecorators: { queueData: [{
5574
+ type: Input
5575
+ }], showQueueDataForm: [{
5576
+ type: Input
5577
+ }], queueDataById: [{
5578
+ type: Output
5579
+ }] } });
5580
+
5581
+ class QueueListComponent {
5582
+ queueData = [];
5583
+ queueDataById = new EventEmitter();
5584
+ handleQueueId(event) {
5585
+ localStorage.setItem(SHARED.SELECTED_QUEUE_ID, event);
5586
+ this.queueDataById.emit(event);
5587
+ }
5588
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5589
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueListComponent, isStandalone: false, selector: "app-queue-list", inputs: { queueData: "queueData" }, outputs: { queueDataById: "queueDataById" }, ngImport: i0, template: "<app-queue-item\r\n [queueData]=\"queueData\"\r\n (queueDataById)=\"handleQueueId($event)\"\r\n></app-queue-item>\r\n", styles: [""], dependencies: [{ kind: "component", type: QueueItemComponent, selector: "app-queue-item", inputs: ["queueData", "showQueueDataForm"], outputs: ["queueDataById"] }] });
5590
+ }
5591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueListComponent, decorators: [{
5592
+ type: Component,
5593
+ args: [{ selector: 'app-queue-list', standalone: false, template: "<app-queue-item\r\n [queueData]=\"queueData\"\r\n (queueDataById)=\"handleQueueId($event)\"\r\n></app-queue-item>\r\n" }]
5594
+ }], propDecorators: { queueData: [{
5595
+ type: Input
5596
+ }], queueDataById: [{
5597
+ type: Output
5598
+ }] } });
5599
+
5600
+ class QueueRecordTableBuilderService extends TableBuilder {
5601
+ buildSecondaryTable(records, headerWidths, editPermission, deletePermission) {
5602
+ const table = new TableSecondaryModel();
5603
+ if (records.length === 0) {
5604
+ console.log('No records to build table from');
5605
+ return table;
5606
+ }
5607
+ // Get the first record to determine available fields
5608
+ const firstRecord = records[0];
5609
+ const excludedFields = ['_id', 'companyName', 'applicationType', 'assignedTo']; // Fields to exclude from table columns
5610
+ // Get all fields from the first record, excluding specified fields
5611
+ const availableFields = Object.keys(firstRecord).filter(field => !excludedFields.includes(field));
5612
+ table.records = records.map((apiRecord) => {
5613
+ const record = {
5614
+ recordData: {
5615
+ recordId: apiRecord._id, // The nested recordData expected by table-secondary.component.ts
5616
+ ...apiRecord
5617
+ },
5618
+ ...apiRecord
5619
+ };
5620
+ // Add formatted values for each field
5621
+ availableFields.forEach(field => {
5622
+ let value = apiRecord[field];
5623
+ // Format specific fields
5624
+ if (field === 'applicants' && Array.isArray(value)) {
5625
+ value = value.map((applicant) => {
5626
+ const firstInitial = applicant.fullName?.split(' ')[0]?.[0] || '';
5627
+ const lastInitial = applicant.fullName?.split(' ').slice(-1)[0]?.[0] || '';
5628
+ return `${firstInitial}${lastInitial}`;
5629
+ }).join(', ') || '';
5630
+ }
5631
+ else if (!value || value === 'null') {
5632
+ value = SHARED.EMPTY;
5633
+ }
5634
+ record[field] = value;
5635
+ });
5636
+ return record;
5637
+ });
5638
+ // Generate headers dynamically
5639
+ table.headers = availableFields.map(field => ({
5640
+ name: field,
5641
+ width: 'w-4' // Default width for all columns
5642
+ }));
5643
+ // Set TableSecondaryModel specific properties
5644
+ table.isSortingAllow = SHARED.TRUE;
5645
+ table.showDecriptionFor = 'applicants';
5646
+ return table;
5647
+ }
5648
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRecordTableBuilderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5649
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRecordTableBuilderService, providedIn: 'root' });
5650
+ }
5651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRecordTableBuilderService, decorators: [{
5652
+ type: Injectable,
5653
+ args: [{
5654
+ providedIn: 'root'
5655
+ }]
5656
+ }] });
5657
+
5658
+ class QueueRecordTableComponent {
5659
+ builder;
5660
+ queueService;
5661
+ cd;
5662
+ queueData;
5663
+ filteredSearchResult;
5664
+ selectionChange = new EventEmitter();
5665
+ rowSelected = new EventEmitter();
5666
+ selectedRowsData = new EventEmitter();
5667
+ assignmentDataReady = new EventEmitter();
5668
+ rowClick = new EventEmitter();
5669
+ paginator;
5670
+ table = new TableSecondaryModel();
5671
+ metaData = {
5672
+ currentPage: 1,
5673
+ itemsPerPage: 10,
5674
+ totalItems: 0,
5675
+ totalPages: 1
5676
+ };
5677
+ apiData = [];
5678
+ destroy$ = new Subject();
5679
+ filterSubject = new Subject();
5680
+ currentPage = 1;
5681
+ itemsPerPage = 10;
5682
+ selectedRows = [];
5683
+ Math = Math;
5684
+ constructor(builder, queueService, cd) {
5685
+ this.builder = builder;
5686
+ this.queueService = queueService;
5687
+ this.cd = cd;
5688
+ }
5689
+ ngOnInit() {
5690
+ this.loadAssociatedList();
5691
+ this.setupFilterDebounce();
5692
+ }
5693
+ ngOnChanges(changes) {
5694
+ if (changes['queueData'] && this.queueData) {
5695
+ // Reset pagination when queue changes
5696
+ this.resetPagination();
5697
+ this.loadAssociatedList();
5698
+ this.clearSelection();
5699
+ }
5700
+ if (changes['filteredSearchResult'] && this.filteredSearchResult) {
5701
+ const [filteredData, searchTerm] = this.filteredSearchResult;
5702
+ if (searchTerm && filteredData) {
5703
+ this.table = this.builder.buildSecondaryTable(filteredData || []);
5704
+ }
5705
+ else if (!searchTerm) {
5706
+ this.table = this.builder.buildSecondaryTable(this.apiData || []);
5707
+ }
5708
+ this.clearSelection();
5709
+ }
5710
+ }
5711
+ setupFilterDebounce() {
5712
+ this.filterSubject.pipe(debounceTime(500)).subscribe(({ search, query }) => {
5713
+ this.getQueueRecordsData(search, query);
5714
+ });
5715
+ }
5716
+ /**
5717
+ * Resets pagination to first page and default items per page
5718
+ */
5719
+ resetPagination() {
5720
+ this.currentPage = 1;
5721
+ this.itemsPerPage = 10;
5722
+ this.metaData.currentPage = 1;
5723
+ this.metaData.itemsPerPage = 10;
5724
+ if (this.paginator) {
5725
+ this.paginator.first = 0;
5726
+ this.paginator.rows = 10;
5727
+ this.paginator.changePage(0);
5728
+ }
5729
+ }
5730
+ loadAssociatedList() {
5731
+ if (this.queueData && this.queueData.apiConfig) {
5732
+ this.getQueueRecordsData();
5733
+ }
5734
+ else {
5735
+ this.apiData = [];
5736
+ this.table = this.builder.buildSecondaryTable([]);
5737
+ }
5738
+ }
5739
+ /**
5740
+ * Fetches queue records data based on current search and filter parameters.
5741
+ * @param {string} [search] - Optional search term
5742
+ * @param {any} [query] - Optional query string for filtering
5743
+ */
5744
+ getQueueRecordsData(search, query) {
5745
+ if (this.queueData && this.queueData.apiConfig) {
5746
+ const params = {
5747
+ ...(search ? { searchKey: search } : {}),
5748
+ ...(query ? query : {}),
5749
+ page: this.currentPage,
5750
+ limit: this.itemsPerPage
5751
+ };
5752
+ this.queueService.getQueueRecordsByApiConfig(this.queueData.apiConfig, params).subscribe({
5753
+ next: (res) => {
5754
+ this.apiData = res?.data || res?.paginatedResults || res || [];
5755
+ this.table = this.builder.buildSecondaryTable(this.apiData || []);
5756
+ // Update metadata with current pagination state
5757
+ this.metaData = res?.metadata || {
5758
+ currentPage: this.currentPage,
5759
+ itemsPerPage: this.itemsPerPage,
5760
+ totalItems: this.apiData.length,
5761
+ totalPages: Math.ceil(this.apiData.length / this.itemsPerPage)
5762
+ };
5763
+ // If current page is greater than total pages, reset to page 1
5764
+ if (this.currentPage > this.metaData.totalPages) {
5765
+ this.resetPagination();
5766
+ // Fetch first page data if needed
5767
+ if (this.currentPage !== 1) {
5768
+ this.getQueueRecordsData(search, query);
5769
+ return;
5770
+ }
5771
+ }
5772
+ this.metaData.currentPage = this.currentPage;
5773
+ this.metaData.itemsPerPage = this.itemsPerPage;
5774
+ setTimeout(() => {
5775
+ if (this.paginator) {
5776
+ this.paginator.first = (this.currentPage - 1) * this.itemsPerPage;
5777
+ }
5778
+ });
5779
+ this.cd.detectChanges();
5780
+ },
5781
+ error: (error) => {
5782
+ console.error("Error fetching data:", error);
5783
+ this.apiData = [];
5784
+ this.table = this.builder.buildSecondaryTable([]);
5785
+ this.metaData = { currentPage: 1, itemsPerPage: 10, totalItems: 0, totalPages: 1 };
5786
+ this.cd.detectChanges();
5787
+ }
5788
+ });
5789
+ }
5790
+ else {
5791
+ console.log("Queue data or apiConfig not available");
5792
+ }
5793
+ }
5794
+ /**
5795
+ * Applies filters to the queue records and triggers data refresh.
5796
+ * @param {any} record - The filter model containing search and query parameters
5797
+ */
5798
+ getFilteredQueueRecords(record) {
5799
+ this.resetPagination();
5800
+ const queryParams = {
5801
+ type: record.type ?? SHARED.EMPTY,
5802
+ status: record.status ?? SHARED.EMPTY
5803
+ };
5804
+ const filteredQueryParams = Object.fromEntries(Object.entries(queryParams).filter(([_, value]) => value));
5805
+ const queryString = new URLSearchParams(filteredQueryParams).toString();
5806
+ const currentSearchTerm = record.search || SHARED.EMPTY;
5807
+ this.filterSubject.next({ search: currentSearchTerm, query: queryString });
5808
+ this.clearSelection();
5809
+ }
5810
+ /**
5811
+ * Handles page change events from the paginator
5812
+ * @param {any} event - The PrimeNG paginator event
5813
+ */
5814
+ onPageChange(event) {
5815
+ this.currentPage = Math.floor(event.first / event.rows) + 1;
5816
+ this.itemsPerPage = event.rows;
5817
+ this.getQueueRecordsData();
5818
+ this.clearSelection();
5819
+ }
5820
+ handleRowClick(record) {
5821
+ localStorage.setItem(SHARED.selectedApplication, record._id);
5822
+ localStorage.setItem(SHARED.selectedApplicationNumber, record.applicationNumber);
5823
+ localStorage.setItem(SHARED.selectedApplicationType, record.applicationType);
5824
+ this.rowClick.emit(record);
5825
+ }
5826
+ /**
5827
+ * Handles selection changes from the table
5828
+ * @param {any[]} selection - Array of selected rows
5829
+ */
5830
+ onSelectionChange(selection) {
5831
+ this.selectedRows = selection;
5832
+ this.selectionChange.emit(this.selectedRows);
5833
+ this.selectedRowsData.emit(this.selectedRows);
5834
+ this.assignmentDataReady.emit({
5835
+ selectedRows: this.selectedRows,
5836
+ queueData: this.queueData
5837
+ });
5838
+ }
5839
+ /**
5840
+ * Handles individual row selection events
5841
+ * @param {any} rowData - The row data that was selected/deselected
5842
+ * @param {boolean} isSelected - Whether the row is selected or deselected
5843
+ */
5844
+ onRowSelectionChange(rowData, isSelected) {
5845
+ this.rowSelected.emit({ row: rowData, isSelected: isSelected });
5846
+ }
5847
+ /**
5848
+ * Clears the current selection
5849
+ */
5850
+ clearSelection() {
5851
+ this.selectedRows = [];
5852
+ this.selectionChange.emit(this.selectedRows);
5853
+ this.selectedRowsData.emit(this.selectedRows);
5854
+ this.assignmentDataReady.emit({
5855
+ selectedRows: this.selectedRows,
5856
+ queueData: this.queueData
5857
+ });
5858
+ }
5859
+ ngOnDestroy() {
5860
+ this.destroy$.next();
5861
+ this.destroy$.complete();
5862
+ }
5863
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRecordTableComponent, deps: [{ token: QueueRecordTableBuilderService }, { token: QueueService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5864
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: QueueRecordTableComponent, isStandalone: false, selector: "app-queue-record-table", inputs: { queueData: "queueData", filteredSearchResult: "filteredSearchResult" }, outputs: { selectionChange: "selectionChange", rowSelected: "rowSelected", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: ["paginator"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<lib-table-secondary \r\n *ngIf=\"table && table.headers && table.headers.length && metaData\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [builder]=\"builder\"\r\n (rowSelectionChange)=\"handleRowClick($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [usePagination]=\"false\"\r\n>\r\n</lib-table-secondary>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i5.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", "rowSelection", "enableSelection", "noRecordsMessage", "searchTerm", "filterQuery"], outputs: ["selectionChange", "rowSelectionChange", "onDeleteRow"] }] });
5865
+ }
5866
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRecordTableComponent, decorators: [{
5867
+ type: Component,
5868
+ args: [{ selector: 'app-queue-record-table', standalone: false, template: "<lib-table-secondary \r\n *ngIf=\"table && table.headers && table.headers.length && metaData\"\r\n [table]=\"table\" \r\n [metaData]=\"metaData\"\r\n [enableSelection]=\"true\"\r\n [builder]=\"builder\"\r\n (rowSelectionChange)=\"handleRowClick($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectionMode]=\"'multiple'\"\r\n [selection]=\"selectedRows\"\r\n [showActions]=\"false\"\r\n [usePagination]=\"false\"\r\n>\r\n</lib-table-secondary>\r\n" }]
5869
+ }], ctorParameters: () => [{ type: QueueRecordTableBuilderService }, { type: QueueService }, { type: i0.ChangeDetectorRef }], propDecorators: { queueData: [{
5870
+ type: Input
5871
+ }], filteredSearchResult: [{
5872
+ type: Input
5873
+ }], selectionChange: [{
5874
+ type: Output
5875
+ }], rowSelected: [{
5876
+ type: Output
5877
+ }], selectedRowsData: [{
5878
+ type: Output
5879
+ }], assignmentDataReady: [{
5880
+ type: Output
5881
+ }], rowClick: [{
5882
+ type: Output
5883
+ }], paginator: [{
5884
+ type: ViewChild,
5885
+ args: ['paginator']
5886
+ }] } });
5887
+
5888
+ /**
5889
+ * Container component for managing queue-related data and interactions.
5890
+ * Extends the BaseContainerComponent with a generic type of QueueModel.
5891
+ */
5892
+ class QueueContainerComponent extends BaseContainerComponent {
5893
+ queueStore;
5894
+ queueService;
5895
+ baseStore;
5896
+ constructor(queueStore, queueService, baseStore) {
5897
+ super(queueService);
5898
+ this.queueStore = queueStore;
5899
+ this.queueService = queueService;
5900
+ this.baseStore = baseStore;
5901
+ }
5902
+ queueList = [];
5903
+ selectedQueue;
5904
+ filteredResult = [[], ''];
5905
+ selectedRows = [];
5906
+ // Input properties for content projection
5907
+ set selectedRowsInput(rows) {
5908
+ this.selectedRows = rows || [];
5909
+ }
5910
+ get selectedRowsInput() {
5911
+ return this.selectedRows;
5912
+ }
5913
+ // Output events for content projection
5914
+ assignmentComplete = new EventEmitter();
5915
+ userAssigned = new EventEmitter();
5916
+ // New output events for gb-ng assignment logic
5917
+ rowSelected = new EventEmitter();
5918
+ selectedRowsData = new EventEmitter();
5919
+ assignmentDataReady = new EventEmitter();
5920
+ // New output event for row click navigation
5921
+ rowClick = new EventEmitter();
5922
+ ngOnInit() {
5923
+ this.getAllQueueList();
5924
+ }
5925
+ getAllQueueList() {
5926
+ this.queueService.getAllQueue().subscribe({
5927
+ next: (res) => {
5928
+ this.queueList = Array.isArray(res) ? res : (res.data || res);
5929
+ this.baseStore.setQueueList(this.queueList);
5930
+ },
5931
+ error: (err) => {
5932
+ console.error(ERROR.UNABLE_TO_FETCH_QUEUE_LIST, err);
5933
+ }
5934
+ });
5935
+ }
5936
+ handleQueueId(event) {
5937
+ this.selectedQueue = Object.assign({}, this.queueList.find((i) => i._id == event));
5938
+ if (this.selectedQueue) {
5939
+ sessionStorage.setItem(SHARED.selectedQueue, JSON.stringify(this.selectedQueue));
5940
+ this.clearSelection();
5941
+ }
5942
+ else {
5943
+ console.warn(ERROR.NO_QUEUE_FOUND_WITH_ID);
5944
+ }
5945
+ }
5946
+ onQueueFiltered(data) {
5947
+ this.filteredResult = data;
5948
+ this.clearSelection();
5949
+ }
5950
+ /**
5951
+ * Handles selection changes from the queue record table
5952
+ * @param {any[]} selection - Array of selected rows
5953
+ */
5954
+ onSelectionChange(selection) {
5955
+ this.selectedRows = selection;
5956
+ }
5957
+ /**
5958
+ * Clears the current selection
5959
+ */
5960
+ clearSelection() {
5961
+ this.selectedRows = [];
5962
+ }
5963
+ /**
5964
+ * Handles the assignment complete event from the projected user-dropdown component
5965
+ */
5966
+ onAssignmentComplete(event) {
5967
+ if (event.success) {
5968
+ // Refresh the queue data to reflect the changes
5969
+ this.getAllQueueList();
5970
+ }
5971
+ // Emit the event for parent components
5972
+ this.assignmentComplete.emit(event);
5973
+ }
5974
+ /**
5975
+ * Handles user assignment events from the projected user-dropdown component
5976
+ */
5977
+ onUserAssigned(event) {
5978
+ // Emit the event for parent components
5979
+ this.userAssigned.emit(event);
5980
+ }
5981
+ /**
5982
+ * Handles individual row selection events from the queue record table
5983
+ * @param {any} event - Object containing row data and selection state
5984
+ */
5985
+ onRowSelected(event) {
5986
+ // Forward the event to gb-ng
5987
+ this.rowSelected.emit(event);
5988
+ }
5989
+ /**
5990
+ * Handles selected rows data events from the queue record table
5991
+ * @param {any[]} selectedRows - Array of selected row data
5992
+ */
5993
+ onSelectedRowsData(selectedRows) {
5994
+ // Forward the event to gb-ng
5995
+ this.selectedRowsData.emit(selectedRows);
5996
+ }
5997
+ /**
5998
+ * Handles assignment data ready events from the queue record table
5999
+ * @param {any} event - Object containing selected rows and queue data
6000
+ */
6001
+ onAssignmentDataReady(event) {
6002
+ // Forward the event to gb-ng
6003
+ this.assignmentDataReady.emit(event);
6004
+ }
6005
+ /**
6006
+ * Handles row click events from the queue record table
6007
+ * @param {any} record - The record data that was clicked
6008
+ */
6009
+ onRowClick(record) {
6010
+ // Forward the event to gb-ng for navigation handling
6011
+ this.rowClick.emit(record);
6012
+ }
6013
+ isAssignButtonEnabled() {
6014
+ return this.selectedRows && this.selectedRows.length > 0;
6015
+ }
6016
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueContainerComponent, deps: [{ token: QueueStore }, { token: QueueService }, { token: BaseStore }], target: i0.ɵɵFactoryTarget.Component });
6017
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.4", type: QueueContainerComponent, isStandalone: false, selector: "lib-queue-container", inputs: { selectedRowsInput: "selectedRowsInput" }, outputs: { assignmentComplete: "assignmentComplete", userAssigned: "userAssigned", rowSelected: "rowSelected", selectedRowsData: "selectedRowsData", assignmentDataReady: "assignmentDataReady", rowClick: "rowClick" }, 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]=\"queueList\"\r\n (queueDataById)=\"handleQueueId($event)\"\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-6 p-0\">\r\n <div class=\"searchbar-wrapper\">\r\n <queue-search (queueFilteredData)=\"onQueueFiltered($event)\"></queue-search>\r\n </div>\r\n </div>\r\n <div class=\"d-flex 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 h-full card mb-0 p-0\">\r\n <app-queue-record-table\r\n [queueData]=\"selectedQueue\"\r\n [filteredSearchResult]=\"filteredResult\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelected)=\"onRowSelected($event)\"\r\n (selectedRowsData)=\"onSelectedRowsData($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onRowClick($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}.custom-scroll:hover{overflow-y:auto}\n"], dependencies: [{ kind: "component", type: QueueSearchComponent, selector: "queue-search", outputs: ["queueFilteredData"] }, { kind: "component", type: QueueListComponent, selector: "app-queue-list", inputs: ["queueData"], outputs: ["queueDataById"] }, { kind: "component", type: QueueRecordTableComponent, selector: "app-queue-record-table", inputs: ["queueData", "filteredSearchResult"], outputs: ["selectionChange", "rowSelected", "selectedRowsData", "assignmentDataReady", "rowClick"] }] });
6018
+ }
6019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueContainerComponent, decorators: [{
6020
+ type: Component,
6021
+ 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]=\"queueList\"\r\n (queueDataById)=\"handleQueueId($event)\"\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-6 p-0\">\r\n <div class=\"searchbar-wrapper\">\r\n <queue-search (queueFilteredData)=\"onQueueFiltered($event)\"></queue-search>\r\n </div>\r\n </div>\r\n <div class=\"d-flex 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 h-full card mb-0 p-0\">\r\n <app-queue-record-table\r\n [queueData]=\"selectedQueue\"\r\n [filteredSearchResult]=\"filteredResult\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n (rowSelected)=\"onRowSelected($event)\"\r\n (selectedRowsData)=\"onSelectedRowsData($event)\"\r\n (assignmentDataReady)=\"onAssignmentDataReady($event)\"\r\n (rowClick)=\"onRowClick($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}.custom-scroll:hover{overflow-y:auto}\n"] }]
6022
+ }], ctorParameters: () => [{ type: QueueStore }, { type: QueueService }, { type: BaseStore }], propDecorators: { selectedRowsInput: [{
6023
+ type: Input
6024
+ }], assignmentComplete: [{
6025
+ type: Output
6026
+ }], userAssigned: [{
6027
+ type: Output
6028
+ }], rowSelected: [{
6029
+ type: Output
6030
+ }], selectedRowsData: [{
6031
+ type: Output
6032
+ }], assignmentDataReady: [{
6033
+ type: Output
6034
+ }], rowClick: [{
6035
+ type: Output
6036
+ }] } });
6037
+
6038
+ const routes = [
6039
+ {
6040
+ path: '',
6041
+ component: QueueContainerComponent,
6042
+ canActivate: [AuthGuard],
6043
+ data: { accessPermission: PERMISSION.QUEUES_GET }
6044
+ },
6045
+ ];
6046
+ class QueueRoutingModule {
6047
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6048
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, imports: [i3$4.RouterModule], exports: [RouterModule] });
6049
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
6050
+ }
6051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueRoutingModule, decorators: [{
6052
+ type: NgModule,
6053
+ args: [{
6054
+ imports: [RouterModule.forChild(routes)],
6055
+ exports: [RouterModule],
6056
+ }]
6057
+ }] });
6058
+
6059
+ class ApplicationAssignmentService {
6060
+ http;
6061
+ appConfigService;
6062
+ constructor(http, appConfigService) {
6063
+ this.http = http;
6064
+ this.appConfigService = appConfigService;
6065
+ }
6066
+ /**
6067
+ * Assign an application to a user
6068
+ * @param applicationId - The ID of the application to assign
6069
+ * @param underWriterId - The ID of the user to assign the application to
6070
+ * @returns Observable of the assignment response
6071
+ */
6072
+ assignApplication(applicationId, underWriterId) {
6073
+ const url = `${this.appConfigService.apiBaseUrl}${DATASOURCES.APPLICATION_ASSIGNMENT}${applicationId}/${underWriterId}`;
6074
+ return this.http.post(url, {});
6075
+ }
6076
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApplicationAssignmentService, deps: [{ token: i1.HttpClient }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
6077
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApplicationAssignmentService, providedIn: 'root' });
6078
+ }
6079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: ApplicationAssignmentService, decorators: [{
6080
+ type: Injectable,
6081
+ args: [{
6082
+ providedIn: 'root'
6083
+ }]
6084
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: AppConfigService }] });
6085
+
6086
+ class QueueModule {
6087
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6088
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.4", ngImport: i0, type: QueueModule, declarations: [QueueContainerComponent,
6089
+ QueueSearchComponent,
6090
+ QueueItemComponent,
6091
+ QueueListComponent,
6092
+ QueueRecordTableComponent], imports: [CommonModule,
6093
+ QueueRoutingModule,
6094
+ FormsModule,
6095
+ DropdownModule,
6096
+ RippleModule, ButtonModule, RouterModule, BadgeModule,
6097
+ PaginatorModule,
6098
+ SharedModule,
6099
+ TagModule,
6100
+ TableSecondaryComponent], exports: [QueueContainerComponent] });
6101
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueModule, providers: [
6102
+ ApplicationAssignmentService
6103
+ ], imports: [CommonModule,
6104
+ QueueRoutingModule,
6105
+ FormsModule,
6106
+ DropdownModule,
6107
+ RippleModule, ButtonModule, RouterModule, BadgeModule,
6108
+ PaginatorModule,
6109
+ SharedModule,
6110
+ TagModule,
6111
+ TableSecondaryComponent] });
6112
+ }
6113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: QueueModule, decorators: [{
6114
+ type: NgModule,
6115
+ args: [{
6116
+ declarations: [
6117
+ QueueContainerComponent,
6118
+ QueueSearchComponent,
6119
+ QueueItemComponent,
6120
+ QueueListComponent,
6121
+ QueueRecordTableComponent
6122
+ ],
6123
+ imports: [
6124
+ CommonModule,
6125
+ QueueRoutingModule,
6126
+ FormsModule,
6127
+ DropdownModule,
6128
+ RippleModule, ButtonModule, RouterModule, BadgeModule,
6129
+ PaginatorModule,
6130
+ SharedModule,
6131
+ TagModule,
6132
+ TableSecondaryComponent
6133
+ ],
6134
+ exports: [
6135
+ QueueContainerComponent
6136
+ ],
6137
+ providers: [
6138
+ ApplicationAssignmentService
6139
+ ]
6140
+ }]
6141
+ }] });
6142
+
5062
6143
  /*
5063
6144
  * Public API Surface of cat-qw-lib
5064
6145
  */
@@ -5067,5 +6148,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
5067
6148
  * Generated bundle index. Do not edit.
5068
6149
  */
5069
6150
 
5070
- export { ActionAdminModule, AdminActionFormComponent, AdminActionListComponent, ApiAdminFormComponent, ApiAdminListComponent, ApiAdminModule, CustomWidgetComponent, DdAdminFormComponent, DdAdminListComponent, DdAdminModule, FormStateService, QWWidgetAdminModule, QueueAdminFormComponent, QueueAdminListComponent, QueueAdminModule, QueueApplicationListComponent, TemplateAdminFormComponent, TemplateAdminListComponent, TemplateAdminModule, WidgetAdminFormComponent, WidgetAdminListComponent, WidgetContainerComponent, WidgetMenuContainerComponent, WidgetModule };
6151
+ export { ActionAdminModule, AdminActionFormComponent, AdminActionListComponent, ApiAdminFormComponent, ApiAdminListComponent, ApiAdminModule, CustomWidgetComponent, DdAdminFormComponent, DdAdminListComponent, DdAdminModule, FormStateService, QWWidgetAdminModule, QueueAdminFormComponent, QueueAdminListComponent, QueueAdminModule, QueueApplicationListComponent, QueueContainerComponent, QueueModule, TemplateAdminFormComponent, TemplateAdminListComponent, TemplateAdminModule, WidgetAdminFormComponent, WidgetAdminListComponent, WidgetContainerComponent, WidgetMenuContainerComponent, WidgetModule };
5071
6152
  //# sourceMappingURL=cat-qw-lib.mjs.map