bpm-core 0.0.1 → 0.0.3

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.
@@ -1,97 +1,200 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Inject, Injectable, Pipe, forwardRef, EventEmitter, Input, Output, ViewChild, Directive, HostListener, InjectionToken } from '@angular/core';
3
- import * as i1 from '@angular/material/dialog';
2
+ import { Injectable, Inject, PLATFORM_ID, Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild, EventEmitter, Output, Pipe, forwardRef, Directive, HostListener, InjectionToken } from '@angular/core';
3
+ import * as i4 from '@angular/common';
4
+ import { CommonModule, NgIf, NgComponentOutlet, NgClass, NgForOf, NgTemplateOutlet, NgSwitchCase, DecimalPipe, DatePipe, NgSwitchDefault, NgSwitch, AsyncPipe, SlicePipe, DOCUMENT } from '@angular/common';
5
+ import * as i3$1 from '@angular/material/sidenav';
6
+ import { MatSidenavModule } from '@angular/material/sidenav';
7
+ import * as i1$1 from '@angular/router';
8
+ import { RouterModule, RouterLinkActive, RouterLink, RouterOutlet } from '@angular/router';
9
+ import * as i1$3 from '@angular/forms';
10
+ import { FormControl, ReactiveFormsModule, FormsModule, NG_VALUE_ACCESSOR, ControlContainer, NgForm, Validators } from '@angular/forms';
11
+ import * as i5 from '@angular/material/menu';
12
+ import { MatMenuModule, MatMenu, MatMenuTrigger, MatMenuItem } from '@angular/material/menu';
13
+ import * as i6 from '@angular/material/toolbar';
14
+ import { MatToolbarModule } from '@angular/material/toolbar';
15
+ import { Subject, ReplaySubject, BehaviorSubject, throwError, catchError } from 'rxjs';
16
+ import * as i1 from '@angular/common/http';
17
+ import { HttpHeaders } from '@angular/common/http';
18
+ import { map, startWith } from 'rxjs/operators';
19
+ import * as i3 from '@angular/material/tooltip';
20
+ import { MatTooltipModule, MatTooltip } from '@angular/material/tooltip';
21
+ import { MatExpansionPanel, MatAccordion, MatExpansionPanelTitle } from '@angular/material/expansion';
22
+ import { ComponentOutletIoDirective } from 'ng-dynamic-component';
23
+ import * as i1$2 from '@ncstate/sat-popover';
24
+ import { SatPopoverModule } from '@ncstate/sat-popover';
25
+ import * as moment from 'moment';
26
+ import * as i1$4 from '@angular/material/dialog';
4
27
  import { MAT_DIALOG_DATA, MatDialogContent, MatDialogActions, MatDialogClose, MatDialogTitle } from '@angular/material/dialog';
5
28
  import { MatButton } from '@angular/material/button';
6
- import { NgIf, NgClass, NgForOf, NgTemplateOutlet, NgSwitchCase, DecimalPipe, DatePipe, NgSwitchDefault, NgSwitch, AsyncPipe, SlicePipe, NgComponentOutlet } from '@angular/common';
7
- import { Subject, ReplaySubject, BehaviorSubject, catchError, throwError } from 'rxjs';
8
29
  import { NoopScrollStrategy } from '@angular/cdk/overlay';
9
- import * as i4 from '@angular/material/core';
30
+ import * as i4$1 from '@angular/material/core';
10
31
  import { MAT_DATE_FORMATS, DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
11
- import * as i1$1 from '@angular/forms';
12
- import { NG_VALUE_ACCESSOR, FormControl, ControlContainer, NgForm, FormsModule, Validators, ReactiveFormsModule } from '@angular/forms';
13
- import * as i2 from '@angular/common/http';
14
- import { HttpHeaders } from '@angular/common/http';
15
32
  import * as i7 from '@angular/platform-browser';
16
33
  import * as FileSaver from 'file-saver';
17
34
  import { ImageCropperComponent } from 'ngx-image-cropper';
18
35
  import { MatError, MatHint, MatFormField } from '@angular/material/form-field';
19
36
  import { MatCheckbox } from '@angular/material/checkbox';
20
- import { startWith, map } from 'rxjs/operators';
21
37
  import { MatSlideToggle } from '@angular/material/slide-toggle';
22
- import * as i1$3 from '@angular/material/autocomplete';
38
+ import * as i1$5 from '@angular/material/autocomplete';
23
39
  import { MatAutocomplete, MatOption, MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
24
40
  import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';
25
41
  import { MatDatepicker, MatDatepickerToggle, MatDatepickerInput } from '@angular/material/datepicker';
26
- import * as moment from 'moment';
27
- import * as i1$2 from '@ncstate/sat-popover';
28
- import { SatPopoverModule } from '@ncstate/sat-popover';
29
42
  import { NgxMaskDirective } from 'ngx-mask';
30
43
  import { MatInput } from '@angular/material/input';
31
44
  import { MatSelect, MatOption as MatOption$1, MatLabel, MatError as MatError$1, MatFormField as MatFormField$1 } from '@angular/material/select';
32
45
  import { MatProgressSpinner } from '@angular/material/progress-spinner';
33
46
  import { MatButtonToggleGroup, MatButtonToggle } from '@angular/material/button-toggle';
34
- import * as i2$1 from '@angular/material/table';
47
+ import * as i2 from '@angular/material/table';
35
48
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
36
- import * as i1$4 from '@angular/material/paginator';
49
+ import * as i1$6 from '@angular/material/paginator';
37
50
  import { MatPaginatorModule } from '@angular/material/paginator';
38
- import { RouterLink } from '@angular/router';
39
- import { MatMenu, MatMenuTrigger, MatMenuItem } from '@angular/material/menu';
40
51
  import { moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';
41
- import { MatTooltip } from '@angular/material/tooltip';
42
52
  import { MatRadioButton, MatRadioGroup } from '@angular/material/radio';
43
- import { MatAccordion, MatExpansionPanel, MatExpansionPanelTitle } from '@angular/material/expansion';
44
53
  import { MatDivider } from '@angular/material/divider';
45
- import { ComponentOutletIoDirective } from 'ng-dynamic-component';
46
-
47
- /* eslint-disable @angular-eslint/component-selector */
48
- /* eslint-disable @typescript-eslint/no-explicit-any */
49
- class ConfirmationPopupComponent {
50
- data;
51
- dialogRef;
52
- constructor(data, dialogRef) {
53
- this.data = data;
54
- this.dialogRef = dialogRef;
55
- }
56
- openForm() {
57
- window.open("/group/i-gate/wm-bpm/forms?formId=" + this.data.id);
58
- location.reload();
59
- }
60
- delete() {
61
- this.dialogRef.close('yes');
62
- }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
64
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ConfirmationPopupComponent, isStandalone: true, selector: "app-delete-popup", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
67
- type: Component,
68
- args: [{ selector: 'app-delete-popup', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
69
- MatDialogContent,
70
- MatDialogActions,
71
- MatButton,
72
- MatDialogClose,
73
- NgIf
74
- ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"] }]
75
- }], ctorParameters: () => [{ type: undefined, decorators: [{
76
- type: Inject,
77
- args: [MAT_DIALOG_DATA]
78
- }] }, { type: i1.MatDialogRef }] });
79
54
 
80
- /* eslint-disable @angular-eslint/component-selector */
81
- /* eslint-disable @typescript-eslint/no-empty-function */
82
- class DeletePopupComponent {
83
- constructor() { }
84
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeletePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DeletePopupComponent, isStandalone: true, selector: "app-delete-popup", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeletePopupComponent, decorators: [{
88
- type: Component,
89
- args: [{ selector: 'app-delete-popup', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
90
- MatDialogContent,
91
- MatDialogClose,
92
- MatDialogActions
93
- ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n" }]
94
- }], ctorParameters: () => [] });
55
+ // Constant for basic validations
56
+ const DONT_SHOW = null;
57
+ const NO_COMMENTS = false;
58
+ const HAS_COMMENTS = true;
59
+ const URL_SEPARATOR = '/';
60
+ const READ_ONLY = true;
61
+ const WRITE_MODE = false;
62
+ const NO_VALUE = null;
63
+ const TRUE_STRING = 'TRUE';
64
+ const FALSE_STRING = 'FALSE';
65
+ const TRUE_BOOL = true;
66
+ const FALSE_BOOL = false;
67
+ // State Machine statuses
68
+ const STATE_MACHINE_STATUS_IDLE = 'idle';
69
+ const STATE_MACHINE_STATUS_FETCHING = 'fetching';
70
+ const STATE_MACHINE_STATUS_SENDING = 'sending';
71
+ const STATE_MACHINE_STATUS_RESULT = 'result';
72
+ const STATE_MACHINE_STATUS_ERROR = 'error';
73
+ // State Machine actions
74
+ const STATE_MACHINE_ACTION_LOAD_FORM = 'loadForm';
75
+ const STATE_MACHINE_ACTION_SUBMIT_FORM = 'submitForm';
76
+ const STATE_MACHINE_ACTION_SEARCH_EMPLOYEE = 'searchEmployee';
77
+ const STATE_MACHINE_ACTION_EMPLOYEE_PROFILE = 'employeeProfile';
78
+ const STATE_MACHINE_ACTION_SUCCESS_WM = 'successWm';
79
+ const STATE_MACHINE_ACTION_SUCCESS_RESPONSE = 'serviceResponce';
80
+ const STATE_MACHINE_ACTION_SUCCESS_USERS = 'successUsers';
81
+ const STATE_MACHINE_ACTION_CONVERT = 'convert';
82
+ const STATE_MACHINE_ACTION_SUCCESS = 'success';
83
+ const STATE_MACHINE_ACTION_FAILURE = 'failure';
84
+ const STATE_MACHINE_ACTION_HANDLE_ERROR = 'handleError';
85
+ const STATE_MACHINE_ACTION_LOAD_FILE = 'loadFile';
86
+ const STATE_MACHINE_ACTION_USER_MAF = 'userDetails';
87
+ const STATE_MACHINE_ACTION_USER_CEP = 'user';
88
+ const STATE_MACHINE_ACTION_CALC = 'calc';
89
+ const STATE_MACHINE_ACTION_SHOW_PRINT = 'showPrint';
90
+ const STATE_MACHINE_ACTION_SUCCESS_PRINT = 'successPrint';
91
+ const SERVICE_NAME_WM_HTML_GENERATOR = 'htmlGenerator';
92
+ // Process name code
93
+ const PROCESS_NAME_CODE = 'SCR';
94
+ // HTTP protocols that are available
95
+ const HTTP_PROTOCOL_HTTP = 'http://';
96
+ const HTTP_PROTOCOL_HTTPS = 'https://';
97
+ // Liferay constants
98
+ // export const LR_AUTH_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/authenticate';
99
+ // export const LR_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/execute';
100
+ // export const LR_SERVICE_URL_HOST = '10.0.0.48';
101
+ // export const LR_SERVICE_URL_HOST_DEV = '10.0.0.156';
102
+ // export const LR_SERVICE_URL_PORT_DEV = '8000';
103
+ // export const LR_SERVICE_URL_PATH_DEV = '/new.json';
104
+ // export const LR_SERVICE_URL_PORT = '17899';
105
+ // HTTP methods that are available are
106
+ const HTTP_METHOD_GET = 'GET';
107
+ const HTTP_METHOD_POST = 'POST';
108
+ const HTTP_METHOD_PUT = 'PUT';
109
+ // Available servers to the UI
110
+ const TARGET_SERVER_WM = 'WM';
111
+ const TARGET_SERVER_DP = 'DP';
112
+ // Service Names that are available
113
+ const SERVICE_NAME_WM_FORM = 'form';
114
+ const SERVICE_NAME_WM_CHILD_FORM = '';
115
+ const SERVICE_NAME_DP_SEARCH_EMPLOYEE = 'igate.users.search.v3';
116
+ // Languages codes available in the application
117
+ const LANGUAGE_CODE_EN = 'en';
118
+ const LANGUAGE_CODE_AR = 'ar';
119
+ // URLs form static assets
120
+ const IGATE_STATIC_ASSET_PROFILE_PHOTO_URL = '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=';
121
+ const HEADER_CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded';
122
+ // Roles constants
123
+ const ROLE_REQUESTER = 'R';
124
+ // Section IDs
125
+ const SECTION_ID_REQUEST_DETAILS = 'requestDetails';
126
+ const SECTION_ID_GM_PARTIAL_ROLE = 'GM';
127
+ const SECTION_ID_SM_PARTIAL_ROLE = 'SM';
128
+ const SECTION_ID_DM_PARTIAL_ROLE = 'DM';
129
+ const SECTION_ID_VP_PARTIAL_ROLE = 'VP';
130
+ const SECTION_ID_SVP_PARTIAL_ROLE = 'SVP';
131
+ const SECTION_ID_EXECUTE_PARTIAL_ROLE = 'GovtRelationsLead';
132
+ const SECTION_ID_PERFORM_PARTIAL_ROLE = 'GovtRelationsMember';
133
+ const SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE = 'EmpInfo';
134
+ const SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE = 'Payroll';
135
+ const SECTION_ID_REQUESTER_PARTIAL_NAME = 'Requester';
136
+ const SECTION_ID_APPROVAL_PARTIAL_NAME = 'Approval';
137
+ const SECTION_ID_NOTHING_PARTIAL_NAME = '';
138
+ const SECTION_STATUS_PENDING = 'PENDING';
139
+ const SECTION_STATUS_APPROVED = 'APPROVED';
140
+ const SECTION_STATUS_UNSATISFIED = 'UNSATISFIED';
141
+ const WM_ACTION_SAVE = 'SAVE';
142
+ const WM_ACTION_SUBMIT = 'SUBMIT';
143
+ const FORM_STATUS_NEW = 'NEW';
144
+ const FORM_STATUS_PENDING = 'PENDING';
145
+ const FORM_STATUS_APPROVED = 'APPROVED';
146
+ const FORM_STATUS_REJECTED = 'REJECTED';
147
+ const FORM_STATUS_SEND_BACK = 'SENDBACK';
148
+ const FORM_STATUS_CANCELLED = 'CANCELLED';
149
+ const FORM_STATUS_COMPLETED = 'COMPLETED';
150
+ const STATE_MACHINE_ACTION_LOAD_HISTORY = 'loadHistory';
151
+ const STATE_MACHINE_ACTION_SUCCESS_HISTORY = 'successHistory';
152
+ const SERVICE_NAME_DP_LOAD_HISTORY = 'igate.get.inbox.item.workflow';
153
+ const WM_ACTION_SAVE_CHANGES = 'SAVE_CHANGES';
154
+ const SERVICE_NAME_WM_DRAFT_FORM = 'draft';
155
+ // feedback and flag
156
+ const STATE_MACHINE_ACTION_GET_INBOX_ITEM = 'getInboxItem';
157
+ const SERVICE_NAME_DP_INBOX_ITEM = 'igate.get.inbox.item';
158
+ const STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM = 'successInboxItem';
159
+ const STATE_MACHINE_ACTION_SET_FLAG = 'setFlagPriority';
160
+ const SERVICE_NAME_DP_UPDATE_INBOX_ITEM = 'igate.update.inbox.item';
161
+ const STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE = 'inboxItemResponse';
162
+ const FEEDBACK_STATUS_REQUEST = 'requestFeedback';
163
+ const FEEDBACK_STATUS_RESPOND = 'respondToFeedback';
164
+ const FEEDBACK_STATUS_WAITING = 'waitingFeedback';
165
+ const FEEDBACK_STATUS_RESPONDED = 'feedbackResponded';
166
+ const STATE_MACHINE_ACTION_SUBMIT_FEEDBACK = 'submitFeedback';
167
+ const STATE_MACHINE_ACTION_GET_FEEDBACK = 'getFeedback';
168
+ const STATE_MACHINE_ACTION_UPDATE_FEEDBACK = 'submitFeedbackResponse';
169
+ const SERVICE_NAME_DP_CREATE_FEEDBACK = 'igate.create.inbox.item.feedback';
170
+ const STATE_NAME_DP_GET_FEEDBACK = 'igate.get.inbox.item.feedback';
171
+ const SERVICE_NAME_DP_UPDATE_FEEDBACK = 'igate.update.inbox.item.feedback';
172
+ const PROFILE_CONTAINER = '#profileFormContent';
173
+ const COMMENT_CONTAINER = '#commentsFormContent';
174
+ const FEEDBACK_CONTAINER = '#feedbackFormContent';
175
+ const INBOX_STATUS_PENDING = 'pending';
176
+ const INBOX_STATUS_PROCESSED = 'processed';
177
+ const INBOX_STATUS_SENT = 'sent';
178
+ const REPORT = 'report';
179
+ const DATE_TIME = 'DD/MM/YYYY HH:mm:ss';
180
+ const DATE_DASH = 'DD-MMM-YYYY';
181
+ const DATE_SLASH = 'DD/MM/YYYY';
182
+ const SERVICE_NAME_WM_GET_APPROVED_REQUEST = 'requests';
183
+ const SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST = 'myRequests';
184
+ const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST = 'getApprovedRequest';
185
+ const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE = 'getApprovedRequestResponse';
186
+ const STATE_MACHINE_ACTION_PROJECT_MAF = 'projectDetails';
187
+ const STATE_MACHINE_ACTION_PROJECT_CEP = 'project';
188
+ const STATE_MACHINE_ACTION_COMMONAPI = 'commonApi';
189
+ const STATE_MACHINE_ACTION_SEARCH = 'search';
190
+ const STATE_MACHINE_ACTION_PPROVED_REQUESTS = 'approvedRequests';
191
+ const GETSIPORTENTRYGROUPS = 'getSiportEntryGroups';
192
+ const GETSIPORTENTRYLOCATIONS = 'getSiportEntryLocations';
193
+ const STATE_MACHINE_ACTION_SUCCESS_SERVICES = 'serviceResponce';
194
+ const SERVICE_NAME_MAF = 'MAF';
195
+ const SERVICE_NAME_CEP = 'CEP';
196
+ const STATE_MACHINE_ACTION_PDF = 'pdfAttachments';
197
+ const LOGOUT_URL = '/c/portal/logout';
95
198
 
96
199
  var en = {
97
200
  "pageTimeOut": 'Looks like the server is taking too long to respond, this can be caused by either poor connectivity or an error with our servers. Please try again in a while',
@@ -561,236 +664,1303 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
561
664
  }]
562
665
  }] });
563
666
 
564
- /* eslint-disable @typescript-eslint/no-explicit-any */
565
- /* eslint-disable @angular-eslint/component-selector */
566
- class DeleteDialogComponent {
567
- dialogRef;
568
- i18n;
569
- constructor(dialogRef, i18n) {
570
- this.dialogRef = dialogRef;
571
- this.i18n = i18n;
572
- }
573
- delete() {
574
- this.dialogRef.close('yes');
575
- }
576
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeleteDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
577
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DeleteDialogComponent, isStandalone: true, selector: "app-delete-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
578
- }
579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeleteDialogComponent, decorators: [{
580
- type: Component,
581
- args: [{ selector: 'app-delete-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
582
- MatDialogContent,
583
- MatDialogClose
584
- ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"] }]
585
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: CoreI18nService }] });
586
-
587
- /* eslint-disable @typescript-eslint/no-explicit-any */
588
- /* eslint-disable @angular-eslint/component-selector */
589
- class SubmitDialogComponent {
590
- data;
591
- i18n;
592
- successData;
593
- inboxUri;
594
- constructor(data, i18n) {
595
- this.data = data;
596
- this.i18n = i18n;
597
- this.successData = data;
598
- this.inboxUri = window.wmConfig.inboxUri;
667
+ class CoreService {
668
+ http;
669
+ config;
670
+ apiUrl = '';
671
+ authToken;
672
+ refreshToken;
673
+ projectConfig;
674
+ userData;
675
+ localUser;
676
+ loggedInUserData;
677
+ constructor(http, config) {
678
+ this.http = http;
679
+ this.config = config;
680
+ const language = window?.wmConfig?.language ? window.wmConfig.language : 'en';
681
+ this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;
682
+ console.log('Config: ', this.config); // for testing purposes only
683
+ this.localUser = {
684
+ "formPrefix": "CEP",
685
+ "formId": "CEP5595432",
686
+ "inboxUri": "\/group\/hub\/inbox",
687
+ "baseUrl": "\/group\/i-gate\/wm-bpm\/forms\/-\/proxy",
688
+ "showPrint": true,
689
+ "language": "en",
690
+ "isMobile": true,
691
+ "outlook": false,
692
+ "loggedInUserEmail": "ibrahimmaa.c@stc.com.sa"
693
+ };
694
+ this.projectConfig = (this.config.production) ? window['wmConfig'] : btoa(JSON.stringify(this.localUser));
695
+ this.userData = JSON.parse(atob(this.projectConfig));
696
+ }
697
+ getLoggedInUserData() {
698
+ let loggedInEmail = this.loggedInUserId();
699
+ this.employeeProfile(loggedInEmail).subscribe((response) => {
700
+ this.loggedInUserData = response?.["Users"]?.[0];
701
+ console.log('getLoggedInUserData', response);
702
+ });
599
703
  }
600
- backHome() {
601
- const url = window.wmConfig.inboxUri;
602
- //console.log(" inboxUri ",url)
603
- window.location.href = url;
704
+ loadForm() {
705
+ const authUrl = this.buildAuthUrl();
706
+ return this.http.get(authUrl, { observe: 'response' }).toPromise()
707
+ .then((res) => {
708
+ const tokenInformation = res.body;
709
+ this.authToken = tokenInformation.token;
710
+ this.getLoggedInUserData();
711
+ this.refreshToken = tokenInformation.refreshToken;
712
+ const body = this.buildBody();
713
+ const options = this.getRequestOptions();
714
+ return this.callPost(body, options);
715
+ })
716
+ .catch((httpError) => {
717
+ return throwError(httpError);
718
+ });
604
719
  }
605
- getImage(email) {
606
- if (email) {
607
- return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;
720
+ buildAuthUrl() {
721
+ const baseUrl = this.config.proxyServiceBaseUrl;
722
+ const language = window?.wmConfig?.language ? window.wmConfig.language : 'en';
723
+ const fullAddress = this.config.proxyFullAddress;
724
+ const authPart = this.config.proxyServiceAuthorization;
725
+ return `${baseUrl}${language}${fullAddress}${authPart}?ts=${(new Date()).valueOf()}`;
726
+ }
727
+ buildBody() {
728
+ const baseBody = {
729
+ method: HTTP_METHOD_GET,
730
+ destination: TARGET_SERVER_WM,
731
+ serviceName: SERVICE_NAME_WM_FORM,
732
+ formName: this.config.formName,
733
+ formId: "",
734
+ queryParameters: null
735
+ };
736
+ if (!this.config.formId) {
737
+ delete baseBody.formId;
608
738
  }
609
739
  else {
610
- return '';
611
- }
612
- }
613
- viewForm(formId, formName) {
614
- if (formId) {
615
- if (formId?.toLowerCase().includes('draft')) {
616
- window.open(`/group/i-gate/wm-bpm/forms?formName=${formName}&formId=${formId}`);
617
- return;
740
+ baseBody.formId = this.config.formId;
741
+ }
742
+ return baseBody;
743
+ }
744
+ employeeProfile(employeeEmail) {
745
+ let body = {
746
+ method: "GET",
747
+ formName: "AAI",
748
+ destination: "DP",
749
+ serviceName: "igate.users.search.v3",
750
+ parameters: {
751
+ q: employeeEmail
618
752
  }
619
- window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);
620
- }
753
+ };
754
+ return this.http.post(this.apiUrl, body, {
755
+ headers: new HttpHeaders({
756
+ authToken: this.authToken,
757
+ "Content-Type": "application/x-www-form-urlencoded"
758
+ }),
759
+ observe: "body"
760
+ }).pipe(map((response) => {
761
+ return response;
762
+ }), catchError((err) => {
763
+ return throwError(err);
764
+ }));
621
765
  }
622
- getStatus(statusKey) {
623
- switch (statusKey) {
624
- case 'APPROVED':
625
- return 'success';
626
- case 'COMPLETED':
627
- return 'success';
628
- case 'REJECTED':
629
- return 'danger';
630
- case 'CANCELLED':
631
- return 'danger';
632
- case 'PENDING':
633
- return 'warning';
634
- default:
635
- return '';
636
- break;
766
+ getRequestOptions() {
767
+ return {
768
+ headers: new HttpHeaders({
769
+ authToken: this.authToken,
770
+ 'Content-Type': HEADER_CONTENT_TYPE_FORM
771
+ }),
772
+ observe: 'body'
773
+ };
774
+ }
775
+ callPost(body, options) {
776
+ const language = window?.wmConfig?.language ? window.wmConfig.language : "en";
777
+ let apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;
778
+ return this.http.post(apiUrl, encodeURIComponent(JSON.stringify(body)), options).toPromise()
779
+ .then((responseObject) => {
780
+ // let payload = responseObject.body;
781
+ return this.successWm(responseObject);
782
+ }).catch((httpError) => {
783
+ return throwError(httpError);
784
+ });
785
+ }
786
+ successWm(...args) {
787
+ let [payload] = args;
788
+ // let wasSendBack = false;
789
+ /* Convert into Form Object */
790
+ let result = new Form(NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE);
791
+ /* Generate Header Object */
792
+ let payloadFormDetails = payload.data.form;
793
+ let isReadOnly = (payloadFormDetails.readOnly.toUpperCase() === TRUE_STRING ? TRUE_BOOL : (payloadFormDetails.readOnly.toUpperCase() === FALSE_STRING ? FALSE_BOOL : NO_VALUE));
794
+ result.header = new Header(payload.data['requester'].fullName, IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + payload.data['requester'].employeeEmail, (payloadFormDetails.formId ? payloadFormDetails.formId : DONT_SHOW), (payloadFormDetails.creationDate ? payloadFormDetails.creationDate : DONT_SHOW), payloadFormDetails['formStatus'], payloadFormDetails.details);
795
+ /* Generate Profile Information Object */
796
+ let payloadProfileInfo = payload.data['requester'];
797
+ result.profileInfoDrop = new ProfileInfoDrop((payloadProfileInfo.onBehalfAuthorized ? JSON.parse(payloadProfileInfo.onBehalfAuthorized) : null), payloadProfileInfo['employeeId'], payloadProfileInfo.employeeEmail, payloadProfileInfo.fullName, payloadProfileInfo.generalDepartmentName, payloadProfileInfo.jobPosition, payloadProfileInfo.sectorName, payloadProfileInfo.departmentName, payloadProfileInfo.generalDepartmentCode, payloadProfileInfo['humanResourceLocation'], payloadProfileInfo.nationality, payloadProfileInfo.businessPhone, payloadProfileInfo.directManagerName, payloadProfileInfo.seniorSectorName);
798
+ /* Generate Sections Object */
799
+ result.sections = [];
800
+ /* Push as first object the section for the request details */
801
+ let requestDetailsHasComment = false;
802
+ if (payload.data.request.details.comment) {
803
+ requestDetailsHasComment = true;
804
+ }
805
+ result.sections.push(new Section(SECTION_ID_REQUEST_DETAILS, new SectionHeader(DONT_SHOW, DONT_SHOW, DONT_SHOW, DONT_SHOW, DONT_SHOW, DONT_SHOW, DONT_SHOW, requestDetailsHasComment, (payload.data['workflowSteps'] ? READ_ONLY : isReadOnly)), payload.data.request));
806
+ /* if (result.header.formId) {
807
+ result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);
808
+ this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_HISTORY, result.header.formId).then((responseObject: any) => {
809
+ if (responseObject) {
810
+ responseObject.items.forEach((item: any) => {
811
+ if (item.sequenceNumber !== '0' && item.processedBy) {
812
+ const name = item.processedBy.firstName + ' ' + item.processedBy.secondMiddleName + ' ' + item.processedBy.familyName;
813
+ result.commentsDrop.push(new CommentsDrop(
814
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + item.processedBy.email,
815
+ name,
816
+ item.comments,
817
+ item.modifiedDate,
818
+ item.attachments,
819
+ item.processedBy.job
820
+ ));
821
+ }
822
+ });
823
+ }
824
+ });
825
+ }
826
+ if (result.header.formId && /^DYL/.test(result.header.formId)) {
827
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
828
+ result.confidentialComments = [];
829
+ this.dispatch('loadConfidentialComments', result.header.formId).then((responseObject: any) => {
830
+ if (responseObject && responseObject.items && responseObject.items.length > 0) {
831
+ responseObject.items.forEach((item: any) => {
832
+ result.confidentialComments.push(new CommentsDrop(
833
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + item.email,
834
+ item.name,
835
+ item.comment,
836
+ item.modifiedDate,
837
+ item.attachment,
838
+ item.position
839
+ ));
840
+ })
841
+ }
842
+ });
843
+ }
844
+
845
+ const inboxType = this.getInboxType(result);
846
+ if (result.header.formId && (!this.isOpenOnInbox())) {
847
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
848
+ this.dispatch(constants.STATE_MACHINE_ACTION_GET_INBOX_ITEM, result.header.formId, inboxType).then((responseObject) => {
849
+ if (responseObject) {
850
+ const item = responseObject.item;
851
+ result.inboxItem = new InboxItem(
852
+ item.flagging.flagPriority,
853
+ item.flagging.isFlagged,
854
+ item.feedback.canRequestFeedback,
855
+ item.feedback.hasFeedback,
856
+ item.feedback.isPending,
857
+ item.feedback.isRequested,
858
+ item.feedback.isResponded
859
+ );
860
+ }
861
+ });
862
+ }
863
+
864
+ let payloadWorkflowSteps = payload.data.workflowSteps;
865
+ if (payloadWorkflowSteps && payloadWorkflowSteps.constructor === Array && payloadWorkflowSteps.length > 0) {
866
+ payloadWorkflowSteps.forEach((step, index) => {
867
+ let currentIsRequesterSendBack = JSON.stringify(step.details) === JSON.stringify({});
868
+ let hasComments = (!currentIsRequesterSendBack && (step.details.comment || step.comment) ? constants.HAS_COMMENTS : constants.NO_COMMENTS);
869
+ let currentActor = (step.actor.email === step.actor.recipient.email ? step.actor.recipient : (step.actor.delegate ? step.actor.delegate : null))
870
+ if (hasComments) {
871
+ result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);
872
+ if (step.details.attachment && step.details.attachment.attachmentId && this.config.production) {
873
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
874
+ this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attachment.attachmentId).then((responseObject) => {
875
+ let fileInformation = responseObject.body;
876
+ if (currentActor) {
877
+ /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {
878
+ result.commentsDrop.push(new CommentsDrop(
879
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,
880
+ currentActor.name,
881
+ (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),
882
+ step.date,
883
+ fileInformation.fileName + "|data:" + fileInformation.mimeType + ";base64," + fileInformation.fileContents,
884
+ profile.job.name
885
+ ))
886
+ })*!/
887
+ }
888
+ });
889
+ this.state = constants.STATE_MACHINE_STATUS_FETCHING;
890
+ } else if (step.details.attachmentId) {
891
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
892
+ this.dispatch(constants.STATE_MACHINE_ACTION_LOAD_FILE, step.details.attchmentId).then((responseObject) => {
893
+ let fileInformation = responseObject.body;
894
+ if (currentActor) {
895
+ /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {
896
+ result.commentsDrop.push(new CommentsDrop(
897
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,
898
+ currentActor.name,
899
+ (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),
900
+ step.date,
901
+ fileInformation.fileName + "|data:" + fileInformation.mimeType + ";base64," + fileInformation.fileContents,
902
+ profile.job.name
903
+ ))
904
+ })*!/
905
+ }
906
+ });
907
+ this.state = constants.STATE_MACHINE_STATUS_FETCHING;
908
+ } else {
909
+ if (currentActor) {
910
+ this.state = constants.STATE_MACHINE_STATUS_IDLE;
911
+ /!*this.dispatch(constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, currentActor.email).then((profile) => {
912
+ result.commentsDrop.push(new CommentsDrop(
913
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + currentActor.email,
914
+ currentActor.name,
915
+ (step.details.comment ? step.details.comment : (step.comment ? step.comment : null)),
916
+ step.date,
917
+ null,
918
+ profile.job.name
919
+ ))
920
+ })*!/
921
+ }
922
+ this.state = constants.STATE_MACHINE_STATUS_FETCHING;
923
+ }
924
+ }
925
+
926
+ if (wasSendBack && step.actor.recipient.role === 'REQUESTER') {
927
+ console.log("wasSendBack && REQUESTER")
928
+ result.sections = [new Section(
929
+ constants.SECTION_ID_REQUEST_DETAILS,
930
+ new SectionHeader(
931
+ constants.DONT_SHOW,
932
+ constants.DONT_SHOW,
933
+ constants.DONT_SHOW,
934
+ constants.DONT_SHOW,
935
+ constants.DONT_SHOW,
936
+ constants.DONT_SHOW,
937
+ constants.DONT_SHOW,
938
+ requestDetailsHasComment,
939
+ (payload.data.workflowSteps ? constants.READ_ONLY : isReadOnly)
940
+ ),
941
+ payload.data.request
942
+ )]
943
+ } else if (wasSendBack) {
944
+ console.log("Pop")
945
+ if (result.sections.length > 1) {
946
+ result.sections.pop();
947
+ }
948
+ wasSendBack = false;
949
+ }
950
+ if (step.details.decision && step.details.decision.key === constants.FORM_STATUS_SEND_BACK) {
951
+ wasSendBack = true;
952
+ } else if (JSON.stringify(step.details) !== JSON.stringify({})) {
953
+ result.sections.push(
954
+ new Section(
955
+ step.actor.recipient.role.toLowerCase() + constants.SECTION_ID_APPROVAL_PARTIAL_NAME,
956
+ new SectionHeader(
957
+ (currentActor ? this.getShortName(currentActor.name) : null),
958
+ step.date,
959
+ this.getShortName(step.actor.recipient.name),
960
+ constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.recipient.email,
961
+ (step.actor.delegate && step.actor.delegate.name ? this.getShortName(step.actor.delegate.name) : null),
962
+ (step.actor.delegate && step.actor.delegate.email ? constants.IGATE_STATIC_ASSET_PROFILE_PHOTO_URL + step.actor.delegate.email : null),
963
+ step.actor.status,
964
+ hasComments,
965
+ (index < payloadWorkflowSteps.length - 1 ? constants.READ_ONLY : isReadOnly)
966
+ ),
967
+ {details: step.details, processingDate: step.date}
968
+ )
969
+ );
970
+ this.currentSubmitter = {actor: step.actor, recipient: step.recipient, delegate: step.actor.delegate};
971
+ }
972
+ });
973
+ }
974
+ */
975
+ /* Create Lov Sections */
976
+ result.lovs = (payload.meta && payload.meta.lovs ? payload.meta.lovs : null);
977
+ if (payload.meta && payload.meta.messages) {
978
+ result.messages = new Messages({}, [], [], []);
979
+ payload.meta.messages.forEach((message) => {
980
+ result.messages.originalMsgs.push(message);
981
+ result.messages[message.type].push(message.message);
982
+ });
637
983
  }
984
+ // result.messages = (payload.meta && payload.meta.messages ? payload.meta.messages : null);
985
+ /* Fix last section to be the RO/WM from the variable */
986
+ result.sections[result.sections.length - 1].header.readOnly = isReadOnly;
987
+ return result;
638
988
  }
639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SubmitDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
640
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SubmitDialogComponent, isStandalone: true, selector: "app-submit-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormId')}}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.formName)\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormStatus')}}</span>\r\n <ds-status class=\"disc\" [status]=\"getStatus(successData?.status?.key)\">\r\n {{ successData.status?.value }}\r\n </ds-status>\r\n </div>\r\n <div class=\"info-item px-3\" *ngIf=\"successData?.status?.key === 'PENDING'\">\r\n <!-- <span class=\"name fs-16-imp\">{{i18n.translate('formTablePendingWith')}}</span> -->\r\n\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(successData?.nextApprover?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{successData?.nextApprover?.name}}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{successData?.nextApprover?.email}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--<div class=\"d-flex align-items-center gap-3 mt-3\" *ngIf=\"!stateMachineService.isMobileApp()\">\r\n <ds-button >\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{i18n.translate('formTableBackToInbox')}}</a>\r\n </ds-button>\r\n </div>-->\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: [".inboxUri{color:#fff!important}.inboxUri:hover{color:#ff375e!important}ds-button:hover a{color:#ff375e!important}\n"], dependencies: [{ kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
989
+ loggedInUserId() {
990
+ return this.userData['loggedInUserEmail'];
991
+ }
992
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CoreService, deps: [{ token: i1.HttpClient }, { token: MY_LIB_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
993
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CoreService, providedIn: "any" });
641
994
  }
642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SubmitDialogComponent, decorators: [{
643
- type: Component,
644
- args: [{ selector: 'app-submit-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
645
- MatDialogClose,
646
- MatDialogContent,
647
- NgIf
648
- ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormId')}}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.formName)\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormStatus')}}</span>\r\n <ds-status class=\"disc\" [status]=\"getStatus(successData?.status?.key)\">\r\n {{ successData.status?.value }}\r\n </ds-status>\r\n </div>\r\n <div class=\"info-item px-3\" *ngIf=\"successData?.status?.key === 'PENDING'\">\r\n <!-- <span class=\"name fs-16-imp\">{{i18n.translate('formTablePendingWith')}}</span> -->\r\n\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(successData?.nextApprover?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{successData?.nextApprover?.name}}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{successData?.nextApprover?.email}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--<div class=\"d-flex align-items-center gap-3 mt-3\" *ngIf=\"!stateMachineService.isMobileApp()\">\r\n <ds-button >\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{i18n.translate('formTableBackToInbox')}}</a>\r\n </ds-button>\r\n </div>-->\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: [".inboxUri{color:#fff!important}.inboxUri:hover{color:#ff375e!important}ds-button:hover a{color:#ff375e!important}\n"] }]
649
- }], ctorParameters: () => [{ type: undefined, decorators: [{
995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CoreService, decorators: [{
996
+ type: Injectable,
997
+ args: [{
998
+ providedIn: "any"
999
+ }]
1000
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
650
1001
  type: Inject,
651
- args: [MAT_DIALOG_DATA]
652
- }] }, { type: CoreI18nService }] });
1002
+ args: [MY_LIB_CONFIG_TOKEN]
1003
+ }] }] });
653
1004
 
654
- /* eslint-disable @typescript-eslint/no-explicit-any */
655
- /* eslint-disable @angular-eslint/component-selector */
656
- //import { CoreI18nService} from '../../../../services';
657
- class ConfirmDialogComponent {
658
- dialogRef;
659
- i18n;
660
- constructor(dialogRef, i18n) {
661
- this.dialogRef = dialogRef;
662
- this.i18n = i18n;
1005
+ class HeaderComponent {
1006
+ translate;
1007
+ sidenavService;
1008
+ coreService;
1009
+ router;
1010
+ platformId;
1011
+ search = new FormControl('');
1012
+ sidenavSubscription;
1013
+ isSidenavOpened = false;
1014
+ device = '';
1015
+ isMobile;
1016
+ userData;
1017
+ userName;
1018
+ constructor(translate, sidenavService, coreService, router, platformId) {
1019
+ this.translate = translate;
1020
+ this.sidenavService = sidenavService;
1021
+ this.coreService = coreService;
1022
+ this.router = router;
1023
+ this.platformId = platformId;
1024
+ this.device = navigator.userAgent;
1025
+ if (this.isMobile) {
1026
+ document.documentElement.classList.add('inside-mobile-app');
1027
+ }
1028
+ }
1029
+ setLanguage() {
1030
+ const targetLang = this.translate.getLanguage() === 'en' ? 'ar' : 'en';
1031
+ let url = location.origin + `/${targetLang}/group/i-gate/asset-management`;
1032
+ window.open(url, '_self');
1033
+ }
1034
+ logout() {
1035
+ let logoutUrl = LOGOUT_URL;
1036
+ localStorage.removeItem('token');
1037
+ localStorage.removeItem('userName');
1038
+ localStorage.removeItem('user');
1039
+ const userSelectedLanguage = localStorage.getItem('language') ?? 'en';
1040
+ sessionStorage.clear();
1041
+ localStorage.setItem('language', userSelectedLanguage);
1042
+ window.open(logoutUrl, '_self');
663
1043
  }
664
- confirm() {
665
- this.dialogRef.close('yes');
666
- //////
1044
+ ngOnInit() {
1045
+ this.sidenavSubscription = this.sidenavService.sideNavOpened.subscribe((val) => {
1046
+ this.isSidenavOpened = val;
1047
+ });
667
1048
  }
668
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
669
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
1049
+ ngAfterViewInit() {
1050
+ setTimeout(() => {
1051
+ console.log('xx', this.coreService.loggedInUserData);
1052
+ }, 1000);
1053
+ }
1054
+ toggleSideNav() {
1055
+ document.documentElement.classList.toggle('main-sidenav-opened');
1056
+ this.sidenavService.sideNavOpened.next(!this.isSidenavOpened);
1057
+ }
1058
+ openDemandRequest() {
1059
+ // this.sidenavService.publish('open', DemandRequestComponent, 'end', 'over');
1060
+ }
1061
+ openTicket() {
1062
+ // this.sidenavService.publish('open', OpenTicketComponent, 'end', 'over');
1063
+ }
1064
+ openEService() {
1065
+ // this.sidenavService.publish('open', VhrComponent, 'end', 'over');
1066
+ }
1067
+ // goToAdmin() {
1068
+ // this.router.navigate(['/admin']);
1069
+ // }
1070
+ openApp(url) {
1071
+ window.open(url, '_blank')?.focus();
1072
+ }
1073
+ ngOnDestroy() {
1074
+ // this.sidenavSubscription.unsubscribe()
1075
+ }
1076
+ location = location;
1077
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, deps: [{ token: CoreI18nService }, { token: SidenavService }, { token: CoreService }, { token: i1$1.Router }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
1078
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: HeaderComponent, isStandalone: true, selector: "app-header", ngImport: i0, template: "<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ userData?.firstName }} {{ userData?.lastName }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ userData?.firstName }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n", styles: [".test-user-agent{position:fixed;top:90px;width:100%;z-index:99999;color:#fff}ds-button[square].burger-menu::part(base){--btn-padding: 10px;margin-bottom:-1px;width:37px;height:37px;--default-size: 37px}[dir=rtl] :host ds-button::part(overlay){inset:0}mat-toolbar{background-color:var(--main-toolbar-bc);height:var(--main-toolbar-height);position:fixed;top:0;z-index:var(--main-toolbar-zIndex);border-bottom:1px solid var(--light-gray)!important}mat-toolbar .logo img{min-width:100px}@media (max-width: 991px){.user-menu-btn::part(base){border:0px;padding:0;--default-size: 40px}.user-menu-btn::part(overlay){border-radius:50%}.user-menu-btn::part(label),.user-menu-btn::part(suffix){display:none}}:host::ng-deep .avatar{min-width:24px;width:24px;height:24px;background-color:transparent}:host::ng-deep ds-button.add::part(base){--btn-bg-color: var(--coral)}@media (max-width: 991px){:host::ng-deep .avatar{min-width:40px;width:40px;height:40px}:host::ng-deep .avatar .avatar--x-small{--default-size: 40px}}.linkS{position:fixed;z-index:2;bottom:100px;right:20px}.dashboard-menu-icon{display:inline-flex;align-items:center;justify-content:center;min-width:56px;width:56px;height:56px;border-radius:50%;background-color:var(--coral);margin-bottom:10px}::ng-deep .inside-mobile-app{--main-toolbar-height: 0px}::ng-deep ds-button.transparent::part(base){--btn-bg-color: transparent;--btn-border-color: transparent;--btn-overlay-color: transparent}::ng-deep .mat-divider-vertical{border-right-color:var(--black)}.mat-divider{--mat-divider-width: 1px;--mat-divider-color: var(--dark-gray)}.header-search{width:500px}@media (max-width: 1130px){.header-search{width:200px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }] });
670
1079
  }
671
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
1080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HeaderComponent, decorators: [{
672
1081
  type: Component,
673
- args: [{ selector: 'app-confirm-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
674
- MatDialogContent,
675
- MatDialogClose
676
- ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"] }]
677
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: CoreI18nService }] });
1082
+ args: [{ selector: 'app-header', standalone: true, imports: [
1083
+ CommonModule,
1084
+ ReactiveFormsModule,
1085
+ RouterModule,
1086
+ MatMenuModule,
1087
+ MatToolbarModule
1088
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<ng-container *ngIf=\"!isMobile\">\r\n <mat-toolbar\r\n class=\"align-items-center justify-content-between gap-3 border-bottom\"\r\n >\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n icon\r\n color=\"light-gray\"\r\n square\r\n (click)=\"toggleSideNav()\"\r\n >\r\n <ds-icon icon=\"burger-menu-1\" class=\"fs-24 fc-dark-gray\"></ds-icon>\r\n </ds-button>\r\n\r\n <a [href]=\"location.origin\">\r\n <figure class=\"m-0 d-flex\">\r\n <img class=\"main-logo\" src=\"assets/images/hub.svg\" alt=\"\" />\r\n </figure>\r\n </a>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button\r\n shape=\"flat\"\r\n color=\"light-gray\"\r\n class=\"user-menu-btn\"\r\n [matMenuTriggerFor]=\"userMenu\"\r\n >\r\n <ds-avatar\r\n image=\"/group/i-gate/wm-bpm/forms/-/proxy/portrait?email={{userData?.email}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user2.jpg'\"\r\n slot=\"prefix\"\r\n class=\"avatar\"\r\n >\r\n </ds-avatar>\r\n\r\n <span class=\"fs-14 fw-medium fc-black\">\r\n {{ userData?.firstName }} {{ userData?.lastName }}\r\n </span>\r\n\r\n <ds-icon\r\n slot=\"suffix\"\r\n icon=\"arrow\"\r\n class=\"fc-dark-gray fs-16\"\r\n ></ds-icon>\r\n </ds-button>\r\n </div>\r\n </mat-toolbar>\r\n\r\n <!-- User Menu -->\r\n <mat-menu #userMenu=\"matMenu\" class=\"user-menu\">\r\n <div mat-menu-item>\r\n <span class=\"fs-14\">{{ translate.translate('welcome') }}, </span>\r\n <br />\r\n <span class=\"fs-14 fw-medium line-height-1\">{{ userData?.firstName }}</span>\r\n </div>\r\n <button mat-menu-item (click)=\"setLanguage()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"globe\" class=\"fs-25 fc-purple\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('otherLang')\r\n }}</span>\r\n </div>\r\n </button>\r\n <button mat-menu-item (click)=\"logout()\">\r\n <div class=\"d-flex align-items-center gap-2\">\r\n <ds-icon icon=\"logout\" class=\"fs-25 fc-red\"></ds-icon>\r\n <span class=\"fs-14 fw-medium fc-black\">{{\r\n translate.translate('logout')\r\n }}</span>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n</ng-container>\r\n", styles: [".test-user-agent{position:fixed;top:90px;width:100%;z-index:99999;color:#fff}ds-button[square].burger-menu::part(base){--btn-padding: 10px;margin-bottom:-1px;width:37px;height:37px;--default-size: 37px}[dir=rtl] :host ds-button::part(overlay){inset:0}mat-toolbar{background-color:var(--main-toolbar-bc);height:var(--main-toolbar-height);position:fixed;top:0;z-index:var(--main-toolbar-zIndex);border-bottom:1px solid var(--light-gray)!important}mat-toolbar .logo img{min-width:100px}@media (max-width: 991px){.user-menu-btn::part(base){border:0px;padding:0;--default-size: 40px}.user-menu-btn::part(overlay){border-radius:50%}.user-menu-btn::part(label),.user-menu-btn::part(suffix){display:none}}:host::ng-deep .avatar{min-width:24px;width:24px;height:24px;background-color:transparent}:host::ng-deep ds-button.add::part(base){--btn-bg-color: var(--coral)}@media (max-width: 991px){:host::ng-deep .avatar{min-width:40px;width:40px;height:40px}:host::ng-deep .avatar .avatar--x-small{--default-size: 40px}}.linkS{position:fixed;z-index:2;bottom:100px;right:20px}.dashboard-menu-icon{display:inline-flex;align-items:center;justify-content:center;min-width:56px;width:56px;height:56px;border-radius:50%;background-color:var(--coral);margin-bottom:10px}::ng-deep .inside-mobile-app{--main-toolbar-height: 0px}::ng-deep ds-button.transparent::part(base){--btn-bg-color: transparent;--btn-border-color: transparent;--btn-overlay-color: transparent}::ng-deep .mat-divider-vertical{border-right-color:var(--black)}.mat-divider{--mat-divider-width: 1px;--mat-divider-color: var(--dark-gray)}.header-search{width:500px}@media (max-width: 1130px){.header-search{width:200px}}\n"] }]
1089
+ }], ctorParameters: () => [{ type: CoreI18nService }, { type: SidenavService }, { type: CoreService }, { type: i1$1.Router }, { type: undefined, decorators: [{
1090
+ type: Inject,
1091
+ args: [PLATFORM_ID]
1092
+ }] }] });
678
1093
 
679
- class FormatAsPasswordPipe {
680
- transform(value) {
681
- if (typeof value === 'number')
682
- value = value.toString();
683
- const length = value.length;
684
- return '*'.repeat(length);
1094
+ class SideNavComponent {
1095
+ sidenavService;
1096
+ router;
1097
+ isOpened = false;
1098
+ lang = '';
1099
+ Menu = [
1100
+ {
1101
+ name: 'Home',
1102
+ routerLink: '/group/hub/home1',
1103
+ icon: 'home-o',
1104
+ matmenu: false,
1105
+ List: []
1106
+ },
1107
+ {
1108
+ name: 'Inbox',
1109
+ routerLink: '/group/hub/inbox',
1110
+ icon: 'mail-o',
1111
+ matmenu: false,
1112
+ List: []
1113
+ },
1114
+ {
1115
+ name: 'Dobox',
1116
+ routerLink: '/group/hub/dobox',
1117
+ icon: 'chick-sqaure',
1118
+ matmenu: false,
1119
+ List: []
1120
+ },
1121
+ {
1122
+ name: 'Chat',
1123
+ routerLink: '/group/hub/chat',
1124
+ icon: 'chat-circle-2',
1125
+ matmenu: false,
1126
+ List: []
1127
+ },
1128
+ {
1129
+ name: 'Mail',
1130
+ routerLink: '/group/hub/mail',
1131
+ icon: 'mail-f',
1132
+ matmenu: false,
1133
+ List: []
1134
+ },
1135
+ {
1136
+ name: 'Meetings',
1137
+ routerLink: '/group/hub/meetings',
1138
+ icon: 'calendar',
1139
+ matmenu: false,
1140
+ List: []
1141
+ },
1142
+ {
1143
+ name: 'Offers',
1144
+ routerLink: '/group/hub/hub-offers',
1145
+ icon: 'voucher',
1146
+ matmenu: false,
1147
+ List: []
1148
+ },
1149
+ {
1150
+ name: 'stc today',
1151
+ routerLink: '/group/hub/stc-profile',
1152
+ icon: 'stc-profile-o',
1153
+ matmenu: false,
1154
+ List: []
1155
+ },
1156
+ {
1157
+ name: 'Articles',
1158
+ routerLink: '/group/hub/articles',
1159
+ icon: 'file-returned',
1160
+ matmenu: false,
1161
+ List: []
1162
+ },
1163
+ {
1164
+ name: 'Timeline',
1165
+ routerLink: '/group/hub/timeline',
1166
+ icon: 'list-dots',
1167
+ matmenu: false,
1168
+ List: []
1169
+ },
1170
+ {
1171
+ name: 'eforms',
1172
+ routerLink: '/group/hub/efroms',
1173
+ icon: 'file-o',
1174
+ matmenu: false,
1175
+ List: []
1176
+ },
1177
+ {
1178
+ name: 'Apps',
1179
+ routerLink: '/group/hub/apps',
1180
+ icon: 'card',
1181
+ matmenu: false,
1182
+ List: []
1183
+ },
1184
+ ];
1185
+ constructor(sidenavService, router) {
1186
+ this.sidenavService = sidenavService;
1187
+ this.router = router;
685
1188
  }
686
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
687
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, name: "formatAsPassword" });
688
- }
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, decorators: [{
690
- type: Pipe,
691
- args: [{
692
- name: 'formatAsPassword'
693
- }]
694
- }] });
695
-
696
- /* eslint-disable no-useless-escape */
697
- class MycurrencyPipe {
698
- prefix;
699
- decimal_separator;
700
- thousands_separator;
701
- suffix;
702
- constructor() {
703
- this.prefix = '';
704
- this.suffix = '';
705
- this.decimal_separator = '.';
706
- this.thousands_separator = ',';
1189
+ closeSidenav() {
1190
+ document.documentElement.classList.remove('main-sidenav-opened');
1191
+ // this.sidenavService.sideNavOpened.next(false);
707
1192
  }
708
- transform(value, allowNegative = false, decimalPrecision = 2) {
709
- if (value == undefined || value === '') {
710
- return null;
1193
+ navigateTo(item) {
1194
+ window.location.href = item.routerLink;
1195
+ }
1196
+ innerWidth;
1197
+ menuMobile;
1198
+ MenuTrigger;
1199
+ ngOnInit() {
1200
+ this.innerWidth = window.innerWidth;
1201
+ if (this.innerWidth < 1024) {
1202
+ this.menuMobile = true;
711
1203
  }
712
- if (allowNegative) {
713
- value = value.toString();
714
- if (value.startsWith('(') || value.startsWith('-')) {
715
- value = '-' + value.substr(1, value.length).replace(/\(|\)|\$|\-/g, '');
1204
+ else {
1205
+ this.menuMobile = false;
1206
+ }
1207
+ }
1208
+ mouseover(matmenu, i) {
1209
+ if (!this.menuMobile) {
1210
+ if (matmenu) {
1211
+ document.documentElement.classList.remove('main-overlay-closed');
1212
+ // this.MenuTrigger[i].openMenu();
716
1213
  }
717
1214
  else {
718
- value = value.replace(/\(|\)|\$|\-/g, '');
1215
+ document.documentElement.classList.add('main-overlay-closed');
1216
+ // this.MenuTrigger[i].closeMenu();
719
1217
  }
720
1218
  }
721
- let [integer, fraction = ''] = (value || '').toString().split(this.decimal_separator);
722
- fraction = decimalPrecision > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';
723
- integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, this.thousands_separator);
724
- // If user types .xx we can display 0.xx
725
- if (integer === '') {
726
- integer = '0';
727
- }
728
- else if (integer.startsWith('$')) {
729
- // If there are multiple transforms, remove the previous dollar sign (blur and change at the same time)
730
- integer = integer.substr(1, integer.length);
731
- }
732
- else if (allowNegative && integer.startsWith('-')) {
733
- // If user inputs negative number set to paranthesis format
734
- integer = integer.substr(1, integer.length);
735
- return '(' + this.prefix + integer + fraction + ')';
736
- }
737
- return this.prefix + integer + fraction;
738
1219
  }
739
- parse(value, allowNegative = false) {
740
- let [integer, fraction = ''] = (value || '').split(this.decimal_separator);
741
- integer = integer.replace(new RegExp(/[^\d\.]/, 'g'), '');
742
- fraction = parseInt(fraction, 10) > 0 && 2 > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';
743
- if (allowNegative && value.startsWith('(') && value.endsWith(')')) {
744
- return (-1 * parseFloat(integer + fraction)).toString();
745
- }
746
- else {
747
- return integer + fraction;
1220
+ goto(url, matmenu) {
1221
+ if (!this.menuMobile) {
1222
+ if (matmenu) {
1223
+ document.documentElement.classList.remove('main-overlay-closed');
1224
+ }
1225
+ else {
1226
+ document.documentElement.classList.add('main-overlay-closed');
1227
+ }
748
1228
  }
1229
+ this.router.navigate([url]);
749
1230
  }
750
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
751
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, name: "mycurrency" });
1231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideNavComponent, deps: [{ token: SidenavService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
1232
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SideNavComponent, isStandalone: true, selector: "app-side-nav", inputs: { isOpened: "isOpened" }, viewQueries: [{ propertyName: "MenuTrigger", first: true, predicate: ["MenuTrigger"], descendants: true }], ngImport: i0, template: "<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n", styles: [":host ::ng-deep aside{min-width:var(--main-aside-width);width:var(--main-aside-width);height:calc(100vh - var(--main-toolbar-height));display:flex;position:var(--main-aside-position);right:var(--main-aside-right);left:var(--main-aside-left);top:var(--main-toolbar-height);z-index:var(--main-toolbar-zIndex);background-color:var(--main-aside-bc);transform:var(--main-aside-transform);transition:all .5s cubic-bezier(.685,.0473,.346,1)}@media (max-width: 1024px){:host ::ng-deep aside{height:100%;flex-direction:column;--main-toolbar-height: 0}}:host ::ng-deep aside nav{width:100%}:host ::ng-deep aside ul{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:0rem;margin:37px 0;list-style:none;counter-reset:itemCounter}:host ::ng-deep aside ul li{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:calc(var(--main-aside-width-active) - 15px);width:100%;gap:var(--gap-width, 2.5rem);padding:3px 0 3px 10px;cursor:pointer;color:var(--main-aside-item-fc);border-radius:0;transition:var(--default-transition)}[dir=rtl] :host ::ng-deep aside ul li{padding:3px 10px 3px 0!important}@media (max-width: 1024px){@keyframes liAnimation{0%{transform:translateY(-500px)}to{transform:translateY(0)}}}:host ::ng-deep aside ul li.active,:host ::ng-deep aside ul li:hover{background-color:var(--main-aside-item-bc)}[dir=ltr] :host ::ng-deep aside ul li.active,[dir=ltr] :host ::ng-deep aside ul li:hover{border-left:5px solid var(--coral)}[dir=rtl] :host ::ng-deep aside ul li.active,[dir=rtl] :host ::ng-deep aside ul li:hover{border-right:5px solid var(--coral)}:host ::ng-deep aside ul li .menu-label{font-size:var(--main-aside-item-fs);flex-grow:1;opacity:1;min-width:calc(var(--main-aside-width-active) - 2rem - 40px);display:var(--main-aside-item-display)}:host ::ng-deep aside .header{background-color:#0003!important;padding:15px;flex-direction:row}:host ::ng-deep aside .header div{display:flex;align-items:center;margin-top:auto}:host ::ng-deep aside .footer{margin-top:auto;margin-bottom:80px;padding:0 30px}:host ::ng-deep aside ds-icon{font-size:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;min-width:40px;width:40px;height:40px}:host ::ng-deep ds-button.close::part(base){height:37px;width:37px}:host ::ng-deep ds-button.close ds-icon{font-size:18px;min-width:18px;width:18px;height:18px}:host ::ng-deep .viewAll:hover{background-color:var(--purple)}:host ::ng-deep .viewAll:hover span{color:var(--white)}:host ::ng-deep .justify-content-between{justify-content:space-between}:host ::ng-deep .flex-column{flex-direction:column}:host ::ng-deep .d-flex{display:flex}:host ::ng-deep .w-100{width:100%}:host ::ng-deep .gap-3{gap:1rem!important}:host ::ng-deep ds-button.purple::part(base){--btn-border-color: var(--purple)}:host ::ng-deep ds-button.purple::part(overlay){--btn-overlay-color: var(--purple)}:host ::ng-deep ds-button.secondary::part(base){--btn-border-color: var(--secondary)}:host ::ng-deep ds-button.secondary::part(overlay){--btn-overlay-color: var(--secondary)}@media (min-width: 1024px){:host ::ng-deep .d-md-none{display:none!important}}@media (max-height: 430px){:host ::ng-deep aside .header{margin-bottom:50px}:host ::ng-deep aside nav{padding:15px 0 0;overflow:auto}:host ::ng-deep aside .footer{margin-bottom:20px}}@media (max-height: 300px){:host ::ng-deep aside .header{margin-bottom:5px}}:host ::ng-deep .logo{color:#fff}::ng-deep .aside-menu .mat-mdc-menu-content{border:none;box-shadow:none;padding:0!important}\n"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] });
752
1233
  }
753
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, decorators: [{
754
- type: Pipe,
755
- args: [{
756
- name: 'mycurrency'
757
- }]
758
- }], ctorParameters: () => [] });
1234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SideNavComponent, decorators: [{
1235
+ type: Component,
1236
+ args: [{ selector: 'app-side-nav', standalone: true, imports: [RouterLinkActive, RouterLink, MatTooltipModule, MatMenu, MatMenuTrigger], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<aside>\r\n <div class=\"header d-flex d-lg-none\">\r\n <div class=\"d-flex h-100 mt-auto justify-content-between w-100\">\r\n <h1 class=\"fs-26 fw-bold fc-white logo\">academy</h1>\r\n <ds-button size=\"small\" color=\"purple\" class=\"close purple\" (click)=\"closeSidenav()\">\r\n <ds-icon icon=\"close\" class=\"fs-15 fc-white\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n </div>\r\n <nav>\r\n <ul>\r\n <!-- (mouseenter)=\"menuMobile ? null : MenuTrigger.openMenu()\"-->\r\n <!-- (click)=\"goto(item.routerLink,item.matmenu) -->\r\n @for (item of Menu; track $index) {\r\n @if (item.matmenu) {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" (click)=\"goto(item.routerLink!,item.matmenu)\" #MenuTrigger=\"matMenuTrigger\"\r\n [matMenuTriggerFor]=\"menuMenu\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n <mat-menu #menuMenu=\"matMenu\" class=\"aside-menu visible-{{item.matmenu}}\">\r\n <app-mat-menu [title]=\"item.name \" [icon]=\"item.icon\" [list]=\"item.List\"></app-mat-menu>\r\n </mat-menu>\r\n } @else {\r\n <li\r\n (click)=\"closeSidenav();navigateTo(item)\" matTooltipPosition=\"right\" matTooltip=\"{{item.name }}\"\r\n [routerLinkActive]=\"'active'\" [routerLinkActiveOptions]=\"{ exact: true }\" class=\"cursor-pointer\">\r\n <ds-icon icon=\"{{item.icon}}\" class=\"icon\"></ds-icon>\r\n <span class=\"menu-label\">\r\n {{ item.name }}\r\n </span>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n </nav>\r\n</aside>\r\n", styles: [":host ::ng-deep aside{min-width:var(--main-aside-width);width:var(--main-aside-width);height:calc(100vh - var(--main-toolbar-height));display:flex;position:var(--main-aside-position);right:var(--main-aside-right);left:var(--main-aside-left);top:var(--main-toolbar-height);z-index:var(--main-toolbar-zIndex);background-color:var(--main-aside-bc);transform:var(--main-aside-transform);transition:all .5s cubic-bezier(.685,.0473,.346,1)}@media (max-width: 1024px){:host ::ng-deep aside{height:100%;flex-direction:column;--main-toolbar-height: 0}}:host ::ng-deep aside nav{width:100%}:host ::ng-deep aside ul{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;padding:0rem;margin:37px 0;list-style:none;counter-reset:itemCounter}:host ::ng-deep aside ul li{display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:calc(var(--main-aside-width-active) - 15px);width:100%;gap:var(--gap-width, 2.5rem);padding:3px 0 3px 10px;cursor:pointer;color:var(--main-aside-item-fc);border-radius:0;transition:var(--default-transition)}[dir=rtl] :host ::ng-deep aside ul li{padding:3px 10px 3px 0!important}@media (max-width: 1024px){@keyframes liAnimation{0%{transform:translateY(-500px)}to{transform:translateY(0)}}}:host ::ng-deep aside ul li.active,:host ::ng-deep aside ul li:hover{background-color:var(--main-aside-item-bc)}[dir=ltr] :host ::ng-deep aside ul li.active,[dir=ltr] :host ::ng-deep aside ul li:hover{border-left:5px solid var(--coral)}[dir=rtl] :host ::ng-deep aside ul li.active,[dir=rtl] :host ::ng-deep aside ul li:hover{border-right:5px solid var(--coral)}:host ::ng-deep aside ul li .menu-label{font-size:var(--main-aside-item-fs);flex-grow:1;opacity:1;min-width:calc(var(--main-aside-width-active) - 2rem - 40px);display:var(--main-aside-item-display)}:host ::ng-deep aside .header{background-color:#0003!important;padding:15px;flex-direction:row}:host ::ng-deep aside .header div{display:flex;align-items:center;margin-top:auto}:host ::ng-deep aside .footer{margin-top:auto;margin-bottom:80px;padding:0 30px}:host ::ng-deep aside ds-icon{font-size:1.55rem;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;min-width:40px;width:40px;height:40px}:host ::ng-deep ds-button.close::part(base){height:37px;width:37px}:host ::ng-deep ds-button.close ds-icon{font-size:18px;min-width:18px;width:18px;height:18px}:host ::ng-deep .viewAll:hover{background-color:var(--purple)}:host ::ng-deep .viewAll:hover span{color:var(--white)}:host ::ng-deep .justify-content-between{justify-content:space-between}:host ::ng-deep .flex-column{flex-direction:column}:host ::ng-deep .d-flex{display:flex}:host ::ng-deep .w-100{width:100%}:host ::ng-deep .gap-3{gap:1rem!important}:host ::ng-deep ds-button.purple::part(base){--btn-border-color: var(--purple)}:host ::ng-deep ds-button.purple::part(overlay){--btn-overlay-color: var(--purple)}:host ::ng-deep ds-button.secondary::part(base){--btn-border-color: var(--secondary)}:host ::ng-deep ds-button.secondary::part(overlay){--btn-overlay-color: var(--secondary)}@media (min-width: 1024px){:host ::ng-deep .d-md-none{display:none!important}}@media (max-height: 430px){:host ::ng-deep aside .header{margin-bottom:50px}:host ::ng-deep aside nav{padding:15px 0 0;overflow:auto}:host ::ng-deep aside .footer{margin-bottom:20px}}@media (max-height: 300px){:host ::ng-deep aside .header{margin-bottom:5px}}:host ::ng-deep .logo{color:#fff}::ng-deep .aside-menu .mat-mdc-menu-content{border:none;box-shadow:none;padding:0!important}\n"] }]
1237
+ }], ctorParameters: () => [{ type: SidenavService }, { type: i1$1.Router }], propDecorators: { isOpened: [{
1238
+ type: Input
1239
+ }], MenuTrigger: [{
1240
+ type: ViewChild,
1241
+ args: ['MenuTrigger']
1242
+ }] } });
759
1243
 
760
- class CustomDateFormat {
761
- _parse = {
762
- dateInput: 'DD/MM/YYYY'
1244
+ class FormSectionComponent {
1245
+ i18n;
1246
+ userType = 'receipient';
1247
+ popover;
1248
+ popoverType = 'receipient';
1249
+ popoverPosition = { top: 0, left: 0 };
1250
+ requestDetails;
1251
+ userPopoverInfo = {};
1252
+ section;
1253
+ form;
1254
+ lov;
1255
+ isReadOnly;
1256
+ isOpen;
1257
+ isFinalApproval;
1258
+ controllers;
1259
+ segmentDynamicLoaderService;
1260
+ sectionFormComponent = null;
1261
+ sectionName = 'SECTION_NAME.requestDetails';
1262
+ sectionNumber;
1263
+ sectionStatusValue;
1264
+ sectionStatusKey;
1265
+ receipient = {
1266
+ isShowing: false,
1267
+ profile: null
763
1268
  };
764
- _display = {
765
- dateInput: 'DD/MM/YYYY',
766
- monthYearLabel: 'DD MMM YYYY',
767
- dateA11yLabel: 'LL',
768
- monthYearA11yLabel: 'MMMM YYYY'
1269
+ delegate = {
1270
+ isShowing: false,
1271
+ profile: null
769
1272
  };
770
- set parse(parse) {
771
- this._parse = Object.assign({}, this._parse, parse);
772
- }
773
- get parse() {
774
- return this._parse;
775
- }
776
- set display(display) {
777
- this._display = Object.assign({}, this._display, display);
778
- }
779
- get display() {
780
- return this._display;
1273
+ input;
1274
+ highlightFlag;
1275
+ processingDate;
1276
+ randomID = Math.floor(Math.random() * (999999 - 100000)) + 100000;
1277
+ constructor(
1278
+ // private segmentDynamicLoaderService: SegmentDynamicLoaderService,
1279
+ i18n) {
1280
+ this.i18n = i18n;
1281
+ this.highlightFlag = false;
781
1282
  }
782
- updateDateFormat(parse, display) {
783
- this.parse = parse;
784
- if (!display) {
785
- display = parse;
1283
+ ngOnInit() {
1284
+ this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(this.section.id);
1285
+ if (this.section.body.details.stageName) {
1286
+ this.sectionName = this.section.body.details.stageName;
786
1287
  }
787
- this.display = display;
788
- }
789
- }
790
-
791
- const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
792
- provide: NG_VALUE_ACCESSOR,
793
- useExisting: forwardRef(() => BaseComponent),
1288
+ else {
1289
+ this.sectionName = this.segmentDynamicLoaderService.getSectionName(this.section.id);
1290
+ }
1291
+ this.input = {
1292
+ isReadOnly: this.isReadOnly,
1293
+ lov: this.lov,
1294
+ section: this.section,
1295
+ controllers: this.controllers,
1296
+ requestDetails: this.requestDetails
1297
+ };
1298
+ if (this.section.header && this.section.header.processingDate) {
1299
+ this.processingDate = moment(this.section.header.processingDate)
1300
+ .locale('en-US')
1301
+ .format('DD/MM/YYYY HH:mm:ss');
1302
+ }
1303
+ this.highlightFlag = this.isOpen;
1304
+ const x = document.querySelectorAll('#collapse' + this.sectionId());
1305
+ if (x.length > 0) {
1306
+ this.sectionNumber = x.length;
1307
+ }
1308
+ }
1309
+ ngOnChanges() {
1310
+ if (this.section.id !== 'requestDetails' &&
1311
+ this.section.id !== 'hrRequestDetails' &&
1312
+ !this.sectionStatusKey &&
1313
+ this.section.body.details.decision &&
1314
+ this.section.body.details.decision.key) {
1315
+ this.sectionStatusKey = this.section.body.details.decision.key;
1316
+ }
1317
+ if (this.section.id !== 'requestDetails' &&
1318
+ this.section.id !== 'hrRequestDetails' &&
1319
+ !this.sectionStatusValue &&
1320
+ this.section.body.details.decision &&
1321
+ this.section.body.details.decision.value) {
1322
+ this.sectionStatusValue = this.section.body.details.decision.value;
1323
+ }
1324
+ }
1325
+ ngAfterViewInit() {
1326
+ this.ServicesSubScriptions();
1327
+ }
1328
+ get isExpanded() {
1329
+ const isExpandableFromBackend = this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
1330
+ if (!isExpandableFromBackend)
1331
+ return true;
1332
+ return this.section?.body?.details?.expandStage === 'true';
1333
+ }
1334
+ ServicesSubScriptions() {
1335
+ /* this.profileRequestorService.getForm().subscribe((data) => {
1336
+ this.form = data;
1337
+ });*/
1338
+ }
1339
+ ngAfterViewChecked() {
1340
+ this.input = {
1341
+ isReadOnly: this.isReadOnly,
1342
+ lov: this.lov,
1343
+ section: this.section,
1344
+ controllers: this.controllers,
1345
+ sectionId: this.section
1346
+ };
1347
+ }
1348
+ sectionId() {
1349
+ return this.section.id.split(' ').join('') + this.randomID;
1350
+ }
1351
+ getSectionName() {
1352
+ return this.section.id;
1353
+ }
1354
+ getFormStepStatus(key) {
1355
+ let status = 'NOT_FOUND_IN_LOV';
1356
+ if (this.lov.formStepStatus && this.lov.formStepStatus.options) {
1357
+ this.lov.formStepStatus.options.forEach((option) => {
1358
+ if (option.value === key) {
1359
+ status = option.description;
1360
+ }
1361
+ });
1362
+ }
1363
+ return status;
1364
+ }
1365
+ toggleSmallProfileInfo(event, personType) {
1366
+ this.userType = personType;
1367
+ event.stopPropagation();
1368
+ const userInfo = this[personType];
1369
+ if (userInfo.profile === null) {
1370
+ this.popoverType = personType;
1371
+ const userEmail = personType === 'receipient'
1372
+ ? this.section.header.personToThumbnail.split('=')[1]
1373
+ : this?.section?.header?.delegatedToThumbnail.split('=')[1];
1374
+ /*this.stateMachine
1375
+ .dispatch(Constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, userEmail)
1376
+ .then((response) => {
1377
+ console.log(this, response);
1378
+
1379
+ if (response) {
1380
+ this[personType].profile = response;
1381
+ this.popoverPosition = {
1382
+ top: 10,
1383
+ left:
1384
+ event.target.getBoundingClientRect().left +
1385
+ event.target.getBoundingClientRect().width / 4
1386
+ };
1387
+ this.popover.anchor = event.target;
1388
+ this.popover.open();
1389
+ this.userPopoverInfo = response;
1390
+ }
1391
+ });*/
1392
+ }
1393
+ else {
1394
+ this.userPopoverInfo = this[personType].profile;
1395
+ this.popoverPosition = {
1396
+ top: 10,
1397
+ left: event.target.getBoundingClientRect().left +
1398
+ event.target.getBoundingClientRect().width / 4
1399
+ };
1400
+ this.popover.anchor = event.target;
1401
+ this.popover.open();
1402
+ }
1403
+ }
1404
+ statusIconClass(status, type) {
1405
+ if (status) {
1406
+ if (status === FORM_STATUS_REJECTED ||
1407
+ status === FORM_STATUS_CANCELLED ||
1408
+ status.toLowerCase() === 'reject' ||
1409
+ status.toLowerCase() === 'unsatisfied' ||
1410
+ status.toLowerCase().includes('deny') ||
1411
+ status.toLowerCase().includes('reject') ||
1412
+ status.toLowerCase() === 'cancel') {
1413
+ return type === 'status' ? 'danger' : 'close';
1414
+ }
1415
+ else if (status === FORM_STATUS_PENDING ||
1416
+ status.toLowerCase() === 'pending') {
1417
+ return type === 'status' ? 'warning' : 'clock';
1418
+ }
1419
+ else {
1420
+ return type === 'status' ? 'success' : 'check';
1421
+ }
1422
+ }
1423
+ else {
1424
+ return type === 'status' ? 'success' : 'check';
1425
+ }
1426
+ }
1427
+ locationHref(hrefLink) {
1428
+ window.location.href = hrefLink;
1429
+ }
1430
+ statusClass(status) {
1431
+ if (status) {
1432
+ if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
1433
+ || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel') {
1434
+ return 'danger';
1435
+ }
1436
+ else if (status === FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {
1437
+ return 'warning';
1438
+ }
1439
+ else {
1440
+ return 'success';
1441
+ }
1442
+ }
1443
+ else {
1444
+ return 'success';
1445
+ }
1446
+ }
1447
+ statusIcon(status) {
1448
+ if (status) {
1449
+ if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
1450
+ || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel') {
1451
+ return 'close';
1452
+ }
1453
+ else if (status === FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {
1454
+ return 'clock';
1455
+ }
1456
+ else {
1457
+ return 'check';
1458
+ }
1459
+ }
1460
+ else {
1461
+ return 'check';
1462
+ }
1463
+ }
1464
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
1465
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", isOpen: "isOpen", isFinalApproval: "isFinalApproval", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n\r\n\r\n\r\n<!--\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"true\" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n\r\n <app-workflow-approval\r\n [isReadOnly]=\"input.isReadOnly\"\r\n [lov]=\"input.lov\"\r\n [section]=\"input.section\"\r\n [requestDetails]=\"requestDetails\"\r\n ></app-workflow-approval>\r\n &lt;!&ndash; <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>&ndash;&gt;\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n-->\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: ComponentOutletIoDirective, selector: "[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ngComponentOutletNdcDynamicInputs", "ngComponentOutletNdcDynamicOutputs"], exportAs: ["ndcDynamicIo"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1466
+ }
1467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, decorators: [{
1468
+ type: Component,
1469
+ args: [{ selector: 'app-form-section', standalone: true, imports: [
1470
+ MatExpansionPanel,
1471
+ NgIf,
1472
+ NgComponentOutlet,
1473
+ ComponentOutletIoDirective,
1474
+ SatPopoverModule,
1475
+ NgClass
1476
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n\r\n\r\n\r\n<!--\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"true\" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n\r\n <app-workflow-approval\r\n [isReadOnly]=\"input.isReadOnly\"\r\n [lov]=\"input.lov\"\r\n [section]=\"input.section\"\r\n [requestDetails]=\"requestDetails\"\r\n ></app-workflow-approval>\r\n &lt;!&ndash; <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>&ndash;&gt;\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n-->\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
1477
+ }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { popover: [{
1478
+ type: ViewChild,
1479
+ args: ['popover']
1480
+ }], requestDetails: [{
1481
+ type: Input
1482
+ }], section: [{
1483
+ type: Input
1484
+ }], form: [{
1485
+ type: Input
1486
+ }], lov: [{
1487
+ type: Input
1488
+ }], isReadOnly: [{
1489
+ type: Input
1490
+ }], isOpen: [{
1491
+ type: Input
1492
+ }], isFinalApproval: [{
1493
+ type: Input
1494
+ }], controllers: [{
1495
+ type: Input
1496
+ }], segmentDynamicLoaderService: [{
1497
+ type: Input
1498
+ }], sectionFormComponent: [{
1499
+ type: Input
1500
+ }], sectionName: [{
1501
+ type: Input
1502
+ }] } });
1503
+
1504
+ class MainRequestDetailsComponent {
1505
+ i18n;
1506
+ section;
1507
+ lov;
1508
+ form;
1509
+ constructor(i18n) {
1510
+ this.i18n = i18n;
1511
+ }
1512
+ get isExpanded() {
1513
+ return this.section?.body?.details?.expandStage === 'true';
1514
+ }
1515
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
1516
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MainRequestDetailsComponent, isStandalone: true, selector: "app-main-request-details", inputs: { section: "section", lov: "lov", form: "form" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1517
+ }
1518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, decorators: [{
1519
+ type: Component,
1520
+ args: [{ selector: 'app-main-request-details', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
1521
+ MatAccordion,
1522
+ MatExpansionPanel,
1523
+ NgIf
1524
+ ], template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"] }]
1525
+ }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { section: [{
1526
+ type: Input
1527
+ }], lov: [{
1528
+ type: Input
1529
+ }], form: [{
1530
+ type: Input
1531
+ }] } });
1532
+
1533
+ class WorkflowSectionComponent {
1534
+ i18n;
1535
+ cdRef;
1536
+ formStateObject;
1537
+ sectionSubmitted = new EventEmitter();
1538
+ sections;
1539
+ isReadOnly;
1540
+ isLoading;
1541
+ form;
1542
+ contentClass = 'default-box box-shadow p-4';
1543
+ startedListener = false;
1544
+ sectionsController;
1545
+ showButtonMenu = false;
1546
+ segmentDynamicLoaderService = null;
1547
+ sectionFormComponent = null;
1548
+ sectionName = SECTION_ID_REQUEST_DETAILS;
1549
+ constructor(i18n, cdRef) {
1550
+ this.i18n = i18n;
1551
+ this.cdRef = cdRef;
1552
+ /* _listenerService.listen().subscribe((result: any) => {
1553
+ if (result?.function == 'resetForm') {
1554
+ this.resetForm();
1555
+ } else if (result?.function == 'onSubmit') {
1556
+ const sectionSize = this.sections.length - 1;
1557
+ const section = this.sections[sectionSize];
1558
+ const data = result.data ? result.data : section;
1559
+ this.onSubmit(result?.action, data);
1560
+ }
1561
+ });*/
1562
+ }
1563
+ ngAfterViewChecked() {
1564
+ this.cdRef.detectChanges();
1565
+ if (this.formStateObject && this.form && !this.startedListener) {
1566
+ this.formStateObject.valueChanges.subscribe(
1567
+ /* istanbul ignore next */
1568
+ (form) => {
1569
+ Object.keys(form).forEach((key) => {
1570
+ if (this.sections[this.sections.length - 1].body.details[key] !==
1571
+ form[key] &&
1572
+ form[key] !== undefined)
1573
+ this.sections[this.sections.length - 1].body.details[key] =
1574
+ form[key];
1575
+ });
1576
+ });
1577
+ this.sectionsController = this.formStateObject.controls;
1578
+ this.startedListener = true;
1579
+ }
1580
+ this.checkButtons();
1581
+ }
1582
+ /* isSubmitting = {};
1583
+ disableButtons = false;*/
1584
+ /* onSubmit(action: any, section: any) {
1585
+ const sectionSize = this.sections.length - 1;
1586
+ let sectionDecision = this.sections[sectionSize].body.details.decision;
1587
+ if (sectionDecision && action === 'SUBMIT') {
1588
+ sectionDecision = { key: action };
1589
+ }
1590
+ if (sectionDecision && action !== 'SUBMIT') {
1591
+ sectionDecision = { key: action };
1592
+ }
1593
+ this.sections[sectionSize].body.details.decision = sectionDecision;
1594
+ this.profileRequesterService.isSubmitting[action] = true;
1595
+ this.profileRequesterService.disableButtons = true;
1596
+ this.stateMachineService
1597
+ .dispatch(
1598
+ constants.STATE_MACHINE_ACTION_SUBMIT_FORM,
1599
+ section,
1600
+ action
1601
+ )
1602
+ .then((form: any) => {
1603
+ this.profileRequesterService.isSubmitting[action] = true;
1604
+ this.profileRequesterService.disableButtons = true;
1605
+ const obj = {
1606
+ form: form,
1607
+ action: action
1608
+ };
1609
+ this.sectionSubmitted.emit(obj);
1610
+ });
1611
+ }*/
1612
+ /* resetForm() {
1613
+ this.formStateObject.reset();
1614
+ this.resetPropagator.propagate();
1615
+ }*/
1616
+ get isExpandableFromBackend() {
1617
+ return this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
1618
+ }
1619
+ buttonTypes(type) {
1620
+ switch (type) {
1621
+ case 'APPROVE':
1622
+ return '';
1623
+ case 'SENDBACK':
1624
+ return 'red';
1625
+ case 'REJECT':
1626
+ return 'red';
1627
+ default:
1628
+ return '';
1629
+ }
1630
+ }
1631
+ checkButtons() {
1632
+ const options = this.form?.lovs?.decision?.options;
1633
+ if (!Array.isArray(options))
1634
+ return;
1635
+ options.forEach((item) => {
1636
+ if (item?.value != 'APPROVE' &&
1637
+ item?.value != 'REJECT' &&
1638
+ item?.value != 'SENDBACK' &&
1639
+ item?.value != 'SUBMIT' &&
1640
+ item?.value != 'CANCEL') {
1641
+ this.showButtonMenu = true;
1642
+ }
1643
+ });
1644
+ }
1645
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, deps: [{ token: CoreI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1646
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
1647
+ }
1648
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, decorators: [{
1649
+ type: Component,
1650
+ args: [{ selector: 'app-workflow-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
1651
+ NgClass,
1652
+ MatAccordion,
1653
+ NgTemplateOutlet,
1654
+ NgIf,
1655
+ FormSectionComponent,
1656
+ MainRequestDetailsComponent,
1657
+ NgForOf,
1658
+ FormsModule
1659
+ ], standalone: true, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"] }]
1660
+ }], ctorParameters: () => [{ type: CoreI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formStateObject: [{
1661
+ type: ViewChild,
1662
+ args: ['f']
1663
+ }], sectionSubmitted: [{
1664
+ type: Output
1665
+ }], sections: [{
1666
+ type: Input
1667
+ }], isReadOnly: [{
1668
+ type: Input
1669
+ }], isLoading: [{
1670
+ type: Input
1671
+ }], form: [{
1672
+ type: Input
1673
+ }], contentClass: [{
1674
+ type: Input
1675
+ }], sectionsController: [{
1676
+ type: Input
1677
+ }], segmentDynamicLoaderService: [{
1678
+ type: Input
1679
+ }], sectionFormComponent: [{
1680
+ type: Input
1681
+ }], sectionName: [{
1682
+ type: Input
1683
+ }] } });
1684
+
1685
+ /* eslint-disable @angular-eslint/component-selector */
1686
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1687
+ class ConfirmationPopupComponent {
1688
+ data;
1689
+ dialogRef;
1690
+ constructor(data, dialogRef) {
1691
+ this.data = data;
1692
+ this.dialogRef = dialogRef;
1693
+ }
1694
+ openForm() {
1695
+ window.open("/group/i-gate/wm-bpm/forms?formId=" + this.data.id);
1696
+ location.reload();
1697
+ }
1698
+ delete() {
1699
+ this.dialogRef.close('yes');
1700
+ }
1701
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$4.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
1702
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ConfirmationPopupComponent, isStandalone: true, selector: "app-delete-popup", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1703
+ }
1704
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
1705
+ type: Component,
1706
+ args: [{ selector: 'app-delete-popup', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
1707
+ MatDialogContent,
1708
+ MatDialogActions,
1709
+ MatButton,
1710
+ MatDialogClose,
1711
+ NgIf
1712
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <!-- <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon> -->\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center text-center justify-content-center mb-2 mx-5\">\r\n <h2 class=\"fs-22 font-md-18 fw-medium fc-onyx my-3\">\r\n <!-- {{ 'submittedSuccessfully' | transloco}} -->\r\n </h2>\r\n <h4 class=\"fs-14 fw-normal fst-italic fc-onyx bg-color-light-gray p-3 mb-1\">\r\n <!-- <span>{{ 'formId' | transloco}}</span> -->\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-weight-medium\">{{data.id}}</span>\r\n </h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'view'\">\r\n <button mat-stroked-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n <!-- {{ 'Close' | transloco}} -->\r\n </button>\r\n <button mat-flat-button class=\"btn button-primary font-17 fw-medium px-4\" (click)=\"openForm()\">\r\n <!-- {{ 'ViewRequest' | transloco}} -->\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'delete'\">\r\n <button mat-flat-button class=\"btn button-red\" [mat-dialog-close]='true' >\r\n Delete\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button mat-flat-button class=\"btn button-primary\" matDialogClose>\r\n Cancel\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\" *ngIf=\"data.type === 'done'\">\r\n <button mat-flat-button class=\"btn button-primary shadow-hover px-4\" matDialogClose>\r\n Close\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [".icon{font-size:40px;min-width:75px;width:75px;height:75px;background-color:#00c48c;padding:5px;display:flex;align-items:center;justify-content:center;margin:auto;color:#fff;border-radius:50%}\n"] }]
1713
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1714
+ type: Inject,
1715
+ args: [MAT_DIALOG_DATA]
1716
+ }] }, { type: i1$4.MatDialogRef }] });
1717
+
1718
+ /* eslint-disable @angular-eslint/component-selector */
1719
+ /* eslint-disable @typescript-eslint/no-empty-function */
1720
+ class DeletePopupComponent {
1721
+ constructor() { }
1722
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeletePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1723
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DeletePopupComponent, isStandalone: true, selector: "app-delete-popup", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
1724
+ }
1725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeletePopupComponent, decorators: [{
1726
+ type: Component,
1727
+ args: [{ selector: 'app-delete-popup', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
1728
+ MatDialogContent,
1729
+ MatDialogClose,
1730
+ MatDialogActions
1731
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <button class=\"mat-close-modal\" matDialogClose>\r\n <span class=\"sfi sfi-close fc-black\"></span>\r\n </button>\r\n </div>\r\n <mat-dialog-content class=\"border-0 pt-0\">\r\n <div class=\"d-flex flex-column align-items-center justify-content-center\">\r\n <span class=\"sfi sfi-trash font-50 fc-coral mb-2\"></span>\r\n <h2 class=\"fs-31 font-md-25 fw-bold fc-onyx mb-0\">\r\n Are you sure !\r\n </h2>\r\n <h4 class=\"fs-15 fw-normal fc-dark-gray mb-0\">you want Delete This Car</h4>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <div class=\"d-flex justify-content-center w-100 mb-4 px-md-5\">\r\n <button class=\"btn button-secondary font-13 fw-medium h-51 w-100\" matDialogClose>\r\n <span>Cancel</span>\r\n </button>\r\n <span class=\"mx-2\"></span>\r\n <button class=\"btn button-primary font-13 fw-medium h-51 w-100\">\r\n <span>Delete</span>\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n\r\n</div>\r\n" }]
1732
+ }], ctorParameters: () => [] });
1733
+
1734
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1735
+ /* eslint-disable @angular-eslint/component-selector */
1736
+ class DeleteDialogComponent {
1737
+ dialogRef;
1738
+ i18n;
1739
+ constructor(dialogRef, i18n) {
1740
+ this.dialogRef = dialogRef;
1741
+ this.i18n = i18n;
1742
+ }
1743
+ delete() {
1744
+ this.dialogRef.close('yes');
1745
+ }
1746
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeleteDialogComponent, deps: [{ token: i1$4.MatDialogRef }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
1747
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: DeleteDialogComponent, isStandalone: true, selector: "app-delete-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
1748
+ }
1749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DeleteDialogComponent, decorators: [{
1750
+ type: Component,
1751
+ args: [{ selector: 'app-delete-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
1752
+ MatDialogContent,
1753
+ MatDialogClose
1754
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('Areyousureyouwantdelete')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('Cancel')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"delete()\">{{i18n.translate('yes')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"] }]
1755
+ }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: CoreI18nService }] });
1756
+
1757
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1758
+ /* eslint-disable @angular-eslint/component-selector */
1759
+ class SubmitDialogComponent {
1760
+ data;
1761
+ i18n;
1762
+ successData;
1763
+ inboxUri;
1764
+ constructor(data, i18n) {
1765
+ this.data = data;
1766
+ this.i18n = i18n;
1767
+ this.successData = data;
1768
+ this.inboxUri = window.wmConfig.inboxUri;
1769
+ }
1770
+ backHome() {
1771
+ const url = window.wmConfig.inboxUri;
1772
+ //console.log(" inboxUri ",url)
1773
+ window.location.href = url;
1774
+ }
1775
+ getImage(email) {
1776
+ if (email) {
1777
+ return '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + email;
1778
+ }
1779
+ else {
1780
+ return '';
1781
+ }
1782
+ }
1783
+ viewForm(formId, formName) {
1784
+ if (formId) {
1785
+ if (formId?.toLowerCase().includes('draft')) {
1786
+ window.open(`/group/i-gate/wm-bpm/forms?formName=${formName}&formId=${formId}`);
1787
+ return;
1788
+ }
1789
+ window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);
1790
+ }
1791
+ }
1792
+ getStatus(statusKey) {
1793
+ switch (statusKey) {
1794
+ case 'APPROVED':
1795
+ return 'success';
1796
+ case 'COMPLETED':
1797
+ return 'success';
1798
+ case 'REJECTED':
1799
+ return 'danger';
1800
+ case 'CANCELLED':
1801
+ return 'danger';
1802
+ case 'PENDING':
1803
+ return 'warning';
1804
+ default:
1805
+ return '';
1806
+ break;
1807
+ }
1808
+ }
1809
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SubmitDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
1810
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SubmitDialogComponent, isStandalone: true, selector: "app-submit-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormId')}}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.formName)\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormStatus')}}</span>\r\n <ds-status class=\"disc\" [status]=\"getStatus(successData?.status?.key)\">\r\n {{ successData.status?.value }}\r\n </ds-status>\r\n </div>\r\n <div class=\"info-item px-3\" *ngIf=\"successData?.status?.key === 'PENDING'\">\r\n <!-- <span class=\"name fs-16-imp\">{{i18n.translate('formTablePendingWith')}}</span> -->\r\n\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(successData?.nextApprover?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{successData?.nextApprover?.name}}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{successData?.nextApprover?.email}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--<div class=\"d-flex align-items-center gap-3 mt-3\" *ngIf=\"!stateMachineService.isMobileApp()\">\r\n <ds-button >\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{i18n.translate('formTableBackToInbox')}}</a>\r\n </ds-button>\r\n </div>-->\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: [".inboxUri{color:#fff!important}.inboxUri:hover{color:#ff375e!important}ds-button:hover a{color:#ff375e!important}\n"], dependencies: [{ kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1811
+ }
1812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SubmitDialogComponent, decorators: [{
1813
+ type: Component,
1814
+ args: [{ selector: 'app-submit-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
1815
+ MatDialogClose,
1816
+ MatDialogContent,
1817
+ NgIf
1818
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-end\" mat-dialog-title>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n\r\n <div class=\"info-section reverse w-100\">\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormId')}}</span>\r\n <span class=\"disc fs-16-imp\">\r\n <a class=\"cursor-pointer fc-black underline\" (click)=\"viewForm(successData.id, successData?.formName)\">\r\n {{ successData.id }}\r\n </a>\r\n </span>\r\n </div>\r\n <div class=\"info-item px-3\">\r\n <span class=\"name fs-16-imp\">{{i18n.translate('formTableFormStatus')}}</span>\r\n <ds-status class=\"disc\" [status]=\"getStatus(successData?.status?.key)\">\r\n {{ successData.status?.value }}\r\n </ds-status>\r\n </div>\r\n <div class=\"info-item px-3\" *ngIf=\"successData?.status?.key === 'PENDING'\">\r\n <!-- <span class=\"name fs-16-imp\">{{i18n.translate('formTablePendingWith')}}</span> -->\r\n\r\n <div class=\"d-flex align-items-center mt-2\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(successData?.nextApprover?.email)\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <div class=\"line-height-1 mx-2\">\r\n <h5 class=\"fs-14 fw-bold fc-black mb-0\">{{successData?.nextApprover?.name}}</h5>\r\n <span class=\"fs-12 text-color-dark-gray\">{{successData?.nextApprover?.email}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--<div class=\"d-flex align-items-center gap-3 mt-3\" *ngIf=\"!stateMachineService.isMobileApp()\">\r\n <ds-button >\r\n <a class=\"inboxUri\" href=\"{{inboxUri}}\">\r\n {{i18n.translate('formTableBackToInbox')}}</a>\r\n </ds-button>\r\n </div>-->\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: [".inboxUri{color:#fff!important}.inboxUri:hover{color:#ff375e!important}ds-button:hover a{color:#ff375e!important}\n"] }]
1819
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1820
+ type: Inject,
1821
+ args: [MAT_DIALOG_DATA]
1822
+ }] }, { type: CoreI18nService }] });
1823
+
1824
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1825
+ /* eslint-disable @angular-eslint/component-selector */
1826
+ //import { CoreI18nService} from '../../../../services';
1827
+ class ConfirmDialogComponent {
1828
+ dialogRef;
1829
+ i18n;
1830
+ constructor(dialogRef, i18n) {
1831
+ this.dialogRef = dialogRef;
1832
+ this.i18n = i18n;
1833
+ }
1834
+ confirm() {
1835
+ this.dialogRef.close('yes');
1836
+ //////
1837
+ }
1838
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1$4.MatDialogRef }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
1839
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
1840
+ }
1841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
1842
+ type: Component,
1843
+ args: [{ selector: 'app-confirm-dialog', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
1844
+ MatDialogContent,
1845
+ MatDialogClose
1846
+ ], template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3> {{i18n.translate('delete')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\">\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4\">\r\n {{i18n.translate('drf-confirmatton-msg')}}\r\n </h2>\r\n\r\n <div class=\"d-flex align-items-center gap-3\">\r\n <ds-button shape=\"outline\" color=\"dark-gray\" matDialogClose>{{i18n.translate('No-Discard')}}</ds-button>\r\n <ds-button color=\"red\" (click)=\"confirm()\">{{i18n.translate('Yes-Proceed')}}</ds-button>\r\n </div>\r\n </div>\r\n </mat-dialog-content>\r\n</div>", styles: ["::ng-deep .confirm-dialog{--popup-max-width: 350px}\n"] }]
1847
+ }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: CoreI18nService }] });
1848
+
1849
+ class FormatAsPasswordPipe {
1850
+ transform(value) {
1851
+ if (typeof value === 'number')
1852
+ value = value.toString();
1853
+ const length = value.length;
1854
+ return '*'.repeat(length);
1855
+ }
1856
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1857
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, name: "formatAsPassword" });
1858
+ }
1859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormatAsPasswordPipe, decorators: [{
1860
+ type: Pipe,
1861
+ args: [{
1862
+ name: 'formatAsPassword'
1863
+ }]
1864
+ }] });
1865
+
1866
+ /* eslint-disable no-useless-escape */
1867
+ class MycurrencyPipe {
1868
+ prefix;
1869
+ decimal_separator;
1870
+ thousands_separator;
1871
+ suffix;
1872
+ constructor() {
1873
+ this.prefix = '';
1874
+ this.suffix = '';
1875
+ this.decimal_separator = '.';
1876
+ this.thousands_separator = ',';
1877
+ }
1878
+ transform(value, allowNegative = false, decimalPrecision = 2) {
1879
+ if (value == undefined || value === '') {
1880
+ return null;
1881
+ }
1882
+ if (allowNegative) {
1883
+ value = value.toString();
1884
+ if (value.startsWith('(') || value.startsWith('-')) {
1885
+ value = '-' + value.substr(1, value.length).replace(/\(|\)|\$|\-/g, '');
1886
+ }
1887
+ else {
1888
+ value = value.replace(/\(|\)|\$|\-/g, '');
1889
+ }
1890
+ }
1891
+ let [integer, fraction = ''] = (value || '').toString().split(this.decimal_separator);
1892
+ fraction = decimalPrecision > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';
1893
+ integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, this.thousands_separator);
1894
+ // If user types .xx we can display 0.xx
1895
+ if (integer === '') {
1896
+ integer = '0';
1897
+ }
1898
+ else if (integer.startsWith('$')) {
1899
+ // If there are multiple transforms, remove the previous dollar sign (blur and change at the same time)
1900
+ integer = integer.substr(1, integer.length);
1901
+ }
1902
+ else if (allowNegative && integer.startsWith('-')) {
1903
+ // If user inputs negative number set to paranthesis format
1904
+ integer = integer.substr(1, integer.length);
1905
+ return '(' + this.prefix + integer + fraction + ')';
1906
+ }
1907
+ return this.prefix + integer + fraction;
1908
+ }
1909
+ parse(value, allowNegative = false) {
1910
+ let [integer, fraction = ''] = (value || '').split(this.decimal_separator);
1911
+ integer = integer.replace(new RegExp(/[^\d\.]/, 'g'), '');
1912
+ fraction = parseInt(fraction, 10) > 0 && 2 > 0 ? this.decimal_separator + (fraction + '000000').substring(0, 2) : '';
1913
+ if (allowNegative && value.startsWith('(') && value.endsWith(')')) {
1914
+ return (-1 * parseFloat(integer + fraction)).toString();
1915
+ }
1916
+ else {
1917
+ return integer + fraction;
1918
+ }
1919
+ }
1920
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1921
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, name: "mycurrency" });
1922
+ }
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MycurrencyPipe, decorators: [{
1924
+ type: Pipe,
1925
+ args: [{
1926
+ name: 'mycurrency'
1927
+ }]
1928
+ }], ctorParameters: () => [] });
1929
+
1930
+ class CustomDateFormat {
1931
+ _parse = {
1932
+ dateInput: 'DD/MM/YYYY'
1933
+ };
1934
+ _display = {
1935
+ dateInput: 'DD/MM/YYYY',
1936
+ monthYearLabel: 'DD MMM YYYY',
1937
+ dateA11yLabel: 'LL',
1938
+ monthYearA11yLabel: 'MMMM YYYY'
1939
+ };
1940
+ set parse(parse) {
1941
+ this._parse = Object.assign({}, this._parse, parse);
1942
+ }
1943
+ get parse() {
1944
+ return this._parse;
1945
+ }
1946
+ set display(display) {
1947
+ this._display = Object.assign({}, this._display, display);
1948
+ }
1949
+ get display() {
1950
+ return this._display;
1951
+ }
1952
+ updateDateFormat(parse, display) {
1953
+ this.parse = parse;
1954
+ if (!display) {
1955
+ display = parse;
1956
+ }
1957
+ this.display = display;
1958
+ }
1959
+ }
1960
+
1961
+ const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR = {
1962
+ provide: NG_VALUE_ACCESSOR,
1963
+ useExisting: forwardRef(() => BaseComponent),
794
1964
  multi: true,
795
1965
  };
796
1966
  class BaseComponent {
@@ -898,13 +2068,13 @@ class BaseComponent {
898
2068
  this.emitedValue.emit(this.field);
899
2069
  }
900
2070
  }
901
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BaseComponent, deps: [{ token: CoreI18nService }, { token: i2.HttpClient }, { token: i1$1.FormBuilder }, { token: i4.DateAdapter }, { token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: MycurrencyPipe }, { token: MAT_DATE_FORMATS }, { token: i7.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
2071
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BaseComponent, deps: [{ token: CoreI18nService }, { token: i1.HttpClient }, { token: i1$3.FormBuilder }, { token: i4$1.DateAdapter }, { token: i0.ChangeDetectorRef }, { token: i1$4.MatDialog }, { token: i1$4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: MycurrencyPipe }, { token: MAT_DATE_FORMATS }, { token: i7.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
902
2072
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: BaseComponent, isStandalone: true, selector: "app-base-component", inputs: { hideOption: "hideOption", type: "type", loading: "loading", field: "field", labelTextReadMode: "labelTextReadMode", labelTextWriteMode: "labelTextWriteMode", isReadOnly: "isReadOnly", name: "name", required: "required", mask: "mask", allowedExtensions: "allowedExtensions", link: "link", multiple: "multiple", insideTable: "insideTable", showIfEmpty: "showIfEmpty", showErrorMessage: "showErrorMessage", showHint: "showHint", hint: "hint", errorMessage: "errorMessage", placeholder: "placeholder", maxLength: "maxLength", minLength: "minLength", maxValue: "maxValue", minValue: "minValue", disabled: "disabled", lov: "lov", hasLabel: "hasLabel", section: "section", controller: "controller" }, outputs: { emitedValue: "emitedValue" }, providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: '', isInline: true, styles: [""], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
903
2073
  }
904
2074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BaseComponent, decorators: [{
905
2075
  type: Component,
906
2076
  args: [{ selector: 'app-base-component', template: '', providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true }]
907
- }], ctorParameters: () => [{ type: CoreI18nService }, { type: i2.HttpClient }, { type: i1$1.FormBuilder }, { type: i4.DateAdapter }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
2077
+ }], ctorParameters: () => [{ type: CoreI18nService }, { type: i1.HttpClient }, { type: i1$3.FormBuilder }, { type: i4$1.DateAdapter }, { type: i0.ChangeDetectorRef }, { type: i1$4.MatDialog }, { type: i1$4.MatDialogRef }, { type: undefined, decorators: [{
908
2078
  type: Inject,
909
2079
  args: [MAT_DIALOG_DATA]
910
2080
  }] }, { type: MycurrencyPipe }, { type: CustomDateFormat, decorators: [{
@@ -1687,7 +2857,7 @@ class CheckBoxComponent extends BaseComponent {
1687
2857
  // });
1688
2858
  }
1689
2859
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1690
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CheckBoxComponent, isStandalone: true, selector: "app-checkbox", inputs: { containTerms: "containTerms", termsLabel: "termsLabel", linkText: "linkText", hrefLink: "hrefLink" }, outputs: { downloadCheckBox: "downloadCheckBox" }, usesInheritance: true, ngImport: i0, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2860
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CheckBoxComponent, isStandalone: true, selector: "app-checkbox", inputs: { containTerms: "containTerms", termsLabel: "termsLabel", linkText: "linkText", hrefLink: "hrefLink" }, outputs: { downloadCheckBox: "downloadCheckBox" }, usesInheritance: true, ngImport: i0, template: "<mat-checkbox\r\n class=\"my-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\" [(ngModel)]=\"value\" [name]=\"name\"\r\n (change)=\"valueChange($event)\" [checked]=\"field\"\r\n>\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{ isReadOnly ? labelTextReadMode : labelTextWriteMode }}\r\n </span>\r\n <span\r\n class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" *ngIf=\"containTerms\"\r\n (click)=\"openTermsPopup(); false\">\r\n {{ termsLabel ? termsLabel : i18n.translate('termsAndConditions') }}\r\n </span>\r\n <ng-container *ngIf=\"link\">\r\n <span> | </span>\r\n <a class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1 d-inline-flex align-items-center gap-1\" href=\"{{hrefLink}}\" target=\"_blank\">\r\n <ds-icon icon=\"external-link\"></ds-icon>\r\n <span class=\"underline\">{{ linkText }}</span>\r\n </a>\r\n </ng-container>\r\n <!-- <a *ngIf=\"containDownload\" style=\"color: blue;\" class=\"fs-12 fw-bold fc-coral cursor-pointer mx-1\" href=\"{{hrefLink}}\" target=\"_top\"> {{termsLabel}}</a> -->\r\n</mat-checkbox>\r\n", styles: [".checkbox{margin-top:10px!important;position:relative;margin-bottom:0!important}.checkbox label{padding-left:30px;font-size:14px;color:#414142}.checkbox input[type=checkbox]{opacity:0}.checkbox input[type=checkbox]+label.checkboxInput{position:absolute;width:25px;height:25px;top:0;left:0;padding-left:0}@media (max-width: 768px){.checkbox input[type=checkbox]+label.checkboxInput{top:8px!important}}.checkbox input[type=checkbox]+label.checkboxInput:before{content:\"\\f096\";font-family:FontAwesome;font-size:25px;display:block;margin-top:-7px;color:#ddd}.checkbox input[type=checkbox]:checked+label.checkboxInput:before{content:\"\\f14a\";color:#da3f7b;background-color:#fff}.rtlCheckbox.checkbox input[type=checkbox]+label.checkboxInput{left:inherit;right:0;padding-left:0;padding-right:0}.rtlCheckbox.checkbox label{padding-left:0;padding-right:30px}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
1691
2861
  }
1692
2862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CheckBoxComponent, decorators: [{
1693
2863
  type: Component,
@@ -1926,7 +3096,7 @@ class CustomSearchableComponent extends BaseComponent {
1926
3096
  }
1927
3097
  }
1928
3098
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomSearchableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1929
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CustomSearchableComponent, isStandalone: true, selector: "app-custom-searchable", inputs: { myControl: "myControl", options: "options", label: "label", floatLabel: "floatLabel", className: "className" }, outputs: { selectedValue: "selectedValue", resetByDeleteBtn: "resetByDeleteBtn", isLengthGreaterThan4: "isLengthGreaterThan4" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\" [value]=\"field?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange()\" [formControl]=\"myControl\"\r\n [value]=\"field?.value\" ngDefaultControl [name]=\"name\" [matAutocomplete]=\"auto\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && field?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option['description']}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!myControl?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n</ng-container>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }] });
3099
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: CustomSearchableComponent, isStandalone: true, selector: "app-custom-searchable", inputs: { myControl: "myControl", options: "options", label: "label", floatLabel: "floatLabel", className: "className" }, outputs: { selectedValue: "selectedValue", resetByDeleteBtn: "resetByDeleteBtn", isLengthGreaterThan4: "isLengthGreaterThan4" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isReadOnly && field?.value\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\" [value]=\"field?.value\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : (disabled || loading) }\"\r\n [floatLabel]=\"floatLabel\" >\r\n <!-- (click)=\"clearInput()\" -->\r\n <span class=\"sfi sfi-search fc-coral fs-18\" matPrefix></span>\r\n <label class=\"mat-form-content\">\r\n <!-- <bdi> -->\r\n <input #autocompleteInput type=\"text\" (keydown)=\"onKeyDown($event, autocompleteInput)\" [attr.disabled]=\"disabled \" [placeholder]=\"label\" aria-label=\"Number\" matInput\r\n (input)=\"onValueChange()\" [formControl]=\"myControl\"\r\n [value]=\"field?.value\" ngDefaultControl [name]=\"name\" [matAutocomplete]=\"auto\">\r\n <!-- </bdi> -->\r\n </label>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <span class=\"sfi sfi-close d-inline-block fc-black cursor-pointer\" (click)=\"clearInput()\" matSuffix\r\n *ngIf=\"!loading && field?.value\"></span>\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" [displayWith]=\"displayFn\" \r\n (optionSelected)='getAutoComplete($event.option.value)'>\r\n <ng-container *ngIf=\"!noData\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n <div class=\"d-flex align-items-center\">\r\n <figure *ngIf=\"option['avatar_url']\" class=\"img-card small circled-img p-0 m-0\">\r\n <img [src]=\"option['avatar_url']\" alt=\"\">\r\n </figure>\r\n <span *ngIf=\"option['avatar_url']\" class=\"mx-2\"></span>\r\n <!-- <bdi> -->\r\n {{option['description']}}\r\n <!-- </bdi> -->\r\n </div>\r\n </mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <mat-option [disabled]=\"true\" class=\"text-center\">No Data</mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!myControl?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n</ng-container>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }] });
1930
3100
  }
1931
3101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CustomSearchableComponent, decorators: [{
1932
3102
  type: Component,
@@ -2135,7 +3305,7 @@ class DatePickerComponent extends BaseComponent {
2135
3305
  provide: MAT_DATE_FORMATS,
2136
3306
  useClass: CustomDateFormat
2137
3307
  },
2138
- ], viewQueries: [{ propertyName: "datepickerObj", first: true, predicate: ["default"], descendants: true }, { propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{labelTextWriteMode}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : disabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"hasLabel ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"date\">\r\n </label>\r\n <ds-icon *ngIf=\"date?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"field\" [hasLabel]=\"hasLabel\">\r\n </app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3308
+ ], viewQueries: [{ propertyName: "datepickerObj", first: true, predicate: ["default"], descendants: true }, { propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{labelTextWriteMode}}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('optional')}} </span>\r\n </div>\r\n <div class=\"justify-content-between mb-1\">\r\n <mat-form-field [ngClass]=\"{'input-disabled' : disabled }\" [floatLabel]=\"floatLabel\">\r\n <label class=\"mat-form-content\">\r\n <input matInput (dateInput)=\"dateChange($event)\" [placeholder]=\"hasLabel ? (i18n.translate('select') + ' ' + labelTextWriteMode) : ''\" (focus)=\"focusPicker(dp)\" [min]=\"minDateValue\"\r\n [max]=\"maxDateValue\" readonly [matDatepicker]=\"dp\" [formControl]=\"date\">\r\n </label>\r\n <ds-icon *ngIf=\"date?.value\" matSuffix icon=\"close\" class=\"fc-onyx fs-10 mx-2 cursor-pointer\" (click)=\"clearDateValue($event)\"></ds-icon>\r\n <mat-datepicker-toggle matSuffix [for]=\"dp\">\r\n <ds-icon icon=\"calendar-o\" class=\"fc-black fs-18\" matDatepickerToggleIcon></ds-icon>\r\n </mat-datepicker-toggle>\r\n <mat-datepicker #dp>\r\n </mat-datepicker>\r\n <mat-error *ngIf=\"errorMessage\">{{errorMessage}}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\">\r\n <app-info-item class=\"info-item w-100\" type=\"date\" [insideTable]=\"insideTable\" [dateType]=\"calendarType\" [label]=\"labelTextReadMode\"\r\n [value]=\"field\" [hasLabel]=\"hasLabel\">\r\n </app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}::ng-deep .year-only .mat-calendar-period-button{pointer-events:none}::ng-deep .year-only .mat-calendar-arrow{display:none}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2139
3309
  }
2140
3310
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePickerComponent, decorators: [{
2141
3311
  type: Component,
@@ -2329,7 +3499,7 @@ class InputComponent extends BaseComponent {
2329
3499
  this.emitedValue.emit(this.field.trim());
2330
3500
  }
2331
3501
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2332
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", hasTooltip: "hasTooltip", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals", emitedChangedValue1: "emitedChangedValue1", useCurrency: "useCurrency", useMask: "useMask" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{label}}</span>}\r\n @if(!required && !hideOption){<span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}</span>}\r\n @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info fs-22\" class=\"cursor-pointer\" [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n @if(iconPrefixName){<span matPrefix class=\"sfi {{iconPrefixName}}\"></span>}\r\n @if(loading){<span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>}\r\n \r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input arOnly matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n @if(type === 'enOnly'){\r\n <input enOnly matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n <!-- -->\r\n @if(type !== 'enOnly' && type !== 'arOnly'){\r\n <input matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" [type]=\"type\"\r\n (input)=\"onValueChange($event)\" (change)=\"onValueChange1($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n </label>\r\n @if(matSuffix){<span matSuffix class=\"sfi {{iconSuffixName}}\"></span>}\r\n @if(!controller?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n }\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n @if(showErrorMessage && controller.value){\r\n <span class=\"fc-coral\" style=\"color:#f44336\">\r\n {{errorMessage}}\r\n </span>\r\n }\r\n}\r\n\r\n@if(isReadOnly && (showIfEmpty || field)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [type]=\"type\" [value]=\"field\"></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n \r\n </ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]='tooltip'></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1$2.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
3502
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "app-input", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", hasTooltip: "hasTooltip", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals", emitedChangedValue1: "emitedChangedValue1", useCurrency: "useCurrency", useMask: "useMask" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n @if(hasLabel){\r\n <div class=\"d-flex justify-content-between mb-1\">\r\n @if(!hasTooltip){<span class=\"form-label mb-0\">{{label}}</span>}\r\n @if(!required && !hideOption){<span class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}</span>}\r\n @if(hasTooltip){\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info fs-22\" class=\"cursor-pointer\" [satPopoverAnchor]=\"popover\"\r\n (click)=\"popover.toggle(); $event.stopImmediatePropagation()\"></ds-icon>\r\n </span>\r\n }\r\n </div>\r\n }\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n @if(iconPrefixName){<span matPrefix class=\"sfi {{iconPrefixName}}\"></span>}\r\n @if(loading){<span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix></span>}\r\n \r\n <label class=\"mat-form-content\">\r\n <!-- add input for ar && en custom directive with add type = arOnly || type = enOnly-->\r\n @if(type === 'arOnly'){\r\n <input arOnly matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n @if(type === 'enOnly'){\r\n <input enOnly matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n <!-- -->\r\n @if(type !== 'enOnly' && type !== 'arOnly'){\r\n <input matInput [value]=\"value\"\r\n [attr.disabled]=\"disabled\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" [type]=\"type\"\r\n (input)=\"onValueChange($event)\" (change)=\"onValueChange1($event)\" [required]=\"required\" [maxlength]=\"maxLength\" [minLength]=\"minLength\"\r\n [placeholder]=\"placeholder\">\r\n }\r\n </label>\r\n @if(matSuffix){<span matSuffix class=\"sfi {{iconSuffixName}}\"></span>}\r\n @if(!controller?.valid){\r\n <mat-error class=\"mb-2\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n }\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n @if(showErrorMessage && controller.value){\r\n <span class=\"fc-coral\" style=\"color:#f44336\">\r\n {{errorMessage}}\r\n </span>\r\n }\r\n}\r\n\r\n@if(isReadOnly && (showIfEmpty || field)){\r\n <ng-container class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [type]=\"type\" [value]=\"field\"></app-info-item>\r\n @if(showHint){\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{hint}}</span>\r\n </mat-hint>\r\n }\r\n \r\n </ng-container>\r\n}\r\n\r\n<!-- section tooltip -->\r\n<!-- <sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover> -->\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3 fs-14\">\r\n <span class=\"fs-14 fw-bold signature-notes\" [innerHTML]='tooltip'></span>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1$2.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
2333
3503
  }
2334
3504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, decorators: [{
2335
3505
  type: Component,
@@ -2476,7 +3646,7 @@ class InputNumberComponent extends BaseComponent {
2476
3646
  this.emitedChangedValue.emit(this.field.trim());
2477
3647
  }
2478
3648
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2479
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputNumberComponent, isStandalone: true, selector: "app-input-number", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals", allowedPattern: "allowedPattern" }, outputs: { emitedChangedValue: "emitedChangedValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
3649
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputNumberComponent, isStandalone: true, selector: "app-input-number", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals", allowedPattern: "allowedPattern" }, outputs: { emitedChangedValue: "emitedChangedValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <!-- pattern=\"\\d*\" -->\r\n <ng-container *ngIf=\"!allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"allowedPattern\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" numberOnly\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (change)=\"onValueChangeEvent($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" [mask]=\"mask\" >\r\n </ng-container>\r\n </label>\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color: rgb(207 37 67);font-size: 10px;\" *ngIf=\"( showErrorMessage )\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
2480
3650
  }
2481
3651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputNumberComponent, decorators: [{
2482
3652
  type: Component,
@@ -2586,7 +3756,7 @@ class InputEmailComponent extends BaseComponent {
2586
3756
  this.emitedValue.emit(this.field.trim());
2587
3757
  }
2588
3758
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2589
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputEmailComponent, isStandalone: true, selector: "app-input-email", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"disabled\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n\r\n\r\n <mat-error *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3759
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputEmailComponent, isStandalone: true, selector: "app-input-email", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\" [disabled]=\"disabled\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\" \r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n </div>\r\n\r\n\r\n <mat-error *ngIf=\"(!controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none;opacity:1.5}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
2590
3760
  }
2591
3761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputEmailComponent, decorators: [{
2592
3762
  type: Component,
@@ -2692,7 +3862,7 @@ class InputMaskComponent extends BaseComponent {
2692
3862
  this.emitedValue.emit(this.field.trim());
2693
3863
  }
2694
3864
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2695
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputMaskComponent, isStandalone: true, selector: "app-input-mask", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
3865
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputMaskComponent, isStandalone: true, selector: "app-input-mask", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [attr.disabled]=\"disabled\" [mask]=\"mask\"\r\n [showMaskTyped]=\"false\" oninput=\"validity.valid || (value='');\" [formControl]=\"controller\"\r\n (input)=\"onValueChange($event)\" [required]=\"required\" [placeholder]=\"placeholder\">\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <!-- <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black\"></span> -->\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && field\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [insideTable]=\"insideTable\" [hasLabel]=\"hasLabel\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
2696
3866
  }
2697
3867
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputMaskComponent, decorators: [{
2698
3868
  type: Component,
@@ -2826,7 +3996,7 @@ class InputCurrencyComponent extends BaseComponent {
2826
3996
  this.emitedValue.emit(this.field.trim());
2827
3997
  }
2828
3998
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputCurrencyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2829
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputCurrencyComponent, isStandalone: true, selector: "app-input-currency", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", showPlus: "showPlus", showMinus: "showMinus", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (paste)=\"false\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" appMycurrency>\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showMinus\" (click)=\"minus()\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showPlus\" (click)=\"plus()\"></span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'currency'\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
3999
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputCurrencyComponent, isStandalone: true, selector: "app-input-currency", inputs: { label: "label", displayValue: "displayValue", hasError: "hasError", error: "error", tooltip: "tooltip", floatLabel: "floatLabel", className: "className", showLabel: "showLabel", showPlus: "showPlus", showMinus: "showMinus", matPrefix: "matPrefix", iconPrefixName: "iconPrefixName", matSuffix: "matSuffix", iconSuffixName: "iconSuffixName", numberSuffixName: "numberSuffixName", optional: "optional", showArrows: "showArrows", decimals: "decimals" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <!-- <app-form-label [label]=\"label\" [optional]=\"!required\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\"></app-form-label> -->\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{label}}</span>\r\n <span *ngIf=\"!required && ! hideOption\" class=\"fs-11 fc-dark-gray\">{{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [ngClass]=\"{'input-disabled' : disabled }\"\r\n [floatLabel]=\"floatLabel\">\r\n\r\n <span *ngIf=\"iconPrefixName\" matPrefix class=\"sfi {{iconPrefixName}}\"></span>\r\n <label class=\"mat-form-content\">\r\n\r\n <input matInput [placeholder]=\"placeholder\" [value]=\"value\" [disabled]=\"disabled\"\r\n oninput=\"validity.valid || (value='');\" [formControl]=\"controller\" (input)=\"onValueChange($event)\"\r\n (paste)=\"false\"\r\n [required]=\"required\" [placeholder]=\"placeholder\" appMycurrency>\r\n </label>\r\n\r\n <span *ngIf=\"matSuffix\" matSuffix class=\"sfi {{iconSuffixName}}\"></span>\r\n <div *ngIf=\"type === 'number'\" matSuffix class=\"d-flex align-items-center gap-2 position-relative\"\r\n (click)=\"$event.stopPropagation()\">\r\n <span class=\"fs-14 fw-medium\" *ngIf=\"numberSuffixName\">{{numberSuffixName}}</span>\r\n <span class=\"sfi sfi-minus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showMinus\" (click)=\"minus()\"></span>\r\n <span class=\"sfi sfi-plus p-2 bc-light-gray fc-black cursor-pointer\" *ngIf=\"showPlus\" (click)=\"plus()\"></span>\r\n </div>\r\n <mat-error class=\"mb-2\" *ngIf=\"(type !=='email' && !controller?.valid)\">\r\n {{i18n.translate('validFieldError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-error *ngIf=\"(type ==='email' && !controller?.valid)\">\r\n {{i18n.translate('validEmailError')}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n <span class=\"fc-coral\" style=\"color:#f44336\" *ngIf=\"( showErrorMessage && controller.value)\">\r\n {{errorMessage}}\r\n </span>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [type]=\"'currency'\" [label]=\"label\" [insideTable]=\"insideTable\"\r\n [hasLabel]=\"hasLabel\" [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n\r\n\r\n<!-- section tooltip -->\r\n<sat-popover #popover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"deafult-tooltip\">\r\n {{tooltip}}\r\n </div>\r\n</sat-popover>\r\n", styles: [":host{flex-grow:1}.input-disabled{pointer-events:none!important;opacity:1.5}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2830
4000
  }
2831
4001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputCurrencyComponent, decorators: [{
2832
4002
  type: Component,
@@ -3216,7 +4386,7 @@ class SearchEmployeeComponent extends BaseComponent {
3216
4386
  // this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');
3217
4387
  }
3218
4388
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SearchEmployeeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SearchEmployeeComponent, isStandalone: true, selector: "app-search-employee", inputs: { valueName: "valueName", label: "label", tooltip: "tooltip", className: "className", showLabel: "showLabel", optional: "optional", data: "data", floatLabel: "floatLabel", error: "error", showEdit: "showEdit", arrayList: "arrayList", isUniqueUsers: "isUniqueUsers" }, outputs: { selectedEmp: "selectedEmp", onInputChange: "onInputChange", editDirectManger: "editDirectManger", deleteDirectManger: "deleteDirectManger", emitedDeletedValue: "emitedDeletedValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info\" class=\"cursor-pointer\" [satPopoverAnchor]=\"searchEmpPopover\"\r\n ></ds-icon>\r\n <!-- (click)=\"searchEmpPopover.toggle(); $event.stopImmediatePropagation()\" -->\r\n </span>\r\n\r\n <span *ngIf=\"optional && !hideOption\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [floatLabel]=\"floatLabel\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <ds-icon matPrefix icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input type=\"text\" aria-label=\"Number\" (input)=\"onLoadOptions($event)\" matInput [disabled]=\"disabled\"\r\n [formControl]=\"controller\" [matAutocomplete]=\"auto\">\r\n \r\n </label>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of data\" [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option , $event)\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(option?.email)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <span class=\"mx-2\"></span>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-17 fw-medium fc-onyx mb-0 line-height-1\">{{option?.name}}</h6>\r\n <span class=\"fs-13 fw-normal fc-dark-gray\">\r\n {{option?.description}}\r\n </span>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSearchError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"userAlreadyExist\">\r\n {{ i18n.translate('userAlreadyExist') }}\r\n </mat-error>\r\n\r\n <div class=\"col-12\" *ngIf=\"arrayList?.length && !isReadOnly && multiple\">\r\n <div class=\"example-list n-results\">\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{'mt-0': ind === 0}\"\r\n *ngFor=\"let emails of arrayList; let ind = index\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <img [src]=\"getImage(emails?.personEmail)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n alt=\"\" class=\"prof-img\" draggable=\"false\">\r\n <label *ngIf=\"emails?.personName\">\r\n {{(emails?.personName)}}\r\n <span class=\"title\">\r\n {{emails?.personEmail}}\r\n </span>\r\n </label>\r\n </div>\r\n <ds-button class=\"ds-btn-action\" size=\"small\" *ngIf=\"!(isReadOnly)\" (click)=\"deleteRow(ind,emails)\" icon>\r\n <ds-icon icon=\"trash\" class=\"fc-red fs-20\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"(isReadOnly && (field?.personName || multiple))\">\r\n <app-info-item class=\"d-flex flex-wrap align-items-center info-item w-100 mb-2\" type=\"user-picker\" [hasLabel]=\"hasLabel\"\r\n [multiple]=\"multiple\" [ngClass]=\"{'user-picker': !isReadOnly}\" [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"labelTextReadMode\" [name]=\"field?.personName\" [value]=\"field?.personEmail\" [arrayList]=\"arrayList\">\r\n </app-info-item>\r\n</ng-container>\r\n\r\n<sat-popover #searchEmpPopover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3\">\r\n <ol class=\"px-3 m-0\">\r\n <li>{{i18n.translate('searchEmployeeTooltip_1')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_2')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_3')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_4')}}</li>\r\n </ol>\r\n </div>\r\n</sat-popover>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}.agenda-list.inside .mat-list-item{display:flex;align-items:center;padding:0 1rem;background-color:#fff;border:1px solid silver;height:88px!important}.agenda-list.inside .mat-list-item:before{position:relative;left:auto;right:auto}.agenda-list .mat-list-item{height:66px!important;background-color:#d3d3d3;margin-bottom:1.5rem;cursor:move}.agenda-list .mat-list-item:hover:before{opacity:1}.agenda-list .mat-list-item:before{content:\"\\e928\";font-family:stc-font-icons;left:-1.5rem;color:#a9a9a9;position:absolute;font-size:1.5rem;opacity:0;transition:all .3s linear}[dir=rtl] .agenda-list .mat-list-item:before{left:auto;right:-1.5rem}.agenda-list .mat-list-item:last-child{margin-bottom:0}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:0;overflow:hidden}.example-box{color:#000000de;display:flex;box-sizing:border-box;cursor:move;font-size:14px;position:relative;background-color:#f3f3f1;padding:18px;justify-content:space-between;align-items:flex-start;margin-top:10px;padding-inline-start:50px;border:0;flex-direction:column;width:100%}.example-box .user-info{display:flex;align-items:center}.example-box .user-info .drag-icon{position:absolute;left:18px;cursor:move}html[dir=rtl] .example-box .user-info .drag-icon{left:auto;right:18px}.example-box .user-info .prof-img{width:40px;height:40px;border-radius:50%;border:2px solid #fff;margin-inline-end:10px}.example-box .user-info label{font-size:13px;font-weight:500;color:#1d242d;flex-grow:1}.example-box .user-info label .title{display:block;color:#ff375e;font-size:9px}.example-box .user-info-reviewer{display:flex;gap:.5rem;width:calc(100% + 68px);padding:10px 15px;margin:10px 0 -18px -50px;background-color:#dde0e1}[dir=rtl] .example-box .user-info-reviewer{margin:10px -50px -18px 0}.example-box .user-info-reviewer .drag-icon{position:absolute;transform:translateY(-50%);cursor:move}.example-box .user-info-reviewer .reviewer-info{display:flex}.example-box .user-info-reviewer .reviewer-info .prof-img{width:20px;height:20px;border-radius:50%;border:1px solid #fff;margin:0 5px}.example-box .user-info-reviewer .reviewer-info label{font-size:11px;font-weight:500;color:#000;width:100px;margin-top:1px}.example-box .user-info-reviewer .reviewer-info label .title{display:block;color:#ff375e;font-size:11px}.example-box .user-info-reviewer span{color:#a54ee1;font-size:11px;padding:0;margin-bottom:0;display:block;text-align:start}.example-box .icon{width:30px;height:30px;background-color:#ff375e33;text-align:center;line-height:26px;cursor:pointer;flex-shrink:0}.cdk-drag-preview{box-sizing:border-box;border-radius:0;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.cdk-drag-preview .icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.n-content{max-width:700px;width:100%}.n-results{width:100%;border:0;counter-reset:section}.n-results .n-col{position:relative;background-color:#f3f3f1;padding:10px;justify-content:space-between;align-items:flex-start;margin-top:10px;padding-inline-start:50px;border:0;flex-direction:column;width:100%}.n-results .n-col:last-child{margin-bottom:30px}.n-results .n-col:after,.n-results .n-col:before{display:none}@media (max-width: 991px){.example-box .user-info:before{margin-inline-end:10px;flex-shrink:0}}@media (max-width: 767px){.n-col{padding-inline-start:40px}.n-col .user-info-reviewer span{margin-bottom:0}}@media (max-width: 321px){.n-results .n-col{flex-wrap:wrap;justify-content:center}.n-results .n-col .user-info{justify-content:center}.n-results .n-col .user-info:before{position:absolute;top:15px;left:15px}.n-results .n-col .user-info .prof-img{margin:0 10px 10px}.n-results .n-col .user-info label{width:100%;text-align:center}.n-results .n-col .icon{width:100%}}::ng-deep .default-popover{max-width:320px;right:-2.5rem!important}[dir=rtl] ::ng-deep .default-popover{left:-2.5rem!important;right:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SearchEmployeeComponent, isStandalone: true, selector: "app-search-employee", inputs: { valueName: "valueName", label: "label", tooltip: "tooltip", className: "className", showLabel: "showLabel", optional: "optional", data: "data", floatLabel: "floatLabel", error: "error", showEdit: "showEdit", arrayList: "arrayList", isUniqueUsers: "isUniqueUsers" }, outputs: { selectedEmp: "selectedEmp", onInputChange: "onInputChange", editDirectManger: "editDirectManger", deleteDirectManger: "deleteDirectManger", emitedDeletedValue: "emitedDeletedValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">\r\n {{labelTextWriteMode}}\r\n <ds-icon icon=\"info\" class=\"cursor-pointer\" [satPopoverAnchor]=\"searchEmpPopover\"\r\n ></ds-icon>\r\n <!-- (click)=\"searchEmpPopover.toggle(); $event.stopImmediatePropagation()\" -->\r\n </span>\r\n\r\n <span *ngIf=\"optional && !hideOption\" class=\"fs-11 fc-dark-gray\"> {{i18n.translate('Optional')}}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"primary-form {{className}}\" [floatLabel]=\"floatLabel\">\r\n <mat-label>\r\n {{label}}\r\n </mat-label>\r\n <ds-icon matPrefix icon=\"search\" class=\"fc-coral fs-18\"></ds-icon>\r\n <label class=\"mat-form-content\">\r\n <input type=\"text\" aria-label=\"Number\" (input)=\"onLoadOptions($event)\" matInput [disabled]=\"disabled\"\r\n [formControl]=\"controller\" [matAutocomplete]=\"auto\">\r\n \r\n </label>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n <span class=\"sfi sfi-spinner d-inline-block spin fc-coral\" matSuffix *ngIf=\"loading\"></span>\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of data\" [value]=\"option?.['personName']\"\r\n (onSelectionChange)=\"selectOption(option , $event)\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"img-card circled-img small\">\r\n <img [src]=\"getImage(option?.email)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </div>\r\n <span class=\"mx-2\"></span>\r\n <div class=\"line-height-1\">\r\n <h6 class=\"fs-17 fw-medium fc-onyx mb-0 line-height-1\">{{option?.name}}</h6>\r\n <span class=\"fs-13 fw-normal fc-dark-gray\">\r\n {{option?.description}}\r\n </span>\r\n </div>\r\n </div>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSearchError')}}{{label}}\r\n </mat-error>\r\n <mat-hint *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-check-circle font-10 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"fs-12 fc-onyx\">{{hint}}</span>\r\n </mat-hint>\r\n </mat-form-field>\r\n <mat-error class=\"mb-2\" *ngIf=\"showErrorMessage\">{{errorMessage}}\r\n </mat-error>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"userAlreadyExist\">\r\n {{ i18n.translate('userAlreadyExist') }}\r\n </mat-error>\r\n\r\n <div class=\"col-12\" *ngIf=\"arrayList?.length && !isReadOnly && multiple\">\r\n <div class=\"example-list n-results\">\r\n <div class=\"example-box n-col px-3\" [ngClass]=\"{'mt-0': ind === 0}\"\r\n *ngFor=\"let emails of arrayList; let ind = index\">\r\n <div class=\"d-flex flex-grow-1 w-100\">\r\n <div class=\"user-info flex-grow-1\">\r\n <img [src]=\"getImage(emails?.personEmail)\" onerror=\"this.onerror=null;this.src='assets/images/user.svg';\"\r\n alt=\"\" class=\"prof-img\" draggable=\"false\">\r\n <label *ngIf=\"emails?.personName\">\r\n {{(emails?.personName)}}\r\n <span class=\"title\">\r\n {{emails?.personEmail}}\r\n </span>\r\n </label>\r\n </div>\r\n <ds-button class=\"ds-btn-action\" size=\"small\" *ngIf=\"!(isReadOnly)\" (click)=\"deleteRow(ind,emails)\" icon>\r\n <ds-icon icon=\"trash\" class=\"fc-red fs-20\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"(isReadOnly && (field?.personName || multiple))\">\r\n <app-info-item class=\"d-flex flex-wrap align-items-center info-item w-100 mb-2\" type=\"user-picker\" [hasLabel]=\"hasLabel\"\r\n [multiple]=\"multiple\" [ngClass]=\"{'user-picker': !isReadOnly}\" [actionType]=\"!isReadOnly ? 'delete' : 'edit'\"\r\n [label]=\"labelTextReadMode\" [name]=\"field?.personName\" [value]=\"field?.personEmail\" [arrayList]=\"arrayList\">\r\n </app-info-item>\r\n</ng-container>\r\n\r\n<sat-popover #searchEmpPopover [hasBackdrop]=\"true\" verticalAlign=\"below\">\r\n <div class=\"default-popover p-3\">\r\n <ol class=\"px-3 m-0\">\r\n <li>{{i18n.translate('searchEmployeeTooltip_1')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_2')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_3')}}</li>\r\n <li>{{i18n.translate('searchEmployeeTooltip_4')}}</li>\r\n </ol>\r\n </div>\r\n</sat-popover>\r\n", styles: [".small-input~.btn{height:41px}:host{flex-grow:1}.agenda-list.inside .mat-list-item{display:flex;align-items:center;padding:0 1rem;background-color:#fff;border:1px solid silver;height:88px!important}.agenda-list.inside .mat-list-item:before{position:relative;left:auto;right:auto}.agenda-list .mat-list-item{height:66px!important;background-color:#d3d3d3;margin-bottom:1.5rem;cursor:move}.agenda-list .mat-list-item:hover:before{opacity:1}.agenda-list .mat-list-item:before{content:\"\\e928\";font-family:stc-font-icons;left:-1.5rem;color:#a9a9a9;position:absolute;font-size:1.5rem;opacity:0;transition:all .3s linear}[dir=rtl] .agenda-list .mat-list-item:before{left:auto;right:-1.5rem}.agenda-list .mat-list-item:last-child{margin-bottom:0}.example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:0;overflow:hidden}.example-box{color:#000000de;display:flex;box-sizing:border-box;cursor:move;font-size:14px;position:relative;background-color:#f3f3f1;padding:18px;justify-content:space-between;align-items:flex-start;margin-top:10px;padding-inline-start:50px;border:0;flex-direction:column;width:100%}.example-box .user-info{display:flex;align-items:center}.example-box .user-info .drag-icon{position:absolute;left:18px;cursor:move}html[dir=rtl] .example-box .user-info .drag-icon{left:auto;right:18px}.example-box .user-info .prof-img{width:40px;height:40px;border-radius:50%;border:2px solid #fff;margin-inline-end:10px}.example-box .user-info label{font-size:13px;font-weight:500;color:#1d242d;flex-grow:1}.example-box .user-info label .title{display:block;color:#ff375e;font-size:9px}.example-box .user-info-reviewer{display:flex;gap:.5rem;width:calc(100% + 68px);padding:10px 15px;margin:10px 0 -18px -50px;background-color:#dde0e1}[dir=rtl] .example-box .user-info-reviewer{margin:10px -50px -18px 0}.example-box .user-info-reviewer .drag-icon{position:absolute;transform:translateY(-50%);cursor:move}.example-box .user-info-reviewer .reviewer-info{display:flex}.example-box .user-info-reviewer .reviewer-info .prof-img{width:20px;height:20px;border-radius:50%;border:1px solid #fff;margin:0 5px}.example-box .user-info-reviewer .reviewer-info label{font-size:11px;font-weight:500;color:#000;width:100px;margin-top:1px}.example-box .user-info-reviewer .reviewer-info label .title{display:block;color:#ff375e;font-size:11px}.example-box .user-info-reviewer span{color:#a54ee1;font-size:11px;padding:0;margin-bottom:0;display:block;text-align:start}.example-box .icon{width:30px;height:30px;background-color:#ff375e33;text-align:center;line-height:26px;cursor:pointer;flex-shrink:0}.cdk-drag-preview{box-sizing:border-box;border-radius:0;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f;overflow:hidden}.cdk-drag-preview .icon{display:none}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.n-content{max-width:700px;width:100%}.n-results{width:100%;border:0;counter-reset:section}.n-results .n-col{position:relative;background-color:#f3f3f1;padding:10px;justify-content:space-between;align-items:flex-start;margin-top:10px;padding-inline-start:50px;border:0;flex-direction:column;width:100%}.n-results .n-col:last-child{margin-bottom:30px}.n-results .n-col:after,.n-results .n-col:before{display:none}@media (max-width: 991px){.example-box .user-info:before{margin-inline-end:10px;flex-shrink:0}}@media (max-width: 767px){.n-col{padding-inline-start:40px}.n-col .user-info-reviewer span{margin-bottom:0}}@media (max-width: 321px){.n-results .n-col{flex-wrap:wrap;justify-content:center}.n-results .n-col .user-info{justify-content:center}.n-results .n-col .user-info:before{position:absolute;top:15px;left:15px}.n-results .n-col .user-info .prof-img{margin:0 10px 10px}.n-results .n-col .user-info label{width:100%;text-align:center}.n-results .n-col .icon{width:100%}}::ng-deep .default-popover{max-width:320px;right:-2.5rem!important}[dir=rtl] ::ng-deep .default-popover{left:-2.5rem!important;right:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i1$5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i1$5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3220
4390
  }
3221
4391
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SearchEmployeeComponent, decorators: [{
3222
4392
  type: Component,
@@ -3382,7 +4552,7 @@ class SelectComponent extends BaseComponent {
3382
4552
  });
3383
4553
  }
3384
4554
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3385
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SelectComponent, isStandalone: true, selector: "app-select", inputs: { valueName: "valueName", parentKey: "parentKey", label: "label", tooltip: "tooltip", className: "className", showLabel: "showLabel", readonly: "readonly", optional: "optional", data: "data", error: "error", optionAr: "optionAr", optionEn: "optionEn", hasPlaceHolder: "hasPlaceHolder", parentValue: "parentValue" }, outputs: { onChange: "onChange", emitedMultiValue: "emitedMultiValue" }, viewQueries: [{ propertyName: "selectCtrl", first: true, predicate: ["selectCtrl"], descendants: true }, { propertyName: "selectAllOption", first: true, predicate: ["selectAllOption"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <app-form-label [label]=\"label\" [optional]=\"optional\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\">\r\n </app-form-label>\r\n <mat-form-field class=\"{{className}}\" [floatLabel]=\"'auto'\">\r\n <mat-label>\r\n {{ hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <ng-container *ngIf=\"!multiple\">\r\n <mat-select disableOptionCentering [disabled]=\"disabled\" [formControl]=\"controller\"\r\n (selectionChange)=\"emitSelectedValue($event)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n <ng-container *ngIf=\"parentKey !== ''\">\r\n <ng-container *ngFor=\"let element of lov?.options\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\">\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"multiple\">\r\n <mat-select #selectCtrl [disabled]=\"disabled\" [formControl]=\"controller\" multiple\r\n (selectionChange)=\"handleOnOptionSelected($event?.value)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n\r\n <mat-select-trigger *ngIf=\"selectAllEnabled\">\r\n {{ transformSelectedData(controller?.getRawValue())}}\r\n <span *ngIf=\"(controller.value?.length || 0) > 1\" >\r\n (+{{ (controller.value?.length || 0) - 1 }} {{ controller.value?.length === 2 ? i18n.translate('other') : i18n.translate('others') }})\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <ng-container *ngIf=\"parentKey !== ''\" >\r\n <ng-container *ngFor=\"let element of lov?.options\" class=\"mx-2\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\" >\r\n\r\n <mat-option #selectAllOption *ngIf=\"selectAllEnabled && lov?.options?.length\" value=\"all\" class=\"mx-2\" (click)=\"toggleAllOptions(selectAllOption)\">\r\n {{i18n.translate('selectAll')}}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\" class=\"mx-2\">\r\n {{element.description}}\r\n </mat-option>\r\n\r\n\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n <mat-label *ngIf=\"loading\">\r\n <div class=\"select-placeholder-container\">\r\n <!-- <span>Loading...</span> -->\r\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\r\n </div>\r\n </mat-label>\r\n\r\n </label>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint && hint\" class=\"mb-2\">\r\n <span class=\"mat-error\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n <!-- <mat-error *ngIf=\"!controller.valid\">{{error}}</mat-error> -->\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field?.value)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field?.value || field?.key\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && multiple\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [type]=\"'multipleSelect'\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: FormLabelComponent, selector: "app-form-label", inputs: ["hideOption", "showLabel", "label", "optional"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }] });
4555
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SelectComponent, isStandalone: true, selector: "app-select", inputs: { valueName: "valueName", parentKey: "parentKey", label: "label", tooltip: "tooltip", className: "className", showLabel: "showLabel", readonly: "readonly", optional: "optional", data: "data", error: "error", optionAr: "optionAr", optionEn: "optionEn", hasPlaceHolder: "hasPlaceHolder", parentValue: "parentValue" }, outputs: { onChange: "onChange", emitedMultiValue: "emitedMultiValue" }, viewQueries: [{ propertyName: "selectCtrl", first: true, predicate: ["selectCtrl"], descendants: true }, { propertyName: "selectAllOption", first: true, predicate: ["selectAllOption"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <app-form-label [label]=\"label\" [optional]=\"optional\" [hideOption]=\"hideOption\" [showLabel]=\"showLabel\">\r\n </app-form-label>\r\n <mat-form-field class=\"{{className}}\" [floatLabel]=\"'auto'\">\r\n <mat-label>\r\n {{ hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')}}\r\n </mat-label>\r\n <label class=\"mat-form-content\">\r\n <ng-container *ngIf=\"!multiple\">\r\n <mat-select disableOptionCentering [disabled]=\"disabled\" [formControl]=\"controller\"\r\n (selectionChange)=\"emitSelectedValue($event)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n <ng-container *ngIf=\"parentKey !== ''\">\r\n <ng-container *ngFor=\"let element of lov?.options\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\">\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"multiple\">\r\n <mat-select #selectCtrl [disabled]=\"disabled\" [formControl]=\"controller\" multiple\r\n (selectionChange)=\"handleOnOptionSelected($event?.value)\"\r\n [placeholder]=\"hasPlaceHolder ? placeholder : i18n.translate('selectYourOption')\">\r\n\r\n <mat-select-trigger *ngIf=\"selectAllEnabled\">\r\n {{ transformSelectedData(controller?.getRawValue())}}\r\n <span *ngIf=\"(controller.value?.length || 0) > 1\" >\r\n (+{{ (controller.value?.length || 0) - 1 }} {{ controller.value?.length === 2 ? i18n.translate('other') : i18n.translate('others') }})\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <ng-container *ngIf=\"parentKey !== ''\" >\r\n <ng-container *ngFor=\"let element of lov?.options\" class=\"mx-2\">\r\n <mat-option *ngIf=\"element?.parentValue === parentKey\" [value]=\"element.value\">\r\n {{element.description}}\r\n </mat-option>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"parentKey ===''\" >\r\n\r\n <mat-option #selectAllOption *ngIf=\"selectAllEnabled && lov?.options?.length\" value=\"all\" class=\"mx-2\" (click)=\"toggleAllOptions(selectAllOption)\">\r\n {{i18n.translate('selectAll')}}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let element of lov?.options\" [value]=\"element.value\" class=\"mx-2\">\r\n {{element.description}}\r\n </mat-option>\r\n\r\n\r\n </ng-container>\r\n </mat-select>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n <mat-label *ngIf=\"loading\">\r\n <div class=\"select-placeholder-container\">\r\n <!-- <span>Loading...</span> -->\r\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\r\n </div>\r\n </mat-label>\r\n\r\n </label>\r\n\r\n <mat-error class=\"mb-2\" *ngIf=\"(!controller?.valid)\">{{i18n.translate('validSelectError')}}{{label}}\r\n </mat-error>\r\n\r\n <mat-hint *ngIf=\"showHint && hint\" class=\"mb-2\">\r\n <span class=\"mat-error\">{{hint}}</span>\r\n </mat-hint>\r\n\r\n <!-- <mat-error *ngIf=\"!controller.valid\">{{error}}</mat-error> -->\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field?.value)\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field?.value || field?.key\"></app-info-item>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && multiple\" class=\"info-section\">\r\n <app-info-item class=\"info-item w-100\" [label]=\"label\" [type]=\"'multipleSelect'\" [hasLabel]=\"hasLabel\" [insideTable]=\"insideTable\"\r\n [value]=\"field\"></app-info-item>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "component", type: FormLabelComponent, selector: "app-form-label", inputs: ["hideOption", "showLabel", "label", "optional"] }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }] });
3386
4556
  }
3387
4557
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SelectComponent, decorators: [{
3388
4558
  type: Component,
@@ -3496,7 +4666,7 @@ class TextareaComponent extends BaseComponent {
3496
4666
  this.emitedValue.emit(data.trim());
3497
4667
  }
3498
4668
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3499
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "app-textarea", inputs: { label: "label", tooltip: "tooltip", className: "className", preventSpecailChar: "preventSpecailChar" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }] });
4669
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TextareaComponent, isStandalone: true, selector: "app-textarea", inputs: { label: "label", tooltip: "tooltip", className: "className", preventSpecailChar: "preventSpecailChar" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isReadOnly\">\r\n <div class=\"d-flex justify-content-between mb-1\" *ngIf=\"hasLabel\">\r\n <span class=\"form-label mb-0\">{{ label }}</span>\r\n <span *ngIf=\"!required\" class=\"fs-11 fc-dark-gray\">\r\n <!-- {{'Optional'| transloco}} -->{{ i18n.translate('Optional') }}\r\n </span>\r\n </div>\r\n <mat-form-field class=\"custom-textarea bordered-input {{className}}\">\r\n <mat-label>{{ label }}</mat-label>\r\n <label class=\"mat-form-content\">\r\n\r\n <textarea *ngIf=\"type === 'arOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" arOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <textarea *ngIf=\"type === 'enOnly'\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\" enOnly\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n <!-- <textarea *ngIf=\"preventSpecailChar\" [placeholder]=\"placeholder\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" min=\"minlength\"\r\n specialIsAlphaNumeric\r\n (input)=\"onValueChange($event.target.value)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>-->\r\n <!--&& !preventSpecailChar-->\r\n <textarea *ngIf=\"type !== 'enOnly' && type !== 'arOnly' \" [placeholder]=\"placeholder\" [minlength]=\"minLength\"\r\n [maxlength]=\"maxLength\" min=\"minlength\" specialIsAlphaNumeric\r\n (input)=\"onValueChange($event)\" (focusout)=\"focusOutFunction()\" (focusin)=\"focusInFunction()\" max=\"maxValue\"\r\n [formControl]=\"controller\" matInput></textarea>\r\n\r\n </label>\r\n <!-- [(ngModel)]=\"field\" [name]=\"name\" -->\r\n <mat-error *ngIf=\"field && field?.length < minLength\">{{ errorMessage }}</mat-error>\r\n <mat-error *ngIf=\"field && field?.length > maxLength\">{{ errorMessage }}</mat-error>\r\n <mat-error class=\"mb-2\" *ngIf=\"!field && (!controller?.valid)\">{{ i18n.translate('validFieldError') }}{{ label }}</mat-error>\r\n\r\n\r\n <mat-hint class=\"d-flex align-items-center gap-1 mt-1\" *ngIf=\"showHint\">\r\n <span class=\"sfi sfi-info fs-17 fc-dark-gray\" [ngClass]=\"{'fc-oasis-light-imp':value}\"></span>\r\n <span class=\"fs-12 fc-black line-height-1\">{{ hint }}</span>\r\n </mat-hint>\r\n\r\n\r\n </mat-form-field>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isReadOnly && (showIfEmpty || field)\">\r\n <app-info-item class=\"info-item w-100\" [insideTable]=\"insideTable\" [label]=\"label\" [value]=\"field\" [type]=\"type\"></app-info-item>\r\n</ng-container>\r\n", styles: [":host{flex-grow:1}:host ::ng-deep mat-form-field.custom-textarea .mat-form-field-flex{padding:var(--input-padding)}:host ::ng-deep table mat-form-field.custom-textarea .mat-form-field-flex{--input-height: 80px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }] });
3500
4670
  }
3501
4671
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
3502
4672
  type: Component,
@@ -3710,7 +4880,7 @@ class TableListComponent extends BaseComponent {
3710
4880
  sentBack() {
3711
4881
  }
3712
4882
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3713
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableListComponent, isStandalone: true, selector: "app-table-list", inputs: { columns: "columns", columnsConfig: "columnsConfig", rows: "rows", actions: "actions", totalRecords: "totalRecords", className: "className" }, outputs: { pageChanged: "pageChanged", buttonAction: "buttonAction", emitDataRow: "emitDataRow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: RepeatedListComponent, selector: "app-repeated-list", inputs: ["listOfItems", "type"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
4883
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableListComponent, isStandalone: true, selector: "app-table-list", inputs: { columns: "columns", columnsConfig: "columnsConfig", rows: "rows", actions: "actions", totalRecords: "totalRecords", className: "className" }, outputs: { pageChanged: "pageChanged", buttonAction: "buttonAction", emitDataRow: "emitDataRow" }, usesInheritance: true, ngImport: i0, template: "<div class=\"overflow-auto\">\r\n <!-- #table (scroll)=\"onPageChange($event)\" -->\r\n <ng-container >\r\n <!-- (matSortChange)=\"sortData($event)\" -->\r\n <table mat-table [dataSource]=\"dataSource\" class=\"primary-table {{className}}\" matSort >\r\n <ng-container *ngFor=\"let column of columns; let i = index;\">\r\n <ng-container [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"{'last-column' : columnsConfig[i].type === 'actions', 'sortArrow': columnsConfig[i]?.sortName?.length }\" mat-sort-header>\r\n {{i18n.translate(columnsConfig[i].label)}} </th>\r\n \r\n <td mat-cell [ngClass]=\"{'account-disabled': element?.user?.disabledCleanUp===true}\" *matCellDef=\"let element\">\r\n <ng-container [ngSwitch]=\"columnsConfig[i].type\" *ngIf=\"rows.length\">\r\n <a [ngClass]=\"columnsConfig[i].type\" [href]=\"element[column]\" *ngSwitchCase=\"'link'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <a [ngClass]=\"columnsConfig[i].type\" [routerLink]=\"[element.id]\" [href]=\"element[column]\"\r\n *ngSwitchCase=\"'rout'\">\r\n {{ element[column] }}\r\n </a>\r\n \r\n <span class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'date'\">\r\n <span class=\"sfi sfi-clock text-color-coral\" *ngIf=\"!loading\"></span>\r\n <span class=\"mx-2\">\r\n <!-- {{ element?.Date.from }}\r\n <ng-container *ngIf=\"element?.Date.to\">\r\n : {{ element?.Date.to }}\r\n </ng-container> -->\r\n {{ element[column] | date: 'dd/MM/YYYY' }}\r\n </span>\r\n </span>\r\n \r\n <div class=\"d-inline-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'sla'\">\r\n <app-sla [value]=\"element?.SLA.value\" [maxValue]=\"element?.SLA.max\" [canvasScale]=\"45\"\r\n [outerLineColor]=\"getSlaColor(element?.SLA.value, element?.SLA.max)\"></app-sla>\r\n </div>\r\n \r\n <div class=\"img-card table-img\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'image'\">\r\n <img [src]=\"element?.image\" alt=\"\">\r\n </div>\r\n \r\n <span class=\"{{ element[column].type }}\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'status'\">\r\n {{ element[column].label }}\r\n </span>\r\n \r\n \r\n <div class=\"d-flex mx-n1\" *ngSwitchCase=\"'RequestType'\">\r\n <div class=\"request-type mx-1 {{item.status}}\" *ngFor=\"let item of element?.RequestType\">\r\n {{ item.label }}\r\n <span class=\"mx-1\" *ngIf=\"item.status === 'need-action'\"></span>\r\n <span class=\"sfi sfi-info \" *ngIf=\"item.status === 'need-action'\"></span>\r\n </div>\r\n </div>\r\n \r\n \r\n <span class=\"{{ element[column].type }} {{ element[column] ? 'text-color-coral underline' : '' }}\"\r\n [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'number'\">\r\n {{ element[column] ? element[column] : '-' }}\r\n </span>\r\n \r\n <div class=\"text-nowrap d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'group'\">\r\n <span>{{element?.Group.groupName}}</span>\r\n <span class=\"mx-2\"></span>\r\n <app-repeated-list type=\"users-avatar\" [listOfItems]=\"element?.Group.users\"></app-repeated-list>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center gap-2\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchCase=\"'user'\">\r\n <span class=\"img-card circled-img small\" *ngIf=\"!loading\">\r\n <img src=\"{{'data:image/png;base64,' + element?.user?.personalPhoto}}\"\r\n onerror=\"this.onerror=null;this.src='assets/images/user.svg';\" alt=\"\">\r\n </span>\r\n <div class=\"d-flex flex-column\">\r\n <span class=\"font-14 font-weight-medium\">{{element?.user?.name}}</span>\r\n <span class=\"font-12 font-weight-normal text-color-dark-gray mt-1\">{{element?.user?.email}}</span>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"delegate d-flex align-items-center\" [ngClass]=\"columnsConfig[i].type\"\r\n *ngSwitchCase=\"'assigned'\">\r\n <div class=\"img-card x-small circled-img\">\r\n <img [src]=\"element?.AssignedTo.image\" alt=\"\">\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <span class=\"font-14 font-weight-medium text-color-onyx\">{{element?.AssignedTo.name}}</span>\r\n <span class=\"sfi sfi-close text-color-coral\"></span>\r\n </div>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'statusAction'\">\r\n <div class=\"table-action\">\r\n \r\n <div class=\"count-down mx-n1\" *ngIf=\"element[column] === 'need-action'\">\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">01</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Days</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">18</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Hours</span>\r\n </div>\r\n <div class=\"item mx-1\">\r\n <span class=\"font-12 font-weight-medium text-color-onyx d-block\">44</span>\r\n <span class=\"font-8 font-weight-light text-color-onyx d-block\">Mins</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'approved'\">\r\n <span class=\"status approved\">\r\n Approved\r\n </span>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'sent-back'\">\r\n <span class=\"status rejected\">\r\n Sent Back\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n <button mat-stroked-button class=\"btn button-primary square br-w-1 font-14 font-weight-medium\"\r\n (click)=\"sentBack()\">\r\n <span class=\"sfi sfi-chat-o\"></span>\r\n </button>\r\n </div>\r\n \r\n <div class=\"d-flex align-items-center\" *ngIf=\"element[column] === 'pending'\">\r\n <span class=\"status pending\">\r\n Pending\r\n </span>\r\n <span class=\"mx-2\"></span>\r\n \r\n <div class=\"d-flex align-items-center mx-n1\">\r\n <div class=\"img-card circled-img x-small mx-1\">\r\n <img [src]=\"element?.pendingWith.image\" alt=\"\">\r\n </div>\r\n \r\n <div class=\"d-flex flex-column mx-1\">\r\n <span class=\"font-8 font-weight-medium text-color-yellow text-nowrap\">Pending With</span>\r\n <span class=\"font-11 font-weight-medium text-nowrap\">{{element?.pendingWith.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </ng-container>\r\n \r\n \r\n <ng-container *ngSwitchCase=\"'actions'\">\r\n \r\n <div class=\"d-flex justify-content-between mx-n2\">\r\n <ng-container *ngFor=\"let action of element[column]\">\r\n \r\n <div class=\"flex-grow-1\">\r\n <ng-container *ngIf=\"action.type.buttonType === 'stroked'\">\r\n <button mat-stroked-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'flat'\">\r\n <button mat-flat-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n {{action.label}}\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'icon'\">\r\n <button mat-icon-button (click)=\"buttonClicked(element,action.fn, $event)\"\r\n class=\"btn button-{{action.type.buttonClass}} mx-2\">\r\n <span class=\"sfi sfi-{{action.type.icon}}\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container *ngIf=\"action.type.buttonType === 'all'\">\r\n <button mat-icon-button class=\"btn button-transparent square medium mx-2 text-end\"\r\n [matMenuTriggerFor]=\"menuAction\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"sfi sfi-dots text-color-onyx\"></span>\r\n </button>\r\n <mat-menu #menuAction=\"matMenu\" xPosition=\"before\" class=\"actions-menu\">\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEmail', $event)\">\r\n {{i18n.translate('createEmail')}} \r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.enabled==='true'\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEmail', $event)\">\r\n {{ i18n.translate('disableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp===true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'EnableEmail', $event)\">\r\n {{ i18n.translate('enableEmail')}}\r\n </button>\r\n <button *ngIf=\"element?.user!==null && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'CreateEntryPermission', $event)\">\r\n {{ i18n.translate('createCEP')}}\r\n </button>\r\n <!-- <button *ngIf=\"!element?.user?.email\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DisableEntryPermission', $event)\">\r\n {{i18n.translate('disableEntryPermission')}}\r\n </button> -->\r\n <button *ngIf=\"!element?.user?.email && element?.user?.disabledCleanUp!==true\" mat-menu-item class=\"text-color-red font-12\"\r\n (click)=\"buttonClicked(element,'DeleteAccount', $event)\">\r\n {{i18n.translate('deleteAccount')}}\r\n </button>\r\n\r\n <button *ngIf=\"element?.user?.email && element?.user?.disabledCleanUp!==true\" [disabled]=\"!element?.mailExtensionAllowed\" mat-menu-item class=\"text-color-onyx font-12\"\r\n (click)=\"buttonClicked(element,'ExtendAccount', $event)\">\r\n {{ i18n.translate('extendAccount')}}\r\n </button>\r\n <button mat-menu-item class=\"text-color-onyx font-12\" *ngIf=\"element?.user?.disabledCleanUp!==true\" (click)=\"buttonClicked(element,'update', $event)\">\r\n {{ i18n.translate('updateEmploymentInformation')}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n \r\n <span class=\"text-nowrap\" [ngClass]=\"columnsConfig[i].type\" *ngSwitchDefault>\r\n {{ element[column] }}\r\n </span>\r\n </ng-container>\r\n <ng-container *ngIf=\"loading\">\r\n <span class=\" d-block loading-bg\"></span>\r\n </ng-container>\r\n \r\n </td>\r\n \r\n \r\n </ng-container>\r\n </ng-container>\r\n \r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" class=\"cursor-pointer\" (click)=\"selectedRow(row)\"></tr>\r\n </table>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"loading\">\r\n <span>loading...</span>\r\n </ng-container> -->\r\n <!-- <ng-container *ngIf=\"loading\">-->\r\n <!-- <td *matCellDef=\"let element\" >loading....</td>-->\r\n <!-- </ng-container>-->\r\n <!--{{this.rows | json}}-->\r\n \r\n<!-- <app-no-data-placeholder *ngIf=\"noData && !loading\" [noDataPlaceholder]=\"noDataObj\"></app-no-data-placeholder> -->\r\n\r\n <mat-paginator [pageSize]=\"10\" [length]=\"totalRecords\" (page)=\"onPageChange($event)\" \r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" aria-label=\"Select page of users\"></mat-paginator>\r\n <!-- style-paginator -->\r\n <!-- showFirstLastButtons -->\r\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$6.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: RepeatedListComponent, selector: "app-repeated-list", inputs: ["listOfItems", "type"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
3714
4884
  }
3715
4885
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableListComponent, decorators: [{
3716
4886
  type: Component,
@@ -4014,7 +5184,7 @@ class RadioComponent extends BaseComponent {
4014
5184
  this.emitedValue.emit(this.field);
4015
5185
  }
4016
5186
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4017
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RadioComponent, isStandalone: true, selector: "app-radio", usesInheritance: true, ngImport: i0, template: "<mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"value\">\r\n\r\n <mat-radio-button class=\"m-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" (change)=\"valueChange($event)\" [checked]=\"field\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{isReadOnly ? labelTextReadMode : labelTextWriteMode}}\r\n </span>\r\n </mat-radio-button>\r\n\r\n</mat-radio-group>\r\n\r\n<!-- <mat-radio-group aria-label=\"Select an option\">\r\n <mat-radio-button value=\"1\">Option 1</mat-radio-button>\r\n <mat-radio-button value=\"2\">Option 2</mat-radio-button>\r\n</mat-radio-group> -->\r\n", styles: [""], dependencies: [{ kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
5187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: RadioComponent, isStandalone: true, selector: "app-radio", usesInheritance: true, ngImport: i0, template: "<mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"value\">\r\n\r\n <mat-radio-button class=\"m-3\" [disabled]=\"isReadOnly || disabled\" id=\"{{name}}{{randomID}}\"\r\n name=\"{{name}}{{randomID}}\" (change)=\"valueChange($event)\" [checked]=\"field\">\r\n <span class=\"fs-12 fw-medium fc-onyx\">\r\n {{isReadOnly ? labelTextReadMode : labelTextWriteMode}}\r\n </span>\r\n </mat-radio-button>\r\n\r\n</mat-radio-group>\r\n\r\n<!-- <mat-radio-group aria-label=\"Select an option\">\r\n <mat-radio-button value=\"1\">Option 1</mat-radio-button>\r\n <mat-radio-button value=\"2\">Option 2</mat-radio-button>\r\n</mat-radio-group> -->\r\n", styles: [""], dependencies: [{ kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
4018
5188
  }
4019
5189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RadioComponent, decorators: [{
4020
5190
  type: Component,
@@ -4036,7 +5206,7 @@ class TermsConditionsComponent {
4036
5206
  this.data = data;
4037
5207
  this.termsBody = data;
4038
5208
  }
4039
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, deps: [{ token: i1.MatDialogRef }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5209
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, deps: [{ token: i1$4.MatDialogRef }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
4040
5210
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TermsConditionsComponent, isStandalone: true, selector: "app-terms-conditions", ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }] });
4041
5211
  }
4042
5212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TermsConditionsComponent, decorators: [{
@@ -4046,7 +5216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
4046
5216
  MatDialogClose,
4047
5217
  MatDialogTitle
4048
5218
  ], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3 class=\"mb-0 font-16 fw-medium\" >{{i18n.translate('termsAndConditions')}}</h3>\r\n <ds-button matDialogClose icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"px-md-4\">\r\n <p class=\"fs-15 fw-normal bg-color-light-gray p-3 text-break\" [innerHTML]='termsBody' > </p>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 800px;--popup-width: 800px}\n"] }]
4049
- }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: CoreI18nService }, { type: undefined, decorators: [{
5219
+ }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: CoreI18nService }, { type: undefined, decorators: [{
4050
5220
  type: Inject,
4051
5221
  args: [MAT_DIALOG_DATA]
4052
5222
  }] }] });
@@ -4061,217 +5231,73 @@ class FaqsComponent {
4061
5231
  ngOnInit() {
4062
5232
  }
4063
5233
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqsComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
4064
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FaqsComponent, isStandalone: true, selector: "app-faqs", inputs: { adminView: "adminView", faqs: "faqs" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: ["::ng-deep .primary-accordion{--accordion-height: 60px;--accordion-radius: 6px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 0;--accordion-border-active: 0;--accordion-shadow: none;--accordion-shadow-active: 0 10px 7px rgba(var(--rgb-black), .06);--panel-body-padding: 0 1.5rem 1rem}::ng-deep .primary-accordion .mat-expansion-indicator{display:none}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4065
- }
4066
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqsComponent, decorators: [{
4067
- type: Component,
4068
- args: [{ selector: 'app-faqs', standalone: true, imports: [
4069
- MatAccordion,
4070
- MatExpansionPanel,
4071
- MatExpansionPanelTitle,
4072
- NgIf,
4073
- NgForOf
4074
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: ["::ng-deep .primary-accordion{--accordion-height: 60px;--accordion-radius: 6px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 0;--accordion-border-active: 0;--accordion-shadow: none;--accordion-shadow-active: 0 10px 7px rgba(var(--rgb-black), .06);--panel-body-padding: 0 1.5rem 1rem}::ng-deep .primary-accordion .mat-expansion-indicator{display:none}\n"] }]
4075
- }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { adminView: [{
4076
- type: Input
4077
- }], faqs: [{
4078
- type: Input
4079
- }] } });
4080
-
4081
- /* eslint-disable @angular-eslint/component-selector */
4082
- class FaqSidenavComponent {
4083
- sidenavService;
4084
- i18n;
4085
- data = [];
4086
- constructor(sidenavService, i18n) {
4087
- this.sidenavService = sidenavService;
4088
- this.i18n = i18n;
4089
- }
4090
- ngOnInit() {
4091
- // this.data = this.sidenavService?.subject?.value['data'];
4092
- }
4093
- closeSidenav() {
4094
- this.sidenavService.publish('close', FaqSidenavComponent);
4095
- }
4096
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqSidenavComponent, deps: [{ token: SidenavService }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
4097
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FaqSidenavComponent, isStandalone: true, selector: "app-faq-sidenav", ngImport: i0, template: "<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: FaqsComponent, selector: "app-faqs", inputs: ["adminView", "faqs"] }] });
4098
- }
4099
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqSidenavComponent, decorators: [{
4100
- type: Component,
4101
- args: [{ selector: 'app-faq-sidenav', standalone: true, imports: [
4102
- FaqsComponent
4103
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n" }]
4104
- }], ctorParameters: () => [{ type: SidenavService }, { type: CoreI18nService }] });
4105
-
4106
- /* eslint-disable @angular-eslint/component-selector */
4107
- class TitleSectionComponent {
4108
- sidenavService;
4109
- dialog;
4110
- title = '';
4111
- tooltip = true;
4112
- // introJS = introJs();
4113
- constructor(sidenavService, dialog) {
4114
- this.sidenavService = sidenavService;
4115
- this.dialog = dialog;
4116
- }
4117
- openFaq() {
4118
- this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');
4119
- }
4120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, deps: [{ token: SidenavService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
4121
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TitleSectionComponent, selector: "app-title-section", inputs: { title: "title", tooltip: "tooltip" }, ngImport: i0, template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] });
4122
- }
4123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, decorators: [{
4124
- type: Component,
4125
- args: [{ selector: 'app-title-section', template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] }]
4126
- }], ctorParameters: () => [{ type: SidenavService }, { type: i1.MatDialog }], propDecorators: { title: [{
4127
- type: Input
4128
- }], tooltip: [{
4129
- type: Input
4130
- }] } });
4131
-
4132
- // Constant for basic validations
4133
- const DONT_SHOW = null;
4134
- const NO_COMMENTS = false;
4135
- const HAS_COMMENTS = true;
4136
- const URL_SEPARATOR = '/';
4137
- const READ_ONLY = true;
4138
- const WRITE_MODE = false;
4139
- const NO_VALUE = null;
4140
- const TRUE_STRING = 'TRUE';
4141
- const FALSE_STRING = 'FALSE';
4142
- const TRUE_BOOL = true;
4143
- const FALSE_BOOL = false;
4144
- // State Machine statuses
4145
- const STATE_MACHINE_STATUS_IDLE = 'idle';
4146
- const STATE_MACHINE_STATUS_FETCHING = 'fetching';
4147
- const STATE_MACHINE_STATUS_SENDING = 'sending';
4148
- const STATE_MACHINE_STATUS_RESULT = 'result';
4149
- const STATE_MACHINE_STATUS_ERROR = 'error';
4150
- // State Machine actions
4151
- const STATE_MACHINE_ACTION_LOAD_FORM = 'loadForm';
4152
- const STATE_MACHINE_ACTION_SUBMIT_FORM = 'submitForm';
4153
- const STATE_MACHINE_ACTION_SEARCH_EMPLOYEE = 'searchEmployee';
4154
- const STATE_MACHINE_ACTION_EMPLOYEE_PROFILE = 'employeeProfile';
4155
- const STATE_MACHINE_ACTION_SUCCESS_WM = 'successWm';
4156
- const STATE_MACHINE_ACTION_SUCCESS_RESPONSE = 'serviceResponce';
4157
- const STATE_MACHINE_ACTION_SUCCESS_USERS = 'successUsers';
4158
- const STATE_MACHINE_ACTION_CONVERT = 'convert';
4159
- const STATE_MACHINE_ACTION_SUCCESS = 'success';
4160
- const STATE_MACHINE_ACTION_FAILURE = 'failure';
4161
- const STATE_MACHINE_ACTION_HANDLE_ERROR = 'handleError';
4162
- const STATE_MACHINE_ACTION_LOAD_FILE = 'loadFile';
4163
- const STATE_MACHINE_ACTION_USER_MAF = 'userDetails';
4164
- const STATE_MACHINE_ACTION_USER_CEP = 'user';
4165
- const STATE_MACHINE_ACTION_CALC = 'calc';
4166
- const STATE_MACHINE_ACTION_SHOW_PRINT = 'showPrint';
4167
- const STATE_MACHINE_ACTION_SUCCESS_PRINT = 'successPrint';
4168
- const SERVICE_NAME_WM_HTML_GENERATOR = 'htmlGenerator';
4169
- // Process name code
4170
- const PROCESS_NAME_CODE = 'SCR';
4171
- // HTTP protocols that are available
4172
- const HTTP_PROTOCOL_HTTP = 'http://';
4173
- const HTTP_PROTOCOL_HTTPS = 'https://';
4174
- // Liferay constants
4175
- // export const LR_AUTH_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/authenticate';
4176
- // export const LR_SERVICE_URL_PATH = '/group/i-gate/wm-bpm/forms/-/proxy/execute';
4177
- // export const LR_SERVICE_URL_HOST = '10.0.0.48';
4178
- // export const LR_SERVICE_URL_HOST_DEV = '10.0.0.156';
4179
- // export const LR_SERVICE_URL_PORT_DEV = '8000';
4180
- // export const LR_SERVICE_URL_PATH_DEV = '/new.json';
4181
- // export const LR_SERVICE_URL_PORT = '17899';
4182
- // HTTP methods that are available are
4183
- const HTTP_METHOD_GET = 'GET';
4184
- const HTTP_METHOD_POST = 'POST';
4185
- const HTTP_METHOD_PUT = 'PUT';
4186
- // Available servers to the UI
4187
- const TARGET_SERVER_WM = 'WM';
4188
- const TARGET_SERVER_DP = 'DP';
4189
- // Service Names that are available
4190
- const SERVICE_NAME_WM_FORM = 'form';
4191
- const SERVICE_NAME_WM_CHILD_FORM = '';
4192
- const SERVICE_NAME_DP_SEARCH_EMPLOYEE = 'igate.users.search.v3';
4193
- // Languages codes available in the application
4194
- const LANGUAGE_CODE_EN = 'en';
4195
- const LANGUAGE_CODE_AR = 'ar';
4196
- // URLs form static assets
4197
- const IGATE_STATIC_ASSET_PROFILE_PHOTO_URL = '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=';
4198
- const HEADER_CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded';
4199
- // Roles constants
4200
- const ROLE_REQUESTER = 'R';
4201
- // Section IDs
4202
- const SECTION_ID_REQUEST_DETAILS = 'requestDetails';
4203
- const SECTION_ID_GM_PARTIAL_ROLE = 'GM';
4204
- const SECTION_ID_SM_PARTIAL_ROLE = 'SM';
4205
- const SECTION_ID_DM_PARTIAL_ROLE = 'DM';
4206
- const SECTION_ID_VP_PARTIAL_ROLE = 'VP';
4207
- const SECTION_ID_SVP_PARTIAL_ROLE = 'SVP';
4208
- const SECTION_ID_EXECUTE_PARTIAL_ROLE = 'GovtRelationsLead';
4209
- const SECTION_ID_PERFORM_PARTIAL_ROLE = 'GovtRelationsMember';
4210
- const SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE = 'EmpInfo';
4211
- const SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE = 'Payroll';
4212
- const SECTION_ID_REQUESTER_PARTIAL_NAME = 'Requester';
4213
- const SECTION_ID_APPROVAL_PARTIAL_NAME = 'Approval';
4214
- const SECTION_ID_NOTHING_PARTIAL_NAME = '';
4215
- const SECTION_STATUS_PENDING = 'PENDING';
4216
- const SECTION_STATUS_APPROVED = 'APPROVED';
4217
- const SECTION_STATUS_UNSATISFIED = 'UNSATISFIED';
4218
- const WM_ACTION_SAVE = 'SAVE';
4219
- const WM_ACTION_SUBMIT = 'SUBMIT';
4220
- const FORM_STATUS_NEW = 'NEW';
4221
- const FORM_STATUS_PENDING = 'PENDING';
4222
- const FORM_STATUS_APPROVED = 'APPROVED';
4223
- const FORM_STATUS_REJECTED = 'REJECTED';
4224
- const FORM_STATUS_SEND_BACK = 'SENDBACK';
4225
- const FORM_STATUS_CANCELLED = 'CANCELLED';
4226
- const FORM_STATUS_COMPLETED = 'COMPLETED';
4227
- const STATE_MACHINE_ACTION_LOAD_HISTORY = 'loadHistory';
4228
- const STATE_MACHINE_ACTION_SUCCESS_HISTORY = 'successHistory';
4229
- const SERVICE_NAME_DP_LOAD_HISTORY = 'igate.get.inbox.item.workflow';
4230
- const WM_ACTION_SAVE_CHANGES = 'SAVE_CHANGES';
4231
- const SERVICE_NAME_WM_DRAFT_FORM = 'draft';
4232
- // feedback and flag
4233
- const STATE_MACHINE_ACTION_GET_INBOX_ITEM = 'getInboxItem';
4234
- const SERVICE_NAME_DP_INBOX_ITEM = 'igate.get.inbox.item';
4235
- const STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM = 'successInboxItem';
4236
- const STATE_MACHINE_ACTION_SET_FLAG = 'setFlagPriority';
4237
- const SERVICE_NAME_DP_UPDATE_INBOX_ITEM = 'igate.update.inbox.item';
4238
- const STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE = 'inboxItemResponse';
4239
- const FEEDBACK_STATUS_REQUEST = 'requestFeedback';
4240
- const FEEDBACK_STATUS_RESPOND = 'respondToFeedback';
4241
- const FEEDBACK_STATUS_WAITING = 'waitingFeedback';
4242
- const FEEDBACK_STATUS_RESPONDED = 'feedbackResponded';
4243
- const STATE_MACHINE_ACTION_SUBMIT_FEEDBACK = 'submitFeedback';
4244
- const STATE_MACHINE_ACTION_GET_FEEDBACK = 'getFeedback';
4245
- const STATE_MACHINE_ACTION_UPDATE_FEEDBACK = 'submitFeedbackResponse';
4246
- const SERVICE_NAME_DP_CREATE_FEEDBACK = 'igate.create.inbox.item.feedback';
4247
- const STATE_NAME_DP_GET_FEEDBACK = 'igate.get.inbox.item.feedback';
4248
- const SERVICE_NAME_DP_UPDATE_FEEDBACK = 'igate.update.inbox.item.feedback';
4249
- const PROFILE_CONTAINER = '#profileFormContent';
4250
- const COMMENT_CONTAINER = '#commentsFormContent';
4251
- const FEEDBACK_CONTAINER = '#feedbackFormContent';
4252
- const INBOX_STATUS_PENDING = 'pending';
4253
- const INBOX_STATUS_PROCESSED = 'processed';
4254
- const INBOX_STATUS_SENT = 'sent';
4255
- const REPORT = 'report';
4256
- const DATE_TIME = 'DD/MM/YYYY HH:mm:ss';
4257
- const DATE_DASH = 'DD-MMM-YYYY';
4258
- const DATE_SLASH = 'DD/MM/YYYY';
4259
- const SERVICE_NAME_WM_GET_APPROVED_REQUEST = 'requests';
4260
- const SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST = 'myRequests';
4261
- const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST = 'getApprovedRequest';
4262
- const STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE = 'getApprovedRequestResponse';
4263
- const STATE_MACHINE_ACTION_PROJECT_MAF = 'projectDetails';
4264
- const STATE_MACHINE_ACTION_PROJECT_CEP = 'project';
4265
- const STATE_MACHINE_ACTION_COMMONAPI = 'commonApi';
4266
- const STATE_MACHINE_ACTION_SEARCH = 'search';
4267
- const STATE_MACHINE_ACTION_PPROVED_REQUESTS = 'approvedRequests';
4268
- const GETSIPORTENTRYGROUPS = 'getSiportEntryGroups';
4269
- const GETSIPORTENTRYLOCATIONS = 'getSiportEntryLocations';
4270
- const STATE_MACHINE_ACTION_SUCCESS_SERVICES = 'serviceResponce';
4271
- const SERVICE_NAME_MAF = 'MAF';
4272
- const SERVICE_NAME_CEP = 'CEP';
4273
- const STATE_MACHINE_ACTION_PDF = 'pdfAttachments';
4274
- const LOGOUT_URL = '/c/portal/logout';
5234
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FaqsComponent, isStandalone: true, selector: "app-faqs", inputs: { adminView: "adminView", faqs: "faqs" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: ["::ng-deep .primary-accordion{--accordion-height: 60px;--accordion-radius: 6px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 0;--accordion-border-active: 0;--accordion-shadow: none;--accordion-shadow-active: 0 10px 7px rgba(var(--rgb-black), .06);--panel-body-padding: 0 1.5rem 1rem}::ng-deep .primary-accordion .mat-expansion-indicator{display:none}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
5235
+ }
5236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqsComponent, decorators: [{
5237
+ type: Component,
5238
+ args: [{ selector: 'app-faqs', standalone: true, imports: [
5239
+ MatAccordion,
5240
+ MatExpansionPanel,
5241
+ MatExpansionPanelTitle,
5242
+ NgIf,
5243
+ NgForOf
5244
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-accordion class=\"primary-accordion\">\r\n <mat-expansion-panel [expanded]=\"i==0\" class=\"mb-4\" *ngFor=\"let item of faqs; let i = index;\" hideToggle #expansionPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header *ngIf=\"item.title\" class=\"expansion-header\">\r\n\r\n <mat-panel-title>\r\n <h3 class=\"fs-14 fw-medium fc-black mb-0 flex-grow-1 align-self-center\">{{ item.title }}</h3>\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!expansionPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"expansionPanel.expanded\"></ds-icon>\r\n </mat-panel-title>\r\n\r\n </mat-expansion-panel-header>\r\n <p class=\"fs-14 fc-dark-gray\">\r\n {{ item.content }}\r\n </p>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: ["::ng-deep .primary-accordion{--accordion-height: 60px;--accordion-radius: 6px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 0;--accordion-border-active: 0;--accordion-shadow: none;--accordion-shadow-active: 0 10px 7px rgba(var(--rgb-black), .06);--panel-body-padding: 0 1.5rem 1rem}::ng-deep .primary-accordion .mat-expansion-indicator{display:none}\n"] }]
5245
+ }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { adminView: [{
5246
+ type: Input
5247
+ }], faqs: [{
5248
+ type: Input
5249
+ }] } });
5250
+
5251
+ /* eslint-disable @angular-eslint/component-selector */
5252
+ class FaqSidenavComponent {
5253
+ sidenavService;
5254
+ i18n;
5255
+ data = [];
5256
+ constructor(sidenavService, i18n) {
5257
+ this.sidenavService = sidenavService;
5258
+ this.i18n = i18n;
5259
+ }
5260
+ ngOnInit() {
5261
+ // this.data = this.sidenavService?.subject?.value['data'];
5262
+ }
5263
+ closeSidenav() {
5264
+ this.sidenavService.publish('close', FaqSidenavComponent);
5265
+ }
5266
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqSidenavComponent, deps: [{ token: SidenavService }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
5267
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FaqSidenavComponent, isStandalone: true, selector: "app-faq-sidenav", ngImport: i0, template: "<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: FaqsComponent, selector: "app-faqs", inputs: ["adminView", "faqs"] }] });
5268
+ }
5269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FaqSidenavComponent, decorators: [{
5270
+ type: Component,
5271
+ args: [{ selector: 'app-faq-sidenav', standalone: true, imports: [
5272
+ FaqsComponent
5273
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{i18n.translate('serviceBrief')}}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <div class=\"sidenav-body\">\r\n <app-faqs [faqs]=\"data\"></app-faqs>\r\n </div>\r\n</div>\r\n" }]
5274
+ }], ctorParameters: () => [{ type: SidenavService }, { type: CoreI18nService }] });
5275
+
5276
+ /* eslint-disable @angular-eslint/component-selector */
5277
+ class TitleSectionComponent {
5278
+ sidenavService;
5279
+ dialog;
5280
+ title = '';
5281
+ tooltip = true;
5282
+ // introJS = introJs();
5283
+ constructor(sidenavService, dialog) {
5284
+ this.sidenavService = sidenavService;
5285
+ this.dialog = dialog;
5286
+ }
5287
+ openFaq() {
5288
+ this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over');
5289
+ }
5290
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, deps: [{ token: SidenavService }, { token: i1$4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
5291
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TitleSectionComponent, selector: "app-title-section", inputs: { title: "title", tooltip: "tooltip" }, ngImport: i0, template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] });
5292
+ }
5293
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleSectionComponent, decorators: [{
5294
+ type: Component,
5295
+ args: [{ selector: 'app-title-section', template: "<header class=\"section-title\">\r\n <div class=\"d-flex align-items-center\">\r\n <h1 class=\"main-title mb-0\" >{{title}}</h1>\r\n <!-- <span class=\"mx-1\"></span>\r\n <button mat-icon-button class=\"btn button-transparent square\" *ngIf=\"tooltip\" (click)=\"openFaq()\">\r\n <span class=\"sfi sfi-info fc-dark-gray font-20-imp\" id=\"step1\"></span>\r\n </button>\r\n <span class=\"mx-1\"></span> -->\r\n </div>\r\n <div class=\"filter-actions\">\r\n <div class=\"filter-section\">\r\n <ng-content select=\"[filter]\"></ng-content>\r\n </div>\r\n <span class=\"mx-1\"></span>\r\n <ng-content select=\"[action]\"></ng-content>\r\n <ng-content select=\"[search]\"></ng-content>\r\n </div>\r\n</header>\r\n", styles: [":host ::ng-deep .section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}:host ::ng-deep .section-title .filter-actions{display:flex;align-items:center;justify-content:space-between;flex-grow:1}:host ::ng-deep .section-title .filter-actions .filter-section{width:140px}:host ::ng-deep .section-title .filter-actions .filter-section .mat-form-field .mat-form-field-wrapper{padding-bottom:0}\n"] }]
5296
+ }], ctorParameters: () => [{ type: SidenavService }, { type: i1$4.MatDialog }], propDecorators: { title: [{
5297
+ type: Input
5298
+ }], tooltip: [{
5299
+ type: Input
5300
+ }] } });
4275
5301
 
4276
5302
  class ProfileSectionComponent {
4277
5303
  i18n;
@@ -4469,7 +5495,8 @@ class FeedBackService {
4469
5495
  constructor(http, config) {
4470
5496
  this.http = http;
4471
5497
  this.config = config;
4472
- this.apiUrl = this.config.proxyServiceBaseUrl + window.wmConfig.language + this.config.proxyFullAddress + this.config.proxyServiceExecute;
5498
+ const language = window?.wmConfig?.language ? window.wmConfig.language : 'en';
5499
+ this.apiUrl = this.config.proxyServiceBaseUrl + language + this.config.proxyFullAddress + this.config.proxyServiceExecute;
4473
5500
  console.log('Config: ', this.config); // for testing purposes only
4474
5501
  }
4475
5502
  feedbackForm = false;
@@ -4521,7 +5548,7 @@ class FeedBackService {
4521
5548
  });
4522
5549
  return this.performPostRequest(body);
4523
5550
  }
4524
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedBackService, deps: [{ token: i2.HttpClient }, { token: MY_LIB_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
5551
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedBackService, deps: [{ token: i1.HttpClient }, { token: MY_LIB_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
4525
5552
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedBackService, providedIn: "any" });
4526
5553
  }
4527
5554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedBackService, decorators: [{
@@ -4529,7 +5556,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
4529
5556
  args: [{
4530
5557
  providedIn: "any"
4531
5558
  }]
4532
- }], ctorParameters: () => [{ type: i2.HttpClient }, { type: undefined, decorators: [{
5559
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
4533
5560
  type: Inject,
4534
5561
  args: [MY_LIB_CONFIG_TOKEN]
4535
5562
  }] }] });
@@ -4684,501 +5711,210 @@ class FeedbackSectionComponent {
4684
5711
  else {
4685
5712
  this.submitted = true;
4686
5713
  }
4687
- });
4688
- }
4689
- }
4690
- errorOccured = false;
4691
- isSubmiting = false;
4692
- errorMsg = '';
4693
- showError(Response) {
4694
- if (!this.form) {
4695
- this.form = new Form(NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, Response);
4696
- }
4697
- else {
4698
- this.errorOccured = true;
4699
- this.errorMsg = Response?.error[0];
4700
- // this.form.messages = Response;
4701
- }
4702
- window.scrollTo(0, 0);
4703
- }
4704
- handleFeedbackQuestion(event) {
4705
- this.feedBackQuestion = event;
4706
- this.handleFeedbackValidation();
4707
- }
4708
- handleFeedbackResponse(event) {
4709
- this.feedBackResponse = event;
4710
- this.handleResponseValidation();
4711
- }
4712
- handleUserSelected(event) {
4713
- this.searchEmp = {
4714
- personEmail: event.personEmail,
4715
- personName: event.personName
4716
- };
4717
- if (!this.feedBackQuestion) {
4718
- return;
4719
- }
4720
- this.handleFeedbackValidation();
4721
- }
4722
- handleResponseValidation() {
4723
- if (this.feedBackResponse.length >= 1 &&
4724
- this.feedBackResponse.length < 500) {
4725
- this.isResponseValidated = true;
4726
- }
4727
- else {
4728
- this.isResponseValidated = false;
4729
- }
4730
- }
4731
- handleFeedbackValidation() {
4732
- if (this.feedBackQuestion.length >= 1 &&
4733
- this.feedBackQuestion.length < 500 &&
4734
- this.searchEmp.personEmail) {
4735
- this.isFeedbackValidated = true;
4736
- }
4737
- else {
4738
- this.isFeedbackValidated = false;
4739
- }
4740
- }
4741
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, deps: [{ token: FeedBackService }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
4742
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "label", "tooltip", "className", "showLabel", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["label", "tooltip", "className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
4743
- }
4744
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, decorators: [{
4745
- type: Component,
4746
- args: [{ selector: 'app-feedback-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
4747
- MatDialogContent,
4748
- NgIf,
4749
- SearchEmployeeComponent,
4750
- TextareaComponent,
4751
- InfoItemComponent,
4752
- MatDialogTitle,
4753
- MatDialogClose
4754
- ], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"] }]
4755
- }], ctorParameters: () => [{ type: FeedBackService }, { type: CoreI18nService }, { type: undefined, decorators: [{
4756
- type: Inject,
4757
- args: [MAT_DIALOG_DATA]
4758
- }] }], propDecorators: { inboxItem: [{
4759
- type: Input
4760
- }], profile: [{
4761
- type: Input
4762
- }] } });
4763
-
4764
- class ActivitiesComponent {
4765
- sidenavService;
4766
- i18n;
4767
- constructor(sidenavService, i18n) {
4768
- this.sidenavService = sidenavService;
4769
- this.i18n = i18n;
4770
- }
4771
- attch(data) {
4772
- console.log(data.detail);
4773
- if (data.detail.type == 'download') {
4774
- this.downloadFile(data);
4775
- }
4776
- }
4777
- downloadFile(event) {
4778
- /* const placeholder = event.target.nextElementSibling;
4779
- this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, event.detail.value.id).then((responseObject: { body: any; }) => {
4780
- const fileInformation = responseObject.body;
4781
- const fileBlob = this.dataURItoBlob(fileInformation.fileContents);
4782
- const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });
4783
- placeholder.href = URL.createObjectURL(file);
4784
- placeholder.download = file.name;
4785
- placeholder.click();
4786
- });*/
4787
- }
4788
- dataURItoBlob(dataURI) {
4789
- const byteString = atob(dataURI);
4790
- const arrayBuffer = new ArrayBuffer(byteString.length);
4791
- const int8Array = new Uint8Array(arrayBuffer);
4792
- for (let i = 0; i < byteString.length; i++) {
4793
- int8Array[i] = byteString.charCodeAt(i);
4794
- }
4795
- const blob = new Blob([arrayBuffer], { type: 'image/jpeg' });
4796
- return blob;
4797
- }
4798
- closeSidenav() {
4799
- this.sidenavService.publish('close', null);
4800
- }
4801
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, deps: [{ token: SidenavService }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
4802
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ActivitiesComponent, isStandalone: true, selector: "app-activities", ngImport: i0, template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n<!-- <div class=\"sidenav-body\">\r\n <ds-activity-log activitiesData=\"{{profileRequestorService.activities}}\" readOnly (attachmentEvent)=\"attch($event)\">\r\n </ds-activity-log>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-message *ngIf=\"!profileRequestorService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n </div>-->\r\n</section>\r\n", styles: [""] });
4803
- }
4804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, decorators: [{
4805
- type: Component,
4806
- args: [{ selector: 'app-activities', standalone: true, imports: [
4807
- NgIf
4808
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n<!-- <div class=\"sidenav-body\">\r\n <ds-activity-log activitiesData=\"{{profileRequestorService.activities}}\" readOnly (attachmentEvent)=\"attch($event)\">\r\n </ds-activity-log>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-message *ngIf=\"!profileRequestorService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n </div>-->\r\n</section>\r\n" }]
4809
- }], ctorParameters: () => [{ type: SidenavService }, { type: CoreI18nService }] });
4810
-
4811
- class ServiceHeaderComponent {
4812
- i18n;
4813
- feedBackService;
4814
- dialog;
4815
- sidenavService;
4816
- form;
4817
- showHistory = false;
4818
- isLoading = false;
4819
- showApprovalHistory = false;
4820
- approvalHistory;
4821
- creationDate;
4822
- formTitle;
4823
- section;
4824
- serviceBrief = [];
4825
- approvals = [];
4826
- feedBackIcon = null;
4827
- flagPriority;
4828
- constructor(i18n, feedBackService, dialog, sidenavService) {
4829
- this.i18n = i18n;
4830
- this.feedBackService = feedBackService;
4831
- this.dialog = dialog;
4832
- this.sidenavService = sidenavService;
4833
- }
4834
- ngAfterViewInit() {
4835
- this.getApprovalHistory();
4836
- this.creationDate = moment(this.form.header.creationDate).locale('en-US').format("DD/MM/YYYY HH:mm:ss");
4837
- }
4838
- onCommentsFormClick() {
4839
- const comments = this.form.commentsDrop;
4840
- const resultData = [];
4841
- for (let index = 0; index < comments.length; index++) {
4842
- const item = comments[index];
4843
- const obj = {
4844
- name: item.employeeName,
4845
- title: item.jobPosition,
4846
- image: item.profilePicture,
4847
- date: moment(item.commentDate).locale('en-US').format('YYYY-MM-DD'),
4848
- time: moment(item.commentDate).locale('en-US').format('h:mm a'),
4849
- comment: item.commentBody,
4850
- attachments: item.attachment
4851
- };
4852
- resultData.push(obj);
4853
- }
4854
- // this.profileRequesterService.activities = resultData;
4855
- this.sidenavService.publish('open', ActivitiesComponent);
4856
- }
4857
- feedback() {
4858
- this.dialog.open(FeedbackSectionComponent, {
4859
- panelClass: ['main-popup'],
4860
- data: {
4861
- profile: this.form.profileInfoDrop,
4862
- inboxItem: this.form.inboxItem,
4863
- form: this.form
4864
- }
4865
- });
4866
- }
4867
- showUserInfo() {
4868
- if (!this.isLoading) {
4869
- this.sidenavService.data = this.form?.profileInfoDrop;
4870
- this.sidenavService.publish('open', ProfileSectionComponent);
4871
- }
4872
- }
4873
- setFlagPriority(id) {
4874
- this.flagPriority = id;
4875
- this.form.inboxItem.flagPriority = id;
4876
- // this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_SET_FLAG, id).then(() => {
4877
- // });
5714
+ });
5715
+ }
4878
5716
  }
4879
- statusClass(status) {
4880
- if (status) {
4881
- if (this.isLoading) {
4882
- return 'loading';
4883
- }
4884
- else if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
4885
- || status.toLowerCase().includes('deny')
4886
- || status.toLowerCase().includes('reject')
4887
- || status?.toLowerCase() === 'reject' || status?.toLowerCase() === 'unsatisfied' || status?.toLowerCase() === 'cancel') {
4888
- return 'danger';
4889
- }
4890
- else if (status === FORM_STATUS_PENDING || status?.toLowerCase() === 'pending') {
4891
- return 'warning';
4892
- }
4893
- else {
4894
- return 'success';
4895
- }
5717
+ errorOccured = false;
5718
+ isSubmiting = false;
5719
+ errorMsg = '';
5720
+ showError(Response) {
5721
+ if (!this.form) {
5722
+ this.form = new Form(NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, Response);
4896
5723
  }
4897
5724
  else {
4898
- return 'success';
5725
+ this.errorOccured = true;
5726
+ this.errorMsg = Response?.error[0];
5727
+ // this.form.messages = Response;
4899
5728
  }
5729
+ window.scrollTo(0, 0);
4900
5730
  }
4901
- openFaq() {
4902
- this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceBrief);
5731
+ handleFeedbackQuestion(event) {
5732
+ this.feedBackQuestion = event;
5733
+ this.handleFeedbackValidation();
4903
5734
  }
4904
- getApprovalHistory() {
4905
- this.approvalHistory?.forEach((element, index) => {
4906
- const obj = {
4907
- id: index + 1,
4908
- name: element.approver.personName,
4909
- title: element.positionType,
4910
- image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.approver.personEmail,
4911
- status: this.form.sections[index + 1] ? this.statusClass(this.form.sections[index + 1].body.details.decision.key) : '',
4912
- statusLabel: this.form.sections[index + 1] ? this.form.sections[index + 1].body.details.decision.value : ''
4913
- };
4914
- this.approvals.push(obj);
4915
- });
5735
+ handleFeedbackResponse(event) {
5736
+ this.feedBackResponse = event;
5737
+ this.handleResponseValidation();
4916
5738
  }
4917
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, deps: [{ token: CoreI18nService }, { token: FeedBackService }, { token: i1.MatDialog }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
4918
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ServiceHeaderComponent, isStandalone: true, selector: "core-service-header", inputs: { form: "form", showHistory: "showHistory", isLoading: "isLoading", showApprovalHistory: "showApprovalHistory", approvalHistory: "approvalHistory", creationDate: "creationDate", formTitle: "formTitle", section: "section", serviceBrief: "serviceBrief" }, providers: [FeedBackService,
4919
- { provide: MAT_DIALOG_DATA, useValue: {} },
4920
- ], ngImport: i0, template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1$2.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
4921
- }
4922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, decorators: [{
4923
- type: Component,
4924
- args: [{ selector: 'core-service-header', standalone: true, imports: [
4925
- NgIf,
4926
- SatPopoverModule,
4927
- MatDivider,
4928
- MatMenuTrigger,
4929
- NgClass,
4930
- MatMenu,
4931
- MatMenuItem
4932
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [FeedBackService,
4933
- { provide: MAT_DIALOG_DATA, useValue: {} },
4934
- ], template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"] }]
4935
- }], ctorParameters: () => [{ type: CoreI18nService }, { type: FeedBackService }, { type: i1.MatDialog }, { type: SidenavService }], propDecorators: { form: [{
4936
- type: Input
4937
- }], showHistory: [{
4938
- type: Input
4939
- }], isLoading: [{
4940
- type: Input
4941
- }], showApprovalHistory: [{
4942
- type: Input
4943
- }], approvalHistory: [{
4944
- type: Input
4945
- }], creationDate: [{
4946
- type: Input
4947
- }], formTitle: [{
4948
- type: Input
4949
- }], section: [{
4950
- type: Input
4951
- }], serviceBrief: [{
4952
- type: Input
4953
- }] } });
4954
-
4955
- class StatusComponent {
4956
- form;
4957
- statusClass(status) {
4958
- if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED) {
4959
- return {
4960
- status: true,
4961
- danger: status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
4962
- };
5739
+ handleUserSelected(event) {
5740
+ this.searchEmp = {
5741
+ personEmail: event.personEmail,
5742
+ personName: event.personName
5743
+ };
5744
+ if (!this.feedBackQuestion) {
5745
+ return;
4963
5746
  }
4964
- else if (status === FORM_STATUS_PENDING) {
4965
- return {
4966
- status: true,
4967
- warning: status === FORM_STATUS_PENDING
4968
- };
5747
+ this.handleFeedbackValidation();
5748
+ }
5749
+ handleResponseValidation() {
5750
+ if (this.feedBackResponse.length >= 1 &&
5751
+ this.feedBackResponse.length < 500) {
5752
+ this.isResponseValidated = true;
4969
5753
  }
4970
5754
  else {
4971
- return {
4972
- status: true,
4973
- success: status === FORM_STATUS_COMPLETED || FORM_STATUS_APPROVED
4974
- };
5755
+ this.isResponseValidated = false;
4975
5756
  }
4976
5757
  }
4977
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4978
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: StatusComponent, isStandalone: true, selector: "app-status", inputs: { form: "form" }, ngImport: i0, template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
5758
+ handleFeedbackValidation() {
5759
+ if (this.feedBackQuestion.length >= 1 &&
5760
+ this.feedBackQuestion.length < 500 &&
5761
+ this.searchEmp.personEmail) {
5762
+ this.isFeedbackValidated = true;
5763
+ }
5764
+ else {
5765
+ this.isFeedbackValidated = false;
5766
+ }
5767
+ }
5768
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, deps: [{ token: FeedBackService }, { token: CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5769
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "label", "tooltip", "className", "showLabel", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["label", "tooltip", "className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
4979
5770
  }
4980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, decorators: [{
5771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, decorators: [{
4981
5772
  type: Component,
4982
- args: [{ selector: 'app-status', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
4983
- NgClass
4984
- ], template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"] }]
4985
- }], propDecorators: { form: [{
5773
+ args: [{ selector: 'app-feedback-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
5774
+ MatDialogContent,
5775
+ NgIf,
5776
+ SearchEmployeeComponent,
5777
+ TextareaComponent,
5778
+ InfoItemComponent,
5779
+ MatDialogTitle,
5780
+ MatDialogClose
5781
+ ], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"] }]
5782
+ }], ctorParameters: () => [{ type: FeedBackService }, { type: CoreI18nService }, { type: undefined, decorators: [{
5783
+ type: Inject,
5784
+ args: [MAT_DIALOG_DATA]
5785
+ }] }], propDecorators: { inboxItem: [{
5786
+ type: Input
5787
+ }], profile: [{
4986
5788
  type: Input
4987
5789
  }] } });
4988
5790
 
4989
- class FormSectionComponent {
5791
+ class ActivitiesComponent {
5792
+ sidenavService;
4990
5793
  i18n;
4991
- userType = 'receipient';
4992
- popover;
4993
- popoverType = 'receipient';
4994
- popoverPosition = { top: 0, left: 0 };
4995
- requestDetails;
4996
- userPopoverInfo = {};
4997
- section;
4998
- form;
4999
- lov;
5000
- isReadOnly;
5001
- isOpen;
5002
- isFinalApproval;
5003
- controllers;
5004
- segmentDynamicLoaderService;
5005
- sectionFormComponent = null;
5006
- sectionName = 'SECTION_NAME.requestDetails';
5007
- sectionNumber;
5008
- sectionStatusValue;
5009
- sectionStatusKey;
5010
- receipient = {
5011
- isShowing: false,
5012
- profile: null
5013
- };
5014
- delegate = {
5015
- isShowing: false,
5016
- profile: null
5017
- };
5018
- input;
5019
- highlightFlag;
5020
- processingDate;
5021
- randomID = Math.floor(Math.random() * (999999 - 100000)) + 100000;
5022
- constructor(
5023
- // private segmentDynamicLoaderService: SegmentDynamicLoaderService,
5024
- i18n) {
5025
- this.i18n = i18n;
5026
- this.highlightFlag = false;
5027
- }
5028
- ngOnInit() {
5029
- this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(this.section.id);
5030
- if (this.section.body.details.stageName) {
5031
- this.sectionName = this.section.body.details.stageName;
5032
- }
5033
- else {
5034
- this.sectionName = this.segmentDynamicLoaderService.getSectionName(this.section.id);
5035
- }
5036
- this.input = {
5037
- isReadOnly: this.isReadOnly,
5038
- lov: this.lov,
5039
- section: this.section,
5040
- controllers: this.controllers,
5041
- requestDetails: this.requestDetails
5042
- };
5043
- if (this.section.header && this.section.header.processingDate) {
5044
- this.processingDate = moment(this.section.header.processingDate)
5045
- .locale('en-US')
5046
- .format('DD/MM/YYYY HH:mm:ss');
5047
- }
5048
- this.highlightFlag = this.isOpen;
5049
- const x = document.querySelectorAll('#collapse' + this.sectionId());
5050
- if (x.length > 0) {
5051
- this.sectionNumber = x.length;
5052
- }
5053
- }
5054
- ngOnChanges() {
5055
- if (this.section.id !== 'requestDetails' &&
5056
- this.section.id !== 'hrRequestDetails' &&
5057
- !this.sectionStatusKey &&
5058
- this.section.body.details.decision &&
5059
- this.section.body.details.decision.key) {
5060
- this.sectionStatusKey = this.section.body.details.decision.key;
5061
- }
5062
- if (this.section.id !== 'requestDetails' &&
5063
- this.section.id !== 'hrRequestDetails' &&
5064
- !this.sectionStatusValue &&
5065
- this.section.body.details.decision &&
5066
- this.section.body.details.decision.value) {
5067
- this.sectionStatusValue = this.section.body.details.decision.value;
5068
- }
5069
- }
5070
- ngAfterViewInit() {
5071
- this.ServicesSubScriptions();
5072
- }
5073
- get isExpanded() {
5074
- const isExpandableFromBackend = this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
5075
- if (!isExpandableFromBackend)
5076
- return true;
5077
- return this.section?.body?.details?.expandStage === 'true';
5078
- }
5079
- ServicesSubScriptions() {
5080
- /* this.profileRequestorService.getForm().subscribe((data) => {
5081
- this.form = data;
5082
- });*/
5083
- }
5084
- ngAfterViewChecked() {
5085
- this.input = {
5086
- isReadOnly: this.isReadOnly,
5087
- lov: this.lov,
5088
- section: this.section,
5089
- controllers: this.controllers,
5090
- sectionId: this.section
5091
- };
5794
+ constructor(sidenavService, i18n) {
5795
+ this.sidenavService = sidenavService;
5796
+ this.i18n = i18n;
5092
5797
  }
5093
- sectionId() {
5094
- return this.section.id.split(' ').join('') + this.randomID;
5798
+ attch(data) {
5799
+ console.log(data.detail);
5800
+ if (data.detail.type == 'download') {
5801
+ this.downloadFile(data);
5802
+ }
5095
5803
  }
5096
- getSectionName() {
5097
- return this.section.id;
5804
+ downloadFile(event) {
5805
+ /* const placeholder = event.target.nextElementSibling;
5806
+ this.coreStateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_LOAD_FILE, event.detail.value.id).then((responseObject: { body: any; }) => {
5807
+ const fileInformation = responseObject.body;
5808
+ const fileBlob = this.dataURItoBlob(fileInformation.fileContents);
5809
+ const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });
5810
+ placeholder.href = URL.createObjectURL(file);
5811
+ placeholder.download = file.name;
5812
+ placeholder.click();
5813
+ });*/
5098
5814
  }
5099
- getFormStepStatus(key) {
5100
- let status = 'NOT_FOUND_IN_LOV';
5101
- if (this.lov.formStepStatus && this.lov.formStepStatus.options) {
5102
- this.lov.formStepStatus.options.forEach((option) => {
5103
- if (option.value === key) {
5104
- status = option.description;
5105
- }
5106
- });
5815
+ dataURItoBlob(dataURI) {
5816
+ const byteString = atob(dataURI);
5817
+ const arrayBuffer = new ArrayBuffer(byteString.length);
5818
+ const int8Array = new Uint8Array(arrayBuffer);
5819
+ for (let i = 0; i < byteString.length; i++) {
5820
+ int8Array[i] = byteString.charCodeAt(i);
5107
5821
  }
5108
- return status;
5822
+ const blob = new Blob([arrayBuffer], { type: 'image/jpeg' });
5823
+ return blob;
5109
5824
  }
5110
- toggleSmallProfileInfo(event, personType) {
5111
- this.userType = personType;
5112
- event.stopPropagation();
5113
- const userInfo = this[personType];
5114
- if (userInfo.profile === null) {
5115
- this.popoverType = personType;
5116
- const userEmail = personType === 'receipient'
5117
- ? this.section.header.personToThumbnail.split('=')[1]
5118
- : this?.section?.header?.delegatedToThumbnail.split('=')[1];
5119
- /*this.stateMachine
5120
- .dispatch(Constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, userEmail)
5121
- .then((response) => {
5122
- console.log(this, response);
5123
-
5124
- if (response) {
5125
- this[personType].profile = response;
5126
- this.popoverPosition = {
5127
- top: 10,
5128
- left:
5129
- event.target.getBoundingClientRect().left +
5130
- event.target.getBoundingClientRect().width / 4
5131
- };
5132
- this.popover.anchor = event.target;
5133
- this.popover.open();
5134
- this.userPopoverInfo = response;
5135
- }
5136
- });*/
5137
- }
5138
- else {
5139
- this.userPopoverInfo = this[personType].profile;
5140
- this.popoverPosition = {
5141
- top: 10,
5142
- left: event.target.getBoundingClientRect().left +
5143
- event.target.getBoundingClientRect().width / 4
5825
+ closeSidenav() {
5826
+ this.sidenavService.publish('close', null);
5827
+ }
5828
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, deps: [{ token: SidenavService }, { token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
5829
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ActivitiesComponent, isStandalone: true, selector: "app-activities", ngImport: i0, template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n<!-- <div class=\"sidenav-body\">\r\n <ds-activity-log activitiesData=\"{{profileRequestorService.activities}}\" readOnly (attachmentEvent)=\"attch($event)\">\r\n </ds-activity-log>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-message *ngIf=\"!profileRequestorService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n </div>-->\r\n</section>\r\n", styles: [""] });
5830
+ }
5831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ActivitiesComponent, decorators: [{
5832
+ type: Component,
5833
+ args: [{ selector: 'app-activities', standalone: true, imports: [
5834
+ NgIf
5835
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('commentHistory') }}</h3>\r\n\r\n <ds-button (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n\r\n </div>\r\n<!-- <div class=\"sidenav-body\">\r\n <ds-activity-log activitiesData=\"{{profileRequestorService.activities}}\" readOnly (attachmentEvent)=\"attch($event)\">\r\n </ds-activity-log>\r\n <a href=\"\" class=\"hidden-placeholder\"></a>\r\n <ds-message *ngIf=\"!profileRequestorService.activities\" label=\"{{i18n.translate('NoData1')}}\"></ds-message>\r\n </div>-->\r\n</section>\r\n" }]
5836
+ }], ctorParameters: () => [{ type: SidenavService }, { type: CoreI18nService }] });
5837
+
5838
+ class ServiceHeaderComponent {
5839
+ i18n;
5840
+ feedBackService;
5841
+ dialog;
5842
+ sidenavService;
5843
+ form;
5844
+ showHistory = false;
5845
+ isLoading = false;
5846
+ showApprovalHistory = false;
5847
+ approvalHistory;
5848
+ creationDate;
5849
+ formTitle;
5850
+ section;
5851
+ serviceBrief = [];
5852
+ approvals = [];
5853
+ feedBackIcon = null;
5854
+ flagPriority;
5855
+ constructor(i18n, feedBackService, dialog, sidenavService) {
5856
+ this.i18n = i18n;
5857
+ this.feedBackService = feedBackService;
5858
+ this.dialog = dialog;
5859
+ this.sidenavService = sidenavService;
5860
+ }
5861
+ ngAfterViewInit() {
5862
+ this.getApprovalHistory();
5863
+ this.creationDate = moment(this.form.header.creationDate).locale('en-US').format("DD/MM/YYYY HH:mm:ss");
5864
+ }
5865
+ onCommentsFormClick() {
5866
+ const comments = this.form.commentsDrop;
5867
+ const resultData = [];
5868
+ for (let index = 0; index < comments.length; index++) {
5869
+ const item = comments[index];
5870
+ const obj = {
5871
+ name: item.employeeName,
5872
+ title: item.jobPosition,
5873
+ image: item.profilePicture,
5874
+ date: moment(item.commentDate).locale('en-US').format('YYYY-MM-DD'),
5875
+ time: moment(item.commentDate).locale('en-US').format('h:mm a'),
5876
+ comment: item.commentBody,
5877
+ attachments: item.attachment
5144
5878
  };
5145
- this.popover.anchor = event.target;
5146
- this.popover.open();
5879
+ resultData.push(obj);
5147
5880
  }
5881
+ // this.profileRequesterService.activities = resultData;
5882
+ this.sidenavService.publish('open', ActivitiesComponent);
5148
5883
  }
5149
- statusIconClass(status, type) {
5150
- if (status) {
5151
- if (status === FORM_STATUS_REJECTED ||
5152
- status === FORM_STATUS_CANCELLED ||
5153
- status.toLowerCase() === 'reject' ||
5154
- status.toLowerCase() === 'unsatisfied' ||
5155
- status.toLowerCase().includes('deny') ||
5156
- status.toLowerCase().includes('reject') ||
5157
- status.toLowerCase() === 'cancel') {
5158
- return type === 'status' ? 'danger' : 'close';
5159
- }
5160
- else if (status === FORM_STATUS_PENDING ||
5161
- status.toLowerCase() === 'pending') {
5162
- return type === 'status' ? 'warning' : 'clock';
5163
- }
5164
- else {
5165
- return type === 'status' ? 'success' : 'check';
5884
+ feedback() {
5885
+ this.dialog.open(FeedbackSectionComponent, {
5886
+ panelClass: ['main-popup'],
5887
+ data: {
5888
+ profile: this.form.profileInfoDrop,
5889
+ inboxItem: this.form.inboxItem,
5890
+ form: this.form
5166
5891
  }
5167
- }
5168
- else {
5169
- return type === 'status' ? 'success' : 'check';
5892
+ });
5893
+ }
5894
+ showUserInfo() {
5895
+ if (!this.isLoading) {
5896
+ this.sidenavService.data = this.form?.profileInfoDrop;
5897
+ this.sidenavService.publish('open', ProfileSectionComponent);
5170
5898
  }
5171
5899
  }
5172
- locationHref(hrefLink) {
5173
- window.location.href = hrefLink;
5900
+ setFlagPriority(id) {
5901
+ this.flagPriority = id;
5902
+ this.form.inboxItem.flagPriority = id;
5903
+ // this.stateMachineService.dispatch(Constants.STATE_MACHINE_ACTION_SET_FLAG, id).then(() => {
5904
+ // });
5174
5905
  }
5175
5906
  statusClass(status) {
5176
5907
  if (status) {
5177
- if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
5178
- || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel') {
5908
+ if (this.isLoading) {
5909
+ return 'loading';
5910
+ }
5911
+ else if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
5912
+ || status.toLowerCase().includes('deny')
5913
+ || status.toLowerCase().includes('reject')
5914
+ || status?.toLowerCase() === 'reject' || status?.toLowerCase() === 'unsatisfied' || status?.toLowerCase() === 'cancel') {
5179
5915
  return 'danger';
5180
5916
  }
5181
- else if (status === FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {
5917
+ else if (status === FORM_STATUS_PENDING || status?.toLowerCase() === 'pending') {
5182
5918
  return 'warning';
5183
5919
  }
5184
5920
  else {
@@ -5189,241 +5925,217 @@ class FormSectionComponent {
5189
5925
  return 'success';
5190
5926
  }
5191
5927
  }
5192
- statusIcon(status) {
5193
- if (status) {
5194
- if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
5195
- || status.toLowerCase() === 'reject' || status.toLowerCase() === 'unsatisfied' || status.toLowerCase() === 'cancel') {
5196
- return 'close';
5197
- }
5198
- else if (status === FORM_STATUS_PENDING || status.toLowerCase() === 'pending') {
5199
- return 'clock';
5200
- }
5201
- else {
5202
- return 'check';
5203
- }
5204
- }
5205
- else {
5206
- return 'check';
5207
- }
5928
+ openFaq() {
5929
+ this.sidenavService.publish('open', FaqSidenavComponent, 'end', 'over', this.serviceBrief);
5208
5930
  }
5209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
5210
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", isOpen: "isOpen", isFinalApproval: "isFinalApproval", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n\r\n\r\n\r\n<!--\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"true\" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n\r\n <app-workflow-approval\r\n [isReadOnly]=\"input.isReadOnly\"\r\n [lov]=\"input.lov\"\r\n [section]=\"input.section\"\r\n [requestDetails]=\"requestDetails\"\r\n ></app-workflow-approval>\r\n &lt;!&ndash; <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>&ndash;&gt;\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n-->\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: ComponentOutletIoDirective, selector: "[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ngComponentOutletNdcDynamicInputs", "ngComponentOutletNdcDynamicOutputs"], exportAs: ["ndcDynamicIo"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
5931
+ getApprovalHistory() {
5932
+ this.approvalHistory?.forEach((element, index) => {
5933
+ const obj = {
5934
+ id: index + 1,
5935
+ name: element.approver.personName,
5936
+ title: element.positionType,
5937
+ image: '/group/i-gate/wm-bpm/forms/-/proxy/portrait?email=' + element.approver.personEmail,
5938
+ status: this.form.sections[index + 1] ? this.statusClass(this.form.sections[index + 1].body.details.decision.key) : '',
5939
+ statusLabel: this.form.sections[index + 1] ? this.form.sections[index + 1].body.details.decision.value : ''
5940
+ };
5941
+ this.approvals.push(obj);
5942
+ });
5943
+ }
5944
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, deps: [{ token: CoreI18nService }, { token: FeedBackService }, { token: i1$4.MatDialog }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
5945
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ServiceHeaderComponent, isStandalone: true, selector: "core-service-header", inputs: { form: "form", showHistory: "showHistory", isLoading: "isLoading", showApprovalHistory: "showApprovalHistory", approvalHistory: "approvalHistory", creationDate: "creationDate", formTitle: "formTitle", section: "section", serviceBrief: "serviceBrief" }, providers: [FeedBackService,
5946
+ { provide: MAT_DIALOG_DATA, useValue: {} },
5947
+ ], ngImport: i0, template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i1$2.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: i1$2.SatPopoverAnchorDirective, selector: "[satPopoverAnchor]", inputs: ["satPopoverAnchor"], exportAs: ["satPopoverAnchor"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
5211
5948
  }
5212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, decorators: [{
5949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ServiceHeaderComponent, decorators: [{
5213
5950
  type: Component,
5214
- args: [{ selector: 'app-form-section', standalone: true, imports: [
5215
- MatExpansionPanel,
5951
+ args: [{ selector: 'core-service-header', standalone: true, imports: [
5216
5952
  NgIf,
5217
- NgComponentOutlet,
5218
- ComponentOutletIoDirective,
5219
5953
  SatPopoverModule,
5220
- NgClass
5221
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n\r\n\r\n\r\n<!--\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"true\" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n\r\n <app-workflow-approval\r\n [isReadOnly]=\"input.isReadOnly\"\r\n [lov]=\"input.lov\"\r\n [section]=\"input.section\"\r\n [requestDetails]=\"requestDetails\"\r\n ></app-workflow-approval>\r\n &lt;!&ndash; <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>&ndash;&gt;\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n-->\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
5222
- }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { popover: [{
5223
- type: ViewChild,
5224
- args: ['popover']
5225
- }], requestDetails: [{
5226
- type: Input
5227
- }], section: [{
5228
- type: Input
5229
- }], form: [{
5954
+ MatDivider,
5955
+ MatMenuTrigger,
5956
+ NgClass,
5957
+ MatMenu,
5958
+ MatMenuItem
5959
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [FeedBackService,
5960
+ { provide: MAT_DIALOG_DATA, useValue: {} },
5961
+ ], template: "<ng-container *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <div class=\"d-flex align-items-center justify-content-end gap-2 my-2\" *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n\r\n <!-- flag-->\r\n <!--<ds-button\r\n *ngIf=\"form?.inboxItem && !form.sections[form.sections.length -1].header.readOnly && !isLoading\"\r\n square\r\n icon\r\n size=\"small\"\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"icon-btn-shadow\">\r\n <ds-icon\r\n [ngClass]=\"{'fc-purple' : (flagPriority === '0' || flagPriority === null),'fc-yellow' : flagPriority === '1','fc-green' : flagPriority === '2','fc-coral' : flagPriority === '3'}\"\r\n icon=\"flag-o\" class=\"fs-20 fs-md-17 fc-purple\">\r\n </ds-icon>\r\n </ds-button>\r\n <mat-menu #menu=\"matMenu\" panelClass=\"action-menu\">\r\n <button mat-menu-item (click)=\"setFlagPriority('0')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-purple fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('1')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-yellow fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('2')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-green fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n <button mat-menu-item (click)=\"setFlagPriority('3')\">\r\n <ds-icon icon=\"flag-o\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </button>\r\n </mat-menu>-->\r\n\r\n <!-- print-->\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <header class=\"service-header bc-white p-3 p-sm-4 py-4 gap-3 {{statusClass(form?.header?.status?.['key'])}}\">\r\n\r\n <div class=\"service-header-icon\">\r\n <img\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMjkiIHZpZXdCb3g9IjAgMCAzMCAyOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI1LjEgMEg0LjlDMi4yIDAgMCAyLjIgMCA0LjlWMjguNkgyNS4xQzI3LjggMjguNiAzMCAyNi40IDMwIDIzLjdWNC45QzMwIDIuMiAyNy44IDAgMjUuMSAwWk0yIDQuOUMyIDMuMyAzLjMgMiA0LjkgMkgyNS4xQzI2LjcgMiAyOCAzLjMgMjggNC45VjIzLjdDMjggMjUuMyAyNi43IDI2LjYgMjUuMSAyNi42SDJWNC45Wk0xMS41IDYuM0M3LjEgNi4zIDMuNSA5LjkgMy41IDE0LjNDMy41IDE4LjcgNy4xIDIyLjMgMTEuNSAyMi4zQzE1LjkgMjIuMyAxOS41IDE4LjcgMTkuNSAxNC4zQzE5LjUgOS45IDE1LjkgNi4zIDExLjUgNi4zWk0xNS4xIDE5QzE0LjEgMTkuOCAxMi44IDIwLjIgMTEuNSAyMC4yQzEwLjIgMjAuMiA4LjkgMTkuOCA3LjkgMTlDOC43IDE3LjcgMTAgMTcgMTEuNSAxN0MxMyAxNyAxNC40IDE3LjggMTUuMSAxOVpNMTMuMSAxMy40QzEzLjEgMTQuMyAxMi40IDE1IDExLjUgMTVDMTAuNiAxNSA5LjkgMTQuMyA5LjkgMTMuNEM5LjkgMTIuNSAxMC42IDExLjggMTEuNSAxMS44QzEyLjQgMTEuOCAxMy4xIDEyLjUgMTMuMSAxMy40Wk0xNS4xIDEzLjRDMTUuMSAxMS40IDEzLjUgOS44IDExLjUgOS44QzkuNSA5LjggNy45IDExLjQgNy45IDEzLjRDNy45IDE0LjIgOC4yIDE1IDguNyAxNS43QzcuOCAxNi4xIDcuMSAxNi44IDYuNSAxNy42QzUuOCAxNi42IDUuNSAxNS41IDUuNSAxNC4zQzUuNSAxMSA4LjIgOC4zIDExLjUgOC4zQzE0LjggOC4zIDE3LjUgMTEgMTcuNSAxNC4zQzE3LjUgMTUuNSAxNy4yIDE2LjYgMTYuNSAxNy42QzE1LjkgMTYuOCAxNS4yIDE2LjIgMTQuMyAxNS43QzE0LjggMTUuMSAxNS4xIDE0LjIgMTUuMSAxMy40Wk0yMSA5LjFDMjEgOC42IDIxLjQgOC4xIDIyIDguMUgyNS41QzI2IDguMSAyNi41IDguNSAyNi41IDkuMUMyNi41IDkuNiAyNi4xIDEwLjEgMjUuNSAxMC4xSDIyQzIxLjQgMTAuMSAyMSA5LjYgMjEgOS4xWk0yMSAxMi41QzIxIDEyIDIxLjQgMTEuNSAyMiAxMS41SDI1LjVDMjYgMTEuNSAyNi41IDExLjkgMjYuNSAxMi41QzI2LjUgMTMgMjYuMSAxMy41IDI1LjUgMTMuNUgyMkMyMS40IDEzLjUgMjEgMTMuMSAyMSAxMi41Wk0yMSAxNkMyMSAxNS41IDIxLjQgMTUgMjIgMTVIMjUuNUMyNiAxNSAyNi41IDE1LjQgMjYuNSAxNkMyNi41IDE2LjUgMjYuMSAxNyAyNS41IDE3SDIyQzIxLjQgMTcgMjEgMTYuNiAyMSAxNlpNMjUuNSAyMC41SDIyQzIxLjUgMjAuNSAyMSAyMC4xIDIxIDE5LjVDMjEgMTguOSAyMS40IDE4LjUgMjIgMTguNUgyNS41QzI2IDE4LjUgMjYuNSAxOC45IDI2LjUgMTkuNUMyNi41IDIwLjEgMjYuMSAyMC41IDI1LjUgMjAuNVoiIGZpbGw9IiNGRjM3NUUiLz4KPC9zdmc+Cg==\"/>\r\n </div>\r\n\r\n <div class=\"flex-grow-1 d-flex flex-column flex-sm-row align-items-sm-center gap-2\">\r\n <div class=\"flex-grow-1\">\r\n <!-- title-->\r\n <h1 class=\"fs-20 fs-md-16 fw-bold fc-black header-title m-0\">{{ formTitle }}\r\n <ds-icon\r\n icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\"\r\n (click)=\"openFaq()\"></ds-icon>\r\n </h1>\r\n <div\r\n class=\"header-user d-flex align-items-sm-center gap-2 mt-sm-1\"\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' || isLoading\">\r\n <ds-avatar\r\n *ngIf=\"!isLoading\" image=\"{{form?.header?.requesterPhoto}}\" size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" (click)=\"showUserInfo()\"></ds-avatar>\r\n <span\r\n class=\"fs-12 text-truncate d-sm-block cursor-pointer\" (click)=\"showUserInfo()\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ (form?.header?.requesterName) }}</span>\r\n <mat-divider class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span class=\"fs-12\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ form?.header?.formId }}</span>\r\n <mat-divider *ngIf=\"creationDate\" class=\"divider circle mx-2 d-none d-sm-block\"></mat-divider>\r\n <span *ngIf=\"creationDate\" class=\"fs-14\" [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{ creationDate }}</span>\r\n </div>\r\n </div>\r\n <!-- header-actions-->\r\n <div\r\n class=\"header-actions d-flex flex-row flex-sm-column justify-content-between justify-content-sm-center gap-2 mt-2 mt-sm-0\"\r\n *ngIf=\"!(form?.header?.status?.['key'] === 'NEW')\">\r\n <ds-status\r\n *ngIf=\"form?.header?.status?.['key'] !== 'NEW' && !isLoading\"\r\n status=\"{{statusClass(form?.header?.status?.['key'])}}\" class=\"header-status\">{{ form?.header?.status?.['value'] }}\r\n </ds-status>\r\n\r\n <div class=\"d-flex align-items-center justify-content-end gap-2\">\r\n <!-- feedback-->\r\n<!-- *ngIf=\"form?.inboxItem && (form?.inboxItem?.canRequestFeedback ==='true'|| form?.inboxItem?.hasFeedback==='true') && !isLoading\"-->\r\n <ds-button\r\n square icon size=\"small\" (click)=\"feedback()\">\r\n <ds-icon\r\n icon=\"chat-o\" class=\"fs-20 fs-md-17 fc-coral\"\r\n [ngClass]=\"{'fc-green':feedBackIcon === 'feedbackResponded' , 'fc-red': feedBackIcon === 'respondToFeedback' , 'fc-yellow': feedBackIcon === 'waitingFeedback'}\">\r\n </ds-icon>\r\n </ds-button>\r\n <ds-button\r\n *ngIf=\"form?.commentsDrop?.length > 0 && !isLoading\" square icon size=\"small\"\r\n (click)=\"onCommentsFormClick()\" class=\"has-comments\">\r\n <ds-icon icon=\"clock\" class=\"fc-coral fs-20 fs-md-17\"></ds-icon>\r\n </ds-button>\r\n <ng-container *ngIf=\"showApprovalHistory\">\r\n <ds-button\r\n color=\"white\" shape=\"text\" square size=\"small\" [satPopoverAnchor]=\"workflow\"\r\n #workflowAnchor=\"satPopoverAnchor\" (click)=\"workflowAnchor.popover.open()\">\r\n <slot name=\"prefix\">\r\n <ds-icon icon=\"workflow\" class=\"fs-24\"></ds-icon>\r\n </slot>\r\n </ds-button>\r\n\r\n <sat-popover\r\n #workflow [anchor]=\"workflowAnchor\" [hasBackdrop]=\"true\" verticalAlign=\"below\"\r\n horizontalAlign=\"end\">\r\n <div class=\"default-popover p-3\" style=\"min-width: 330px;\">\r\n <ds-approvals *ngIf=\"approvalHistory\" class=\"popover-approvals\" approvalsData=\"{{approvals}}\">\r\n </ds-approvals>\r\n </div>\r\n </sat-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </header>\r\n</ng-container>\r\n<header\r\n class=\"mb-4 mt-4 d-flex align-items-center justify-content-between align-items-end gap-2\"\r\n *ngIf=\"(form?.header?.status?.['key'] === 'NEW')\">\r\n <section>\r\n <h6 class=\"fs-14 fs-md-12 fw-normal fc-dark-gray mb-0\">\r\n {{ i18n.translate('Hello') }}\r\n {{ (form?.header?.requesterName) }}, {{ i18n.translate('welcomeBack') }}!\r\n </h6>\r\n <h1 class=\"fs-26 fs-md-20 fw-bold fc-black d-flex align-items-center gap-2 mb-1\">\r\n {{ formTitle }}\r\n <ds-icon icon=\"info\" class=\"fs-22 fc-dark-gray cursor-pointer\" *ngIf=\"serviceBrief.length\" (click)=\"openFaq()\">\r\n </ds-icon>\r\n </h1>\r\n </section>\r\n\r\n</header>\r\n", styles: [":host ::ng-deep .filter-section .select-form-field{--input-bg: var(--white);--input-border: var(--white);--placeholder-fc: var(--black);--input-width: 85px;--input-fs: .75rem;--placeholder-fs: .75rem;--label-fs: .75rem;--label-fw: var(--font-regular);--input-height: var(--default-size-sm);font-size:var(--label-fs);box-shadow:var(--box-shadow)}:host ::ng-deep ds-button::part(base){--default-size-sm: 30px;--btn-radius: 3px}@media (max-width: 576px){:host ::ng-deep ds-button::part(base){--default-size-sm: 25px}}:host ::ng-deep .loading-width{min-width:100px;width:40px;flex-grow:1}:host ::ng-deep ds-avatar::part(base){--default-size: 20px}:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-lg);--header-border-color: var(--coral);display:flex;align-items:flex-start;border-top:5px solid var(--header-border-color);box-shadow:0 7px 10px rgba(var(--rgb-black),3%)}@media (max-width: 576px){:host ::ng-deep .service-header{border-radius:3px 3px 0 0}}:host ::ng-deep .service-header.loading{--header-border-color: var(--off-white)}:host ::ng-deep .service-header.warning{--header-border-color: var(--yellow)}:host ::ng-deep .service-header.success{--header-border-color: var(--green)}:host ::ng-deep .service-header.danger{--header-border-color: var(--red)}@media (max-width: 576px){:host ::ng-deep .service-header{--service-header-icon-size: var(--default-size-sm)}}:host ::ng-deep .service-header .service-header-icon{min-width:var(--service-header-icon-size);width:var(--service-header-icon-size);height:var(--service-header-icon-size);display:inline-flex;align-items:center;justify-content:center;padding:.75rem;border-radius:6px 6px 6px 0;background-color:rgba(var(--rgb-coral),.1)}@media (max-width: 576px){:host ::ng-deep .service-header .service-header-icon{padding:.5rem}}:host ::ng-deep .service-header .header-title{text-align:start}:host ::ng-deep .service-header .divider.circle{min-width:5px;width:5px;min-height:5px;height:5px;border-radius:50%;background-color:var(--dark-gray)}:host ::ng-deep .service-header .header-actions{align-items:flex-end;justify-content:flex-end}:host ::ng-deep .service-header .header-actions .has-comments{position:relative}:host ::ng-deep .service-header .header-actions .has-comments:before{content:\"\";min-width:8px;height:8px;border-radius:50%;background-color:var(--coral);position:absolute;top:-3px;right:-3px;z-index:1}[dir=rtl] :host ::ng-deep .service-header .header-actions .has-comments:before{right:auto;left:-3px}:host ::ng-deep .service-header .header-actions ds-button::part(base){--btn-color: var(--coral);--btn-bg-color: var(--light-gray);--btn-border-color: var(--light-gray)}:host ::ng-deep .service-header .header-user{color:var(--dark-gray)}:host ::ng-deep .history-button::part(base){background-color:var(--white);--btn-height: var(--default-size-sm);--btn-shadow: 0 7px 10px rgba(var(--rgb-black), 3%)}@media (max-width: 576px){:host ::ng-deep .history-button::part(base){--btn-height: 35px;--btn-width: 35px}}@media (max-width: 576px){:host ::ng-deep .history-button::part(label){display:none}}\n"] }]
5962
+ }], ctorParameters: () => [{ type: CoreI18nService }, { type: FeedBackService }, { type: i1$4.MatDialog }, { type: SidenavService }], propDecorators: { form: [{
5230
5963
  type: Input
5231
- }], lov: [{
5964
+ }], showHistory: [{
5232
5965
  type: Input
5233
- }], isReadOnly: [{
5966
+ }], isLoading: [{
5234
5967
  type: Input
5235
- }], isOpen: [{
5968
+ }], showApprovalHistory: [{
5236
5969
  type: Input
5237
- }], isFinalApproval: [{
5970
+ }], approvalHistory: [{
5238
5971
  type: Input
5239
- }], controllers: [{
5972
+ }], creationDate: [{
5240
5973
  type: Input
5241
- }], segmentDynamicLoaderService: [{
5974
+ }], formTitle: [{
5242
5975
  type: Input
5243
- }], sectionFormComponent: [{
5976
+ }], section: [{
5244
5977
  type: Input
5245
- }], sectionName: [{
5978
+ }], serviceBrief: [{
5246
5979
  type: Input
5247
5980
  }] } });
5248
5981
 
5249
- class MainRequestDetailsComponent {
5250
- i18n;
5251
- section;
5252
- lov;
5982
+ const environment = {
5983
+ production: false,
5984
+ CONFIG_NAME: 'wmConfig',
5985
+ proxyAddress: '',
5986
+ proxyPort: '',
5987
+ formConfigApproval: '',
5988
+ formConfigPerGov: '',
5989
+ formConfigPerGovAr: '',
5990
+ formConfigExecute: '',
5991
+ formConfigPayroll: '',
5992
+ formName: 'MEO',
5993
+ formId: '',
5994
+ authToken: '',
5995
+ proxyServiceBaseUrl: 'http://localhost' + ':' + '3000/',
5996
+ proxyFullAddress: '',
5997
+ proxyServiceAuthorization: '/authenticate',
5998
+ proxyServiceExecute: '/execute?debug=success',
5999
+ proxyServiceAttachment: '/attachments/',
6000
+ proxyServiceForms: '/forms/',
6001
+ proxyServiceLanguageURLPart: '',
6002
+ formConfigAproval: 'eyJpbmJveFVyaSI6IlwvZ3JvdXBcL2ktZ2F0ZVwvZS1zZXJ2aWNlc1wvYWR2YW5jZWQtaW5ib3giLCJmb3JtSWQiOiJuZXdfYXByb3ZhbCIsImZvcm1QcmVmaXgiOiJTQ1IiLCJsYW5ndWFnZSI6ImVuIn0=',
6003
+ formConfigNew: 'eyJpbmJveFVyaSI6IlwvZ3JvdXBcL2ktZ2F0ZVwvZS1zZXJ2aWNlc1wvYWR2YW5jZWQtaW5ib3giLCJmb3JtUHJlZml4IjoiQ09FIiwibGFuZ3VhZ2UiOiJlbiJ9',
6004
+ formConfigNewAr: 'eyJpbmJveFVyaSI6IlwvZ3JvdXBcL2ktZ2F0ZVwvZS1zZXJ2aWNlc1wvYWR2YW5jZWQtaW5ib3giLCJmb3JtUHJlZml4IjoiSFNUIiwibGFuZ3VhZ2UiOiJhciJ9',
6005
+ formConfigSubmit: 'eyJpbmJveFVyaSI6IlwvZ3JvdXBcL2ktZ2F0ZVwvZS1zZXJ2aWNlc1wvYWR2YW5jZWQtaW5ib3giLCJmb3JtSWQiOiJuZXdfc3VibWl0IiwiaXNNb2JpbGUiOnRydWUsImZvcm1QcmVmaXgiOiJTQ1IiLCJsYW5ndWFnZSI6ImVuIn0=',
6006
+ formConfigSubmitAr: 'eyJpbmJveFVyaSI6IlwvZ3JvdXBcL2ktZ2F0ZVwvZS1zZXJ2aWNlc1wvYWR2YW5jZWQtaW5ib3giLCJmb3JtSWQiOiJuZXdfc3VibWl0IiwiZm9ybVByZWZpeCI6IlNDUiIsImxhbmd1YWdlIjoiYXIifQ=='
6007
+ };
6008
+
6009
+ class LayoutComponent {
6010
+ document;
6011
+ router;
6012
+ sidenavService;
6013
+ sidenav;
6014
+ sideContent;
6015
+ sidenavSubscription;
5253
6016
  form;
5254
- constructor(i18n) {
5255
- this.i18n = i18n;
6017
+ formTitle;
6018
+ isLoading = false;
6019
+ serviceBrief = [];
6020
+ constructor(document, router, sidenavService) {
6021
+ this.document = document;
6022
+ this.router = router;
6023
+ this.sidenavService = sidenavService;
5256
6024
  }
5257
- get isExpanded() {
5258
- return this.section?.body?.details?.expandStage === 'true';
6025
+ ngOnInit() {
6026
+ this.sidenavSubscription = this.sidenavService.subject.subscribe((value) => {
6027
+ this.sideContent = value.componentName;
6028
+ this.sidenav.mode = value.mode;
6029
+ this.sidenav.position = value.position;
6030
+ if (value.eventName === "open") {
6031
+ this.openSideNav();
6032
+ }
6033
+ else {
6034
+ this.closeSideNav();
6035
+ }
6036
+ });
5259
6037
  }
5260
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, deps: [{ token: CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
5261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MainRequestDetailsComponent, isStandalone: true, selector: "app-main-request-details", inputs: { section: "section", lov: "lov", form: "form" }, ngImport: i0, template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6038
+ ngOnDestroy() {
6039
+ if (this.sidenavSubscription) {
6040
+ this.sidenavSubscription.unsubscribe();
6041
+ }
6042
+ }
6043
+ onClose() {
6044
+ this.document.body.classList.remove("NoScroll");
6045
+ this.document.documentElement.classList.remove("NoScroll");
6046
+ }
6047
+ backdropClick() {
6048
+ this.sidenav.close().then(r => { });
6049
+ this.sidenavService.closeSidenav();
6050
+ this.document.body.classList.remove("NoScroll");
6051
+ this.document.documentElement.classList.remove("NoScroll");
6052
+ }
6053
+ openSideNav() {
6054
+ this.sidenav.open().then(r => { });
6055
+ this.document.body.classList.add("NoScroll");
6056
+ this.document.documentElement.classList.add("NoScroll");
6057
+ }
6058
+ closeSideNav() {
6059
+ this.sidenav.close().then(r => { });
6060
+ }
6061
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LayoutComponent, deps: [{ token: DOCUMENT }, { token: i1$1.Router }, { token: SidenavService }], target: i0.ɵɵFactoryTarget.Component });
6062
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: LayoutComponent, isStandalone: true, selector: "core-layout", inputs: { form: "form", formTitle: "formTitle", isLoading: "isLoading", serviceBrief: "serviceBrief" }, providers: [
6063
+ CoreService,
6064
+ {
6065
+ provide: MY_LIB_CONFIG_TOKEN,
6066
+ useValue: environment
6067
+ }
6068
+ ], viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true, static: true }], ngImport: i0, template: "<app-header></app-header>\r\n<section class=\"d-flex\">\r\n <app-side-nav></app-side-nav>\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n <app-side-nav></app-side-nav>\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"form?.header?.status?.key == 'NEW' ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n", styles: [":host ::ng-deep .mat-drawer-container{overflow:visible;margin-top:var(--main-toolbar-height);min-height:calc(100vh - var(--main-toolbar-height));background-color:var(--body-bg)!important;z-index:initial!important;min-width:calc(100% - var(--main-aside-width));width:calc(100% - var(--main-aside-width))}:host ::ng-deep .mat-drawer-container .mat-drawer-content{display:flex;flex-direction:column;overflow:visible}.hup-wrapper :host ::ng-deep .mat-drawer-container .mat-drawer-content{min-height:auto}:host ::ng-deep footer{bottom:-65px}.mat-drawer{border-radius:10px!important;margin:1rem;box-shadow:0 8px 16px 7px rgba(var(--rgb-black),.06);background-color:var(--white)}@media (max-width: 767px){.mat-drawer{padding:0;border-radius:0;margin:0;width:100%}}.customize-btn{min-width:166px}.zer-pt{padding-top:0!important}\n"], dependencies: [{ kind: "component", type: HeaderComponent, selector: "app-header" }, { kind: "component", type: SideNavComponent, selector: "app-side-nav", inputs: ["isOpened"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i3$1.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3$1.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3$1.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
5262
6069
  }
5263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainRequestDetailsComponent, decorators: [{
6070
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LayoutComponent, decorators: [{
5264
6071
  type: Component,
5265
- args: [{ selector: 'app-main-request-details', standalone: true, schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
5266
- MatAccordion,
5267
- MatExpansionPanel,
5268
- NgIf
5269
- ], template: "<mat-accordion class=\"primary-accordion main-request-accordion border-top\">\r\n <mat-expansion-panel [expanded]=\"isExpanded || (form?.sections?.length === 1 )\" class=\"mb-3\" hideToggle #requestPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n <h2 class=\"fs-16 fw-medium fc-coral m-0 flex-grow-1\">{{ i18n.translate('requestDetailsTitle') }}</h2>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"!requestPanel.expanded\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\"></ds-icon>\r\n </div>\r\n <div class=\"d-inline-flex align-items-center gap-2\" *ngIf=\"requestPanel.expanded\">\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\"></ds-icon>\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"default-box box-shadow p-4\">\r\n <ng-content></ng-content>\r\n </section>\r\n </mat-expansion-panel>\r\n</mat-accordion>\r\n", styles: [".main-request-accordion{--accordion-height: 65px;--accordion-radius: 0 0 4px 4px;--accordion-shadow: 0 7px 10px rgba(var(--rgb-black), 3%);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--gray);--panel-padding: 0 1.5rem;--panel-body-padding: 0 0 1.5rem;position:relative;z-index:1}@media (max-width: 576px){.main-request-accordion{--accordion-height: 55px;--panel-padding: 0 1rem;--panel-body-padding: 0 1rem 1rem}}.main-request-accordion .inner-accordion{--accordion-height: 44px;--accordion-bc: var(--light-gray);--accordion-bc-active: var(--white);--accordion-border: 1px solid var(--light-gray);--accordion-border-active: 1px solid var(--light-gray);--panel-body-padding: 0;--accordion-shadow: none;--panel-padding: 0 1.5rem}\n"] }]
5270
- }], ctorParameters: () => [{ type: CoreI18nService }], propDecorators: { section: [{
6072
+ args: [{ selector: "core-layout", standalone: true, imports: [HeaderComponent, SideNavComponent, MatSidenavModule, RouterOutlet, NgComponentOutlet, WorkflowSectionComponent, ServiceHeaderComponent, NgClass, NgIf], providers: [
6073
+ CoreService,
6074
+ {
6075
+ provide: MY_LIB_CONFIG_TOKEN,
6076
+ useValue: environment
6077
+ }
6078
+ ], template: "<app-header></app-header>\r\n<section class=\"d-flex\">\r\n <app-side-nav></app-side-nav>\r\n <mat-sidenav-container\r\n class=\"flex-grow-1\"\r\n [hasBackdrop]=\"true\"\r\n (backdropClick)=\"backdropClick()\"\r\n >\r\n <mat-sidenav\r\n #sidenav\r\n autoFocus=\"false\"\r\n fixedInViewport\r\n [position]=\"'end'\"\r\n (closedStart)=\"onClose()\"\r\n >\r\n <ng-container *ngComponentOutlet=\"sideContent\">\r\n <app-side-nav></app-side-nav>\r\n </ng-container>\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <main\r\n class=\"hadPadding service-wrapper\"\r\n [ngClass]=\"form?.header?.status?.key == 'NEW' ? 'hub-container-mini' : 'hub-container'\">\r\n\r\n <ng-content ></ng-content>\r\n <ng-content select=\"[workflow]\"></ng-content>\r\n\r\n </main>\r\n </mat-sidenav-content>\r\n </mat-sidenav-container>\r\n</section>\r\n", styles: [":host ::ng-deep .mat-drawer-container{overflow:visible;margin-top:var(--main-toolbar-height);min-height:calc(100vh - var(--main-toolbar-height));background-color:var(--body-bg)!important;z-index:initial!important;min-width:calc(100% - var(--main-aside-width));width:calc(100% - var(--main-aside-width))}:host ::ng-deep .mat-drawer-container .mat-drawer-content{display:flex;flex-direction:column;overflow:visible}.hup-wrapper :host ::ng-deep .mat-drawer-container .mat-drawer-content{min-height:auto}:host ::ng-deep footer{bottom:-65px}.mat-drawer{border-radius:10px!important;margin:1rem;box-shadow:0 8px 16px 7px rgba(var(--rgb-black),.06);background-color:var(--white)}@media (max-width: 767px){.mat-drawer{padding:0;border-radius:0;margin:0;width:100%}}.customize-btn{min-width:166px}.zer-pt{padding-top:0!important}\n"] }]
6079
+ }], ctorParameters: () => [{ type: Document, decorators: [{
6080
+ type: Inject,
6081
+ args: [DOCUMENT]
6082
+ }] }, { type: i1$1.Router }, { type: SidenavService }], propDecorators: { sidenav: [{
6083
+ type: ViewChild,
6084
+ args: ["sidenav", { static: true }]
6085
+ }], form: [{
5271
6086
  type: Input
5272
- }], lov: [{
6087
+ }], formTitle: [{
5273
6088
  type: Input
5274
- }], form: [{
6089
+ }], isLoading: [{
6090
+ type: Input
6091
+ }], serviceBrief: [{
5275
6092
  type: Input
5276
6093
  }] } });
5277
6094
 
5278
- class WorkflowSectionComponent {
5279
- i18n;
5280
- cdRef;
5281
- formStateObject;
5282
- sectionSubmitted = new EventEmitter();
5283
- sections;
5284
- isReadOnly;
5285
- isLoading;
5286
- form;
5287
- contentClass = 'default-box box-shadow p-4';
5288
- startedListener = false;
5289
- sectionsController;
5290
- showButtonMenu = false;
5291
- segmentDynamicLoaderService = null;
5292
- sectionFormComponent = null;
5293
- sectionName = SECTION_ID_REQUEST_DETAILS;
5294
- constructor(i18n, cdRef) {
5295
- this.i18n = i18n;
5296
- this.cdRef = cdRef;
5297
- /* _listenerService.listen().subscribe((result: any) => {
5298
- if (result?.function == 'resetForm') {
5299
- this.resetForm();
5300
- } else if (result?.function == 'onSubmit') {
5301
- const sectionSize = this.sections.length - 1;
5302
- const section = this.sections[sectionSize];
5303
- const data = result.data ? result.data : section;
5304
- this.onSubmit(result?.action, data);
5305
- }
5306
- });*/
5307
- }
5308
- ngAfterViewChecked() {
5309
- this.cdRef.detectChanges();
5310
- if (this.formStateObject && this.form && !this.startedListener) {
5311
- this.formStateObject.valueChanges.subscribe(
5312
- /* istanbul ignore next */
5313
- (form) => {
5314
- Object.keys(form).forEach((key) => {
5315
- if (this.sections[this.sections.length - 1].body.details[key] !==
5316
- form[key] &&
5317
- form[key] !== undefined)
5318
- this.sections[this.sections.length - 1].body.details[key] =
5319
- form[key];
5320
- });
5321
- });
5322
- this.sectionsController = this.formStateObject.controls;
5323
- this.startedListener = true;
5324
- }
5325
- this.checkButtons();
6095
+ var loadFormHooks = {
6096
+ beforeTranspilePayload(payload) {
6097
+ const hookResult = payload;
6098
+ // Here should be the code to manipulate the payload before the transpile stage
6099
+ return hookResult;
6100
+ },
6101
+ afterTranspilePayload(form) {
6102
+ const hookResult = form;
6103
+ // Here should be the code to manipulate the form object after the transpile stage
6104
+ return hookResult;
5326
6105
  }
5327
- /* isSubmitting = {};
5328
- disableButtons = false;*/
5329
- /* onSubmit(action: any, section: any) {
5330
- const sectionSize = this.sections.length - 1;
5331
- let sectionDecision = this.sections[sectionSize].body.details.decision;
5332
- if (sectionDecision && action === 'SUBMIT') {
5333
- sectionDecision = { key: action };
6106
+ };
6107
+
6108
+ class StatusComponent {
6109
+ form;
6110
+ statusClass(status) {
6111
+ if (status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED) {
6112
+ return {
6113
+ status: true,
6114
+ danger: status === FORM_STATUS_REJECTED || status === FORM_STATUS_CANCELLED
6115
+ };
5334
6116
  }
5335
- if (sectionDecision && action !== 'SUBMIT') {
5336
- sectionDecision = { key: action };
6117
+ else if (status === FORM_STATUS_PENDING) {
6118
+ return {
6119
+ status: true,
6120
+ warning: status === FORM_STATUS_PENDING
6121
+ };
5337
6122
  }
5338
- this.sections[sectionSize].body.details.decision = sectionDecision;
5339
- this.profileRequesterService.isSubmitting[action] = true;
5340
- this.profileRequesterService.disableButtons = true;
5341
- this.stateMachineService
5342
- .dispatch(
5343
- constants.STATE_MACHINE_ACTION_SUBMIT_FORM,
5344
- section,
5345
- action
5346
- )
5347
- .then((form: any) => {
5348
- this.profileRequesterService.isSubmitting[action] = true;
5349
- this.profileRequesterService.disableButtons = true;
5350
- const obj = {
5351
- form: form,
5352
- action: action
6123
+ else {
6124
+ return {
6125
+ status: true,
6126
+ success: status === FORM_STATUS_COMPLETED || FORM_STATUS_APPROVED
5353
6127
  };
5354
- this.sectionSubmitted.emit(obj);
5355
- });
5356
- }*/
5357
- /* resetForm() {
5358
- this.formStateObject.reset();
5359
- this.resetPropagator.propagate();
5360
- }*/
5361
- get isExpandableFromBackend() {
5362
- return this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
5363
- }
5364
- buttonTypes(type) {
5365
- switch (type) {
5366
- case 'APPROVE':
5367
- return '';
5368
- case 'SENDBACK':
5369
- return 'red';
5370
- case 'REJECT':
5371
- return 'red';
5372
- default:
5373
- return '';
5374
6128
  }
5375
6129
  }
5376
- checkButtons() {
5377
- const options = this.form?.lovs?.decision?.options;
5378
- if (!Array.isArray(options))
5379
- return;
5380
- options.forEach((item) => {
5381
- if (item?.value != 'APPROVE' &&
5382
- item?.value != 'REJECT' &&
5383
- item?.value != 'SENDBACK' &&
5384
- item?.value != 'SUBMIT' &&
5385
- item?.value != 'CANCEL') {
5386
- this.showButtonMenu = true;
5387
- }
5388
- });
5389
- }
5390
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, deps: [{ token: CoreI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
5391
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
6130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: StatusComponent, isStandalone: true, selector: "app-status", inputs: { form: "form" }, ngImport: i0, template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
5392
6132
  }
5393
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, decorators: [{
6133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StatusComponent, decorators: [{
5394
6134
  type: Component,
5395
- args: [{ selector: 'app-workflow-section', schemas: [CUSTOM_ELEMENTS_SCHEMA], imports: [
5396
- NgClass,
5397
- MatAccordion,
5398
- NgTemplateOutlet,
5399
- NgIf,
5400
- FormSectionComponent,
5401
- MainRequestDetailsComponent,
5402
- NgForOf,
5403
- FormsModule
5404
- ], standalone: true, template: "<!--\r\n<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-form-section\r\n *ngIf=\"sections[1]?.body?.details?.stage0?.isStage0 === 'true'\"\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=\"sections[1]\"\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"sections[1]?.header?.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\"\r\n >\r\n </app-form-section>\r\n\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1 && !(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX'))\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n\r\n\r\n <header *ngIf=\"(form?.header?.formId?.includes('MEO') || form?.header?.formId?.includes('MEX')) && sections.length > 1\" class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\">\r\n <ds-avatar *ngIf=\"!isLoading\" image={{form?.header?.requesterPhoto}} size=\"xx-small\"\r\n class=\"d-inline-flex cursor-pointer\" ></ds-avatar>\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.header?.requesterName}}</span>\r\n\r\n <span class=\"fs-12 d-sm-block cursor-pointer\"\r\n [ngClass]=\"{'loading-bg loading-width': isLoading}\">{{form?.sections?.[0].body?.details?.gceoComment}}</span>\r\n\r\n </header>\r\n\r\n <mat-accordion class=\"primary-accordion main-approval\" [multi]=\"isExpandableFromBackend\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0 && (!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.['key'] === 'NEW' \" class=\"{{contentClass}}\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n-->\r\n<script src=\"../index.ts\"></script>\r\n<form #f=\"ngForm\">\r\n\r\n <div\r\n *ngIf=\"form?.header?.status?.['key'] != 'NEW' \" class=\"mt-3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n\r\n\r\n <app-main-request-details [section]=\"sections[0]\"></app-main-request-details>\r\n\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\"> {{ i18n.translate('Approvals') }}</header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <!-- <app-form-section\r\n class=\"app-form-section\"\r\n [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\"\r\n [section]=section\r\n [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\"\r\n [form]=\"form\"\r\n [controllers]=\"sectionsController\">\r\n </app-form-section>-->\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n</form>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"] }]
5405
- }], ctorParameters: () => [{ type: CoreI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formStateObject: [{
5406
- type: ViewChild,
5407
- args: ['f']
5408
- }], sectionSubmitted: [{
5409
- type: Output
5410
- }], sections: [{
5411
- type: Input
5412
- }], isReadOnly: [{
5413
- type: Input
5414
- }], isLoading: [{
5415
- type: Input
5416
- }], form: [{
5417
- type: Input
5418
- }], contentClass: [{
5419
- type: Input
5420
- }], sectionsController: [{
5421
- type: Input
5422
- }], segmentDynamicLoaderService: [{
5423
- type: Input
5424
- }], sectionFormComponent: [{
5425
- type: Input
5426
- }], sectionName: [{
6135
+ args: [{ selector: 'app-status', schemas: [CUSTOM_ELEMENTS_SCHEMA], standalone: true, imports: [
6136
+ NgClass
6137
+ ], template: "<div [ngClass]=\"statusClass(form.header.status?.['key'])\">{{form.header.status?.['value']}}</div>\r\n", styles: ["@media only screen and (max-width: 767px){.status{display:none}.mobileStatus{display:block}}.status{font-size:14px;padding:5px 10px;border-radius:5px;color:#fff;margin-left:15px;float:right;margin-top:13px;cursor:default}.danger{background-color:#f44336}.success{background-color:#5cb85c}.warning{background-color:#ffc5191f!important;color:#ffc519!important;font-weight:500!important}.info{background-color:#1691f9}\n"] }]
6138
+ }], propDecorators: { form: [{
5427
6139
  type: Input
5428
6140
  }] } });
5429
6141
 
@@ -5489,6 +6201,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
5489
6201
  type: Output
5490
6202
  }] } });
5491
6203
 
6204
+ class AppComponent {
6205
+ document;
6206
+ router;
6207
+ sidenavService;
6208
+ coreService;
6209
+ loading = {
6210
+ form: false
6211
+ };
6212
+ form;
6213
+ formTitle = 'Test';
6214
+ constructor(document, router, sidenavService, coreService) {
6215
+ this.document = document;
6216
+ this.router = router;
6217
+ this.sidenavService = sidenavService;
6218
+ this.coreService = coreService;
6219
+ this.loading['form'] = true;
6220
+ this.coreService.loadForm().then((form) => {
6221
+ this.loading['form'] = false;
6222
+ if (form instanceof Form) {
6223
+ this.form = form;
6224
+ }
6225
+ else if (form instanceof Messages) {
6226
+ this.errorResponse(form);
6227
+ }
6228
+ });
6229
+ }
6230
+ errorResponse(form) {
6231
+ if (!this.form) {
6232
+ this.form = new Form(NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, NO_VALUE, form);
6233
+ }
6234
+ else {
6235
+ this.form.messages = form;
6236
+ this.form = loadFormHooks.afterTranspilePayload(this.form);
6237
+ }
6238
+ window.scrollTo(0, 0);
6239
+ }
6240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AppComponent, deps: [{ token: DOCUMENT }, { token: i1$1.Router }, { token: SidenavService }, { token: CoreService }], target: i0.ɵɵFactoryTarget.Component });
6241
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: AppComponent, isStandalone: true, selector: "lib-app", ngImport: i0, template: "<core-layout>\r\n @if (!loading['form']) {\r\n <core-service-header\r\n [isLoading]=\"false\"\r\n [formTitle]=\"formTitle\"\r\n [form]=\"form\">\r\n </core-service-header>\r\n <app-workflow-section\r\n workflow\r\n [form]=\"form\"\r\n [sections]=\"form?.sections\">\r\n </app-workflow-section>\r\n } @else {\r\n <core-service-header header [formTitle]=\"formTitle\" [isLoading]=\"true\">\r\n </core-service-header>\r\n }\r\n</core-layout>\r\n", styles: [""], dependencies: [{ kind: "component", type: LayoutComponent, selector: "core-layout", inputs: ["form", "formTitle", "isLoading", "serviceBrief"] }, { kind: "component", type: ServiceHeaderComponent, selector: "core-service-header", inputs: ["form", "showHistory", "isLoading", "showApprovalHistory", "approvalHistory", "creationDate", "formTitle", "section", "serviceBrief"] }, { kind: "component", type: WorkflowSectionComponent, selector: "app-workflow-section", inputs: ["sections", "isReadOnly", "isLoading", "form", "contentClass", "sectionsController", "segmentDynamicLoaderService", "sectionFormComponent", "sectionName"], outputs: ["sectionSubmitted"] }] });
6242
+ }
6243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AppComponent, decorators: [{
6244
+ type: Component,
6245
+ args: [{ selector: 'lib-app', standalone: true, imports: [
6246
+ LayoutComponent,
6247
+ ServiceHeaderComponent,
6248
+ WorkflowSectionComponent
6249
+ ], template: "<core-layout>\r\n @if (!loading['form']) {\r\n <core-service-header\r\n [isLoading]=\"false\"\r\n [formTitle]=\"formTitle\"\r\n [form]=\"form\">\r\n </core-service-header>\r\n <app-workflow-section\r\n workflow\r\n [form]=\"form\"\r\n [sections]=\"form?.sections\">\r\n </app-workflow-section>\r\n } @else {\r\n <core-service-header header [formTitle]=\"formTitle\" [isLoading]=\"true\">\r\n </core-service-header>\r\n }\r\n</core-layout>\r\n" }]
6250
+ }], ctorParameters: () => [{ type: Document, decorators: [{
6251
+ type: Inject,
6252
+ args: [DOCUMENT]
6253
+ }] }, { type: i1$1.Router }, { type: SidenavService }, { type: CoreService }] });
6254
+
5492
6255
  function encodePassword(formId, password) {
5493
6256
  const formIdString = Array.from(new TextEncoder().encode(formId), (x) => String.fromCodePoint(x)).join('');
5494
6257
  let encodedFormId = btoa(formIdString);
@@ -5646,19 +6409,6 @@ class BuiltInCustomValidators {
5646
6409
  }
5647
6410
  }
5648
6411
 
5649
- var loadForm = {
5650
- beforeTranspilePayload(payload) {
5651
- const hookResult = payload;
5652
- // Here should be the code to manipulate the payload before the transpile stage
5653
- return hookResult;
5654
- },
5655
- afterTranspilePayload(form) {
5656
- const hookResult = form;
5657
- // Here should be the code to manipulate the form object after the transpile stage
5658
- return hookResult;
5659
- }
5660
- };
5661
-
5662
6412
  var saveForm = {
5663
6413
  beforeTranspileSection(section) {
5664
6414
  const hookResult = section;
@@ -6001,5 +6751,5 @@ const MY_LIB_CONFIG_TOKEN = new InjectionToken('MyLibConfig');
6001
6751
  * Generated bundle index. Do not edit.
6002
6752
  */
6003
6753
 
6004
- export { ArOnlyDirective, AttachmentSectionComponent, AttachmentSectionDataComponent, BaseComponent, BuiltInCustomValidators, COMMENT_CONTAINER, CheckBoxComponent, CommentSectionComponent, CommentsDrop, ConfirmDialogComponent, ConfirmationPopupComponent, CustomSearchableComponent, DATE_DASH, DATE_SLASH, DATE_TIME, DONT_SHOW, DatePickerComponent, DateRangePickerComponent, DeleteDialogComponent, DeletePopupComponent, DocsUploaderComponent, EnOnlyDirective, FALSE_BOOL, FALSE_STRING, FEEDBACK_CONTAINER, FEEDBACK_STATUS_REQUEST, FEEDBACK_STATUS_RESPOND, FEEDBACK_STATUS_RESPONDED, FEEDBACK_STATUS_WAITING, FORM_STATUS_APPROVED, FORM_STATUS_CANCELLED, FORM_STATUS_COMPLETED, FORM_STATUS_NEW, FORM_STATUS_PENDING, FORM_STATUS_REJECTED, FORM_STATUS_SEND_BACK, FeedbackSectionComponent, Form, FormLabelComponent, FormSectionComponent, FormValidation, FormatAsPasswordPipe, FormatTimePipe, GETSIPORTENTRYGROUPS, GETSIPORTENTRYLOCATIONS, HAS_COMMENTS, HEADER_CONTENT_TYPE_FORM, HTTP_METHOD_GET, HTTP_METHOD_POST, HTTP_METHOD_PUT, HTTP_PROTOCOL_HTTP, HTTP_PROTOCOL_HTTPS, Header, IGATE_STATIC_ASSET_PROFILE_PHOTO_URL, INBOX_STATUS_PENDING, INBOX_STATUS_PROCESSED, INBOX_STATUS_SENT, InboxItem, InfoItemComponent, InputComponent, InputCurrencyComponent, InputEmailComponent, InputMaskComponent, InputNumberComponent, InputTelephoneComponent, LANGUAGE_CODE_AR, LANGUAGE_CODE_EN, LOGOUT_URL, MY_LIB_CONFIG_TOKEN, MainRequestDetailsComponent, Messages, MycurrencyDirective, MycurrencyPipe, NO_COMMENTS, NO_VALUE, PROCESS_NAME_CODE, PROFILE_CONTAINER, ProfileInfoDrop, ProfileSectionComponent, READ_ONLY, REPORT, ROLE_REQUESTER, RadioComponent, RepeatedListComponent, SECTION_ID_APPROVAL_PARTIAL_NAME, SECTION_ID_DM_PARTIAL_ROLE, SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE, SECTION_ID_EXECUTE_PARTIAL_ROLE, SECTION_ID_GM_PARTIAL_ROLE, SECTION_ID_NOTHING_PARTIAL_NAME, SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE, SECTION_ID_PERFORM_PARTIAL_ROLE, SECTION_ID_REQUESTER_PARTIAL_NAME, SECTION_ID_REQUEST_DETAILS, SECTION_ID_SM_PARTIAL_ROLE, SECTION_ID_SVP_PARTIAL_ROLE, SECTION_ID_VP_PARTIAL_ROLE, SECTION_STATUS_APPROVED, SECTION_STATUS_PENDING, SECTION_STATUS_UNSATISFIED, SERVICE_NAME_CEP, SERVICE_NAME_DP_CREATE_FEEDBACK, SERVICE_NAME_DP_INBOX_ITEM, SERVICE_NAME_DP_LOAD_HISTORY, SERVICE_NAME_DP_SEARCH_EMPLOYEE, SERVICE_NAME_DP_UPDATE_FEEDBACK, SERVICE_NAME_DP_UPDATE_INBOX_ITEM, SERVICE_NAME_MAF, SERVICE_NAME_WM_CHILD_FORM, SERVICE_NAME_WM_DRAFT_FORM, SERVICE_NAME_WM_FORM, SERVICE_NAME_WM_GET_APPROVED_REQUEST, SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST, SERVICE_NAME_WM_HTML_GENERATOR, STATE_MACHINE_ACTION_CALC, STATE_MACHINE_ACTION_COMMONAPI, STATE_MACHINE_ACTION_CONVERT, STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, STATE_MACHINE_ACTION_FAILURE, STATE_MACHINE_ACTION_GET_APPROVED_REQUEST, STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE, STATE_MACHINE_ACTION_GET_FEEDBACK, STATE_MACHINE_ACTION_GET_INBOX_ITEM, STATE_MACHINE_ACTION_HANDLE_ERROR, STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE, STATE_MACHINE_ACTION_LOAD_FILE, STATE_MACHINE_ACTION_LOAD_FORM, STATE_MACHINE_ACTION_LOAD_HISTORY, STATE_MACHINE_ACTION_PDF, STATE_MACHINE_ACTION_PPROVED_REQUESTS, STATE_MACHINE_ACTION_PROJECT_CEP, STATE_MACHINE_ACTION_PROJECT_MAF, STATE_MACHINE_ACTION_SEARCH, STATE_MACHINE_ACTION_SEARCH_EMPLOYEE, STATE_MACHINE_ACTION_SET_FLAG, STATE_MACHINE_ACTION_SHOW_PRINT, STATE_MACHINE_ACTION_SUBMIT_FEEDBACK, STATE_MACHINE_ACTION_SUBMIT_FORM, STATE_MACHINE_ACTION_SUCCESS, STATE_MACHINE_ACTION_SUCCESS_HISTORY, STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM, STATE_MACHINE_ACTION_SUCCESS_PRINT, STATE_MACHINE_ACTION_SUCCESS_RESPONSE, STATE_MACHINE_ACTION_SUCCESS_SERVICES, STATE_MACHINE_ACTION_SUCCESS_USERS, STATE_MACHINE_ACTION_SUCCESS_WM, STATE_MACHINE_ACTION_UPDATE_FEEDBACK, STATE_MACHINE_ACTION_USER_CEP, STATE_MACHINE_ACTION_USER_MAF, STATE_MACHINE_STATUS_ERROR, STATE_MACHINE_STATUS_FETCHING, STATE_MACHINE_STATUS_IDLE, STATE_MACHINE_STATUS_RESULT, STATE_MACHINE_STATUS_SENDING, STATE_NAME_DP_GET_FEEDBACK, SearchEmployeeComponent, Section, SectionHeader, SelectComponent, ServiceHeaderComponent, SpecialCharacterDirective, StatusComponent, SubmitDialogComponent, TARGET_SERVER_DP, TARGET_SERVER_WM, TRUE_BOOL, TRUE_STRING, TableListComponent, TermsConditionsComponent, TextDirective, TextareaComponent, TitleSectionComponent, ToggleButtonComponent, URL_SEPARATOR, WM_ACTION_SAVE, WM_ACTION_SAVE_CHANGES, WM_ACTION_SUBMIT, WRITE_MODE, WorkflowSectionComponent, dataURItoBlob, encodePassword, handelErrorResponse, isValidData, stringToBooleanPipe, validateSAID };
6754
+ export { AppComponent, ArOnlyDirective, AttachmentSectionComponent, AttachmentSectionDataComponent, BaseComponent, BuiltInCustomValidators, COMMENT_CONTAINER, CheckBoxComponent, CommentSectionComponent, CommentsDrop, ConfirmDialogComponent, ConfirmationPopupComponent, CustomSearchableComponent, DATE_DASH, DATE_SLASH, DATE_TIME, DONT_SHOW, DatePickerComponent, DateRangePickerComponent, DeleteDialogComponent, DeletePopupComponent, DocsUploaderComponent, EnOnlyDirective, FALSE_BOOL, FALSE_STRING, FEEDBACK_CONTAINER, FEEDBACK_STATUS_REQUEST, FEEDBACK_STATUS_RESPOND, FEEDBACK_STATUS_RESPONDED, FEEDBACK_STATUS_WAITING, FORM_STATUS_APPROVED, FORM_STATUS_CANCELLED, FORM_STATUS_COMPLETED, FORM_STATUS_NEW, FORM_STATUS_PENDING, FORM_STATUS_REJECTED, FORM_STATUS_SEND_BACK, FeedbackSectionComponent, Form, FormLabelComponent, FormSectionComponent, FormValidation, FormatAsPasswordPipe, FormatTimePipe, GETSIPORTENTRYGROUPS, GETSIPORTENTRYLOCATIONS, HAS_COMMENTS, HEADER_CONTENT_TYPE_FORM, HTTP_METHOD_GET, HTTP_METHOD_POST, HTTP_METHOD_PUT, HTTP_PROTOCOL_HTTP, HTTP_PROTOCOL_HTTPS, Header, IGATE_STATIC_ASSET_PROFILE_PHOTO_URL, INBOX_STATUS_PENDING, INBOX_STATUS_PROCESSED, INBOX_STATUS_SENT, InboxItem, InfoItemComponent, InputComponent, InputCurrencyComponent, InputEmailComponent, InputMaskComponent, InputNumberComponent, InputTelephoneComponent, LANGUAGE_CODE_AR, LANGUAGE_CODE_EN, LOGOUT_URL, LayoutComponent, MY_LIB_CONFIG_TOKEN, MainRequestDetailsComponent, Messages, MycurrencyDirective, MycurrencyPipe, NO_COMMENTS, NO_VALUE, PROCESS_NAME_CODE, PROFILE_CONTAINER, ProfileInfoDrop, ProfileSectionComponent, READ_ONLY, REPORT, ROLE_REQUESTER, RadioComponent, RepeatedListComponent, SECTION_ID_APPROVAL_PARTIAL_NAME, SECTION_ID_DM_PARTIAL_ROLE, SECTION_ID_EMP_INFO_APPROVAL_PARTIAL_ROLE, SECTION_ID_EXECUTE_PARTIAL_ROLE, SECTION_ID_GM_PARTIAL_ROLE, SECTION_ID_NOTHING_PARTIAL_NAME, SECTION_ID_PAYROLL_APPROVAL_PARTIAL_ROLE, SECTION_ID_PERFORM_PARTIAL_ROLE, SECTION_ID_REQUESTER_PARTIAL_NAME, SECTION_ID_REQUEST_DETAILS, SECTION_ID_SM_PARTIAL_ROLE, SECTION_ID_SVP_PARTIAL_ROLE, SECTION_ID_VP_PARTIAL_ROLE, SECTION_STATUS_APPROVED, SECTION_STATUS_PENDING, SECTION_STATUS_UNSATISFIED, SERVICE_NAME_CEP, SERVICE_NAME_DP_CREATE_FEEDBACK, SERVICE_NAME_DP_INBOX_ITEM, SERVICE_NAME_DP_LOAD_HISTORY, SERVICE_NAME_DP_SEARCH_EMPLOYEE, SERVICE_NAME_DP_UPDATE_FEEDBACK, SERVICE_NAME_DP_UPDATE_INBOX_ITEM, SERVICE_NAME_MAF, SERVICE_NAME_WM_CHILD_FORM, SERVICE_NAME_WM_DRAFT_FORM, SERVICE_NAME_WM_FORM, SERVICE_NAME_WM_GET_APPROVED_REQUEST, SERVICE_NAME_WM_GET_MY_APPROVED_REQUEST, SERVICE_NAME_WM_HTML_GENERATOR, STATE_MACHINE_ACTION_CALC, STATE_MACHINE_ACTION_COMMONAPI, STATE_MACHINE_ACTION_CONVERT, STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, STATE_MACHINE_ACTION_FAILURE, STATE_MACHINE_ACTION_GET_APPROVED_REQUEST, STATE_MACHINE_ACTION_GET_APPROVED_REQUEST_RESPONSE, STATE_MACHINE_ACTION_GET_FEEDBACK, STATE_MACHINE_ACTION_GET_INBOX_ITEM, STATE_MACHINE_ACTION_HANDLE_ERROR, STATE_MACHINE_ACTION_INBOX_ITEM_RESPONSE, STATE_MACHINE_ACTION_LOAD_FILE, STATE_MACHINE_ACTION_LOAD_FORM, STATE_MACHINE_ACTION_LOAD_HISTORY, STATE_MACHINE_ACTION_PDF, STATE_MACHINE_ACTION_PPROVED_REQUESTS, STATE_MACHINE_ACTION_PROJECT_CEP, STATE_MACHINE_ACTION_PROJECT_MAF, STATE_MACHINE_ACTION_SEARCH, STATE_MACHINE_ACTION_SEARCH_EMPLOYEE, STATE_MACHINE_ACTION_SET_FLAG, STATE_MACHINE_ACTION_SHOW_PRINT, STATE_MACHINE_ACTION_SUBMIT_FEEDBACK, STATE_MACHINE_ACTION_SUBMIT_FORM, STATE_MACHINE_ACTION_SUCCESS, STATE_MACHINE_ACTION_SUCCESS_HISTORY, STATE_MACHINE_ACTION_SUCCESS_INBOX_ITEM, STATE_MACHINE_ACTION_SUCCESS_PRINT, STATE_MACHINE_ACTION_SUCCESS_RESPONSE, STATE_MACHINE_ACTION_SUCCESS_SERVICES, STATE_MACHINE_ACTION_SUCCESS_USERS, STATE_MACHINE_ACTION_SUCCESS_WM, STATE_MACHINE_ACTION_UPDATE_FEEDBACK, STATE_MACHINE_ACTION_USER_CEP, STATE_MACHINE_ACTION_USER_MAF, STATE_MACHINE_STATUS_ERROR, STATE_MACHINE_STATUS_FETCHING, STATE_MACHINE_STATUS_IDLE, STATE_MACHINE_STATUS_RESULT, STATE_MACHINE_STATUS_SENDING, STATE_NAME_DP_GET_FEEDBACK, SearchEmployeeComponent, Section, SectionHeader, SelectComponent, ServiceHeaderComponent, SpecialCharacterDirective, StatusComponent, SubmitDialogComponent, TARGET_SERVER_DP, TARGET_SERVER_WM, TRUE_BOOL, TRUE_STRING, TableListComponent, TermsConditionsComponent, TextDirective, TextareaComponent, TitleSectionComponent, ToggleButtonComponent, URL_SEPARATOR, WM_ACTION_SAVE, WM_ACTION_SAVE_CHANGES, WM_ACTION_SUBMIT, WRITE_MODE, WorkflowSectionComponent, dataURItoBlob, encodePassword, handelErrorResponse, isValidData, stringToBooleanPipe, validateSAID };
6005
6755
  //# sourceMappingURL=bpm-core.mjs.map