bpm-core 0.0.55 → 0.0.56
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.
- package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +13 -10
- package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +5 -3
- package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +7 -5
- package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +5 -3
- package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +196 -36
- package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +5 -3
- package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +5 -3
- package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +6 -4
- package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +5 -3
- package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +5 -3
- package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +3 -3
- package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +6 -4
- package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +5 -3
- package/esm2022/lib/components/shared-components/table/table.component.mjs +240 -0
- package/esm2022/lib/directives/skip-location.directive.mjs +28 -0
- package/esm2022/lib/enums/actions.enum.mjs +21 -0
- package/esm2022/lib/enums/colors.enum.mjs +6 -0
- package/esm2022/lib/enums/events.enum.mjs +6 -0
- package/esm2022/lib/helpers/shared.helper.mjs +26 -0
- package/esm2022/lib/interfaces/action.interface.mjs +2 -0
- package/esm2022/lib/regex/index.mjs +2 -0
- package/esm2022/lib/services/core.service.ts.mjs +7 -5
- package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +5 -3
- package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +7 -4
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/bpm-core.mjs +241 -67
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.d.ts +2 -0
- package/lib/components/app-component-sections/feedback-section/feedback-section.component.d.ts +2 -1
- package/lib/components/app-component-sections/form-section/form-section.component.d.ts +2 -1
- package/lib/components/app-component-sections/previous-requests/previous-requests.component.d.ts +123 -1
- package/lib/components/app-component-sections/service-header/service-header.component.d.ts +2 -1
- package/lib/components/app-component-sections/workflow-section/workflow-section.component.d.ts +2 -1
- package/lib/components/shared-components/action-buttons/action-buttons.component.d.ts +2 -1
- package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +2 -1
- package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +2 -1
- package/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.d.ts +2 -1
- package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +2 -1
- package/lib/components/shared-components/form-field/shared-imports.d.ts +2 -2
- package/lib/components/shared-components/table/table.component.d.ts +76 -0
- package/lib/directives/skip-location.directive.d.ts +10 -0
- package/lib/enums/actions.enum.d.ts +19 -0
- package/lib/enums/colors.enum.d.ts +4 -0
- package/lib/enums/events.enum.d.ts +4 -0
- package/lib/helpers/shared.helper.d.ts +1 -0
- package/lib/interfaces/action.interface.d.ts +7 -0
- package/lib/regex/index.d.ts +1 -0
- package/lib/services/core.service.ts.d.ts +2 -0
- package/lib/testComponent/general-approver-section/general-approver-section.component.d.ts +2 -1
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/fesm2022/bpm-core.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject, Component, CUSTOM_ELEMENTS_SCHEMA, Pipe, forwardRef, EventEmitter, Input, Output, Directive, HostListener,
|
|
2
|
+
import { Injectable, Inject, inject, DestroyRef, Component, CUSTOM_ELEMENTS_SCHEMA, Pipe, forwardRef, EventEmitter, Input, Output, Directive, HostListener, ViewChild, NO_ERRORS_SCHEMA, PLATFORM_ID, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as i5 from '@angular/material/dialog';
|
|
4
4
|
import { MatDialogContent, MatDialogClose, MatDialogTitle, MAT_DIALOG_DATA, MatDialog, MatDialogActions, MatDialogModule } from '@angular/material/dialog';
|
|
5
5
|
import { Subject, ReplaySubject, BehaviorSubject, catchError, throwError, switchMap, from } from 'rxjs';
|
|
6
6
|
import * as i1 from '@angular/common/http';
|
|
7
7
|
import { HttpHeaders } from '@angular/common/http';
|
|
8
8
|
import { map } from 'rxjs/operators';
|
|
9
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
10
|
import * as i5$1 from '@angular/common';
|
|
10
11
|
import { NgIf, CommonModule, NgSwitchCase, DecimalPipe, DatePipe, NgClass, NgSwitchDefault, NgSwitch, NgForOf, NgTemplateOutlet, SlicePipe, NgComponentOutlet, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
11
12
|
import * as i4$1 from '@angular/material/core';
|
|
@@ -52,7 +53,6 @@ import { MatRadioButton, MatRadioGroup } from '@angular/material/radio';
|
|
|
52
53
|
import * as i2$4 from '@angular/material/expansion';
|
|
53
54
|
import { MatAccordion, MatExpansionPanel, MatExpansionPanelTitle, MatExpansionModule } from '@angular/material/expansion';
|
|
54
55
|
import { MatDivider } from '@angular/material/divider';
|
|
55
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
56
56
|
import { TranslateModule } from '@ngx-translate/core';
|
|
57
57
|
import * as i3$1 from 'ng-dynamic-component';
|
|
58
58
|
import { ComponentOutletIoDirective, DynamicModule, DynamicComponentInjectorToken } from 'ng-dynamic-component';
|
|
@@ -809,6 +809,7 @@ class CoreService {
|
|
|
809
809
|
historyDataLoaded;
|
|
810
810
|
historyData = [];
|
|
811
811
|
isMobile;
|
|
812
|
+
destroyRef = inject(DestroyRef);
|
|
812
813
|
constructor(http, config) {
|
|
813
814
|
this.http = http;
|
|
814
815
|
this.config = config;
|
|
@@ -833,7 +834,7 @@ class CoreService {
|
|
|
833
834
|
}
|
|
834
835
|
getLoggedInUserData() {
|
|
835
836
|
let loggedInEmail = this.loggedInUserId();
|
|
836
|
-
this.employeeProfile(loggedInEmail).subscribe((response) => {
|
|
837
|
+
this.employeeProfile(loggedInEmail).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
837
838
|
this.loggedInUserData = response?.["Users"]?.[0];
|
|
838
839
|
console.log('getLoggedInUserData', response);
|
|
839
840
|
});
|
|
@@ -1044,7 +1045,7 @@ class CoreService {
|
|
|
1044
1045
|
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));
|
|
1045
1046
|
if (result.header.formId) {
|
|
1046
1047
|
result.commentsDrop = (!result.commentsDrop ? [] : result.commentsDrop);
|
|
1047
|
-
this.loadHistory(result.header.formId).subscribe((response) => {
|
|
1048
|
+
this.loadHistory(result.header.formId).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
1048
1049
|
if (response) {
|
|
1049
1050
|
response.items.forEach((item) => {
|
|
1050
1051
|
if (item.sequenceNumber !== '0' && item.processedBy) {
|
|
@@ -1057,7 +1058,7 @@ class CoreService {
|
|
|
1057
1058
|
}
|
|
1058
1059
|
const inboxType = this.getInboxType(result);
|
|
1059
1060
|
if (result.header.formId && (!this.isOpenOnInbox())) {
|
|
1060
|
-
this.getInboxItem(result.header.formId, inboxType).subscribe((response) => {
|
|
1061
|
+
this.getInboxItem(result.header.formId, inboxType).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
1061
1062
|
if (response) {
|
|
1062
1063
|
const item = response.item;
|
|
1063
1064
|
result.inboxItem = new InboxItem(item['flagging'].flagPriority, item['flagging']['isFlagged'], item.feedback['canRequestFeedback'], item.feedback['hasFeedback'], item.feedback['isPending'], item.feedback['isRequested'], item.feedback['isResponded']);
|
|
@@ -2598,7 +2599,7 @@ class DateRangePickerComponent extends ControlValueAccessorDirective {
|
|
|
2598
2599
|
provide: MAT_DATE_FORMATS,
|
|
2599
2600
|
useClass: CustomDateFormat,
|
|
2600
2601
|
},
|
|
2601
|
-
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){ @if(label){\r\n
|
|
2602
|
+
], viewQueries: [{ propertyName: "datepicker", first: true, predicate: MatDatepicker, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if(!isReadOnly){ @if(label){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!required\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n}\r\n<mat-form-field class=\"date-range primary-form {{ className }}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\" [min]=\"minDateValue\" [max]=\"maxDateValue\">\r\n <input\r\n matStartDate\r\n placeholder=\"Start date\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"End date\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-onyx fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n} @else {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control.value?.startDate,\r\n endDate: control.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i1$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: i1$2.MatDatepickerModule }, { kind: "directive", type: i1$2.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i1$2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i1$2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i1$2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i1$2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: i2$1.MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: FormLabelComponent, selector: "app-form-label", inputs: ["tooltip", "label", "optional"] }, { kind: "component", type: ValidationErrorsComponent, selector: "app-validation-errors", inputs: ["errors", "customErrorMessages"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "ngmodule", type: i4.ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
2602
2603
|
}
|
|
2603
2604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DateRangePickerComponent, decorators: [{
|
|
2604
2605
|
type: Component,
|
|
@@ -2616,7 +2617,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
2616
2617
|
...MatDatePickerImports,
|
|
2617
2618
|
...MatFormImports,
|
|
2618
2619
|
...Shareds
|
|
2619
|
-
], template: "@if(!isReadOnly){ @if(label){\r\n
|
|
2620
|
+
], template: "@if(!isReadOnly){ @if(label){\r\n @if(label){\r\n <app-form-label [label]=\"label\" [optional]=\"!required\" [tooltip]=\"tooltip\"></app-form-label>\r\n }\r\n}\r\n<mat-form-field class=\"date-range primary-form {{ className }}\">\r\n <label class=\"mat-form-content\">\r\n <mat-date-range-input [rangePicker]=\"picker\" [min]=\"minDateValue\" [max]=\"maxDateValue\">\r\n <input\r\n matStartDate\r\n placeholder=\"Start date\"\r\n [formControl]=\"startDateControl\"\r\n (dateInput)=\"startDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n <input\r\n matEndDate\r\n placeholder=\"End date\"\r\n [formControl]=\"endDateControl\"\r\n (dateInput)=\"endDateChange($event)\"\r\n (focus)=\"focusPicker(picker)\"\r\n readonly\r\n />\r\n </mat-date-range-input>\r\n </label>\r\n @if(control?.value){\r\n <ds-icon\r\n matSuffix\r\n icon=\"close\"\r\n class=\"fc-onyx fs-10 mx-2 cursor-pointer\"\r\n (click)=\"clearDateValue($event)\"\r\n ></ds-icon>\r\n }\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disableRipple]=\"true\">\r\n <i class=\"sfi sfi-calendar-o fc-onyx font-18\" matDatepickerToggleIcon></i>\r\n </mat-datepicker-toggle>\r\n <mat-date-range-picker #picker></mat-date-range-picker>\r\n</mat-form-field>\r\n<app-validation-errors [errors]=\"control.errors\"></app-validation-errors>\r\n} @else {\r\n<ng-container>\r\n <app-info-item\r\n class=\"info-item w-100\"\r\n type=\"date\"\r\n [insideTable]=\"insideTable\"\r\n [dateType]=\"calendarType\"\r\n [label]=\"label\"\r\n [value]=\"{\r\n startDate: control.value?.startDate,\r\n endDate: control.value?.endDate\r\n }\"\r\n [hasLabel]=\"!!label\"\r\n >\r\n </app-info-item>\r\n</ng-container>\r\n}\r\n", styles: [":host{flex-grow:1}\n"] }]
|
|
2620
2621
|
}], propDecorators: { className: [{
|
|
2621
2622
|
type: Input
|
|
2622
2623
|
}], yearOnly: [{
|
|
@@ -3053,6 +3054,7 @@ class SearchEmployeeComponent extends ControlValueAccessorDirective {
|
|
|
3053
3054
|
isUniqueUsers = false;
|
|
3054
3055
|
userAlreadyExist = false;
|
|
3055
3056
|
emitedDeletedValue = new EventEmitter();
|
|
3057
|
+
destroyRef = inject(DestroyRef);
|
|
3056
3058
|
deleteRow(ind, rowData) {
|
|
3057
3059
|
if (!this.isReadOnly) {
|
|
3058
3060
|
this.arrayList = this.arrayList.filter((item, index) => {
|
|
@@ -3071,7 +3073,7 @@ class SearchEmployeeComponent extends ControlValueAccessorDirective {
|
|
|
3071
3073
|
if (input.length >= 3) {
|
|
3072
3074
|
this.selected = false;
|
|
3073
3075
|
this.loading = true;
|
|
3074
|
-
this.coreService.searchEmployee(input).subscribe({
|
|
3076
|
+
this.coreService.searchEmployee(input).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
3075
3077
|
next: (form) => {
|
|
3076
3078
|
this.loading = false;
|
|
3077
3079
|
this.data = form.Users;
|
|
@@ -3671,6 +3673,7 @@ class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
3671
3673
|
maxSize = '10';
|
|
3672
3674
|
inputFile;
|
|
3673
3675
|
dialog = inject(MatDialog);
|
|
3676
|
+
destroyRef = inject(DestroyRef);
|
|
3674
3677
|
validImageTypes = {
|
|
3675
3678
|
jpg: ['image/jpeg', 'image/pjpeg'],
|
|
3676
3679
|
JPG: ['image/jpeg', 'image/pjpeg'],
|
|
@@ -3899,7 +3902,7 @@ class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
3899
3902
|
"fileContents": field.fileContents,
|
|
3900
3903
|
};
|
|
3901
3904
|
this.uploading = true;
|
|
3902
|
-
this.coreService.getAttachments(data).subscribe({
|
|
3905
|
+
this.coreService.getAttachments(data).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
3903
3906
|
next: (form) => {
|
|
3904
3907
|
const newObj = {
|
|
3905
3908
|
"fileName": field.fileName,
|
|
@@ -3981,7 +3984,7 @@ class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
3981
3984
|
this.selectedTemplateAttachment.emit(null);
|
|
3982
3985
|
}
|
|
3983
3986
|
downloadFile(event, field) {
|
|
3984
|
-
this.coreService.loadFile(field.attachmentId).subscribe((responseObject) => {
|
|
3987
|
+
this.coreService.loadFile(field.attachmentId).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((responseObject) => {
|
|
3985
3988
|
const fileInformation = responseObject.body;
|
|
3986
3989
|
this.coreService.saveFile(fileInformation);
|
|
3987
3990
|
/*const fileBlob = this.coreService.dataURItoBlob(fileInformation.fileContents);
|
|
@@ -4128,6 +4131,7 @@ class AttachmentSectionDataComponent extends ControlValueAccessorDirective {
|
|
|
4128
4131
|
hasColumnBreak;
|
|
4129
4132
|
section;
|
|
4130
4133
|
formGroup;
|
|
4134
|
+
destroyRef = inject(DestroyRef);
|
|
4131
4135
|
constructor(injector, i18n, toasterService, coreService, sanitizer, fb, dialogRef, dialogData) {
|
|
4132
4136
|
super(injector, i18n, toasterService, coreService, sanitizer, fb);
|
|
4133
4137
|
this.dialogRef = dialogRef;
|
|
@@ -4178,7 +4182,7 @@ class AttachmentSectionDataComponent extends ControlValueAccessorDirective {
|
|
|
4178
4182
|
fileContents: this.formGroup.controls['file'].value.fileContents,
|
|
4179
4183
|
};
|
|
4180
4184
|
this.uploading = true;
|
|
4181
|
-
this.coreService.getAttachments(data).subscribe((Response) => {
|
|
4185
|
+
this.coreService.getAttachments(data).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((Response) => {
|
|
4182
4186
|
this.uploading = false;
|
|
4183
4187
|
if (Response) {
|
|
4184
4188
|
const newObj = {
|
|
@@ -4247,6 +4251,7 @@ class AttachmentSectionComponent extends ControlValueAccessorDirective {
|
|
|
4247
4251
|
totalRecords = 0;
|
|
4248
4252
|
pageSize = 5;
|
|
4249
4253
|
pageNumber = 0;
|
|
4254
|
+
destroyRef = inject(DestroyRef);
|
|
4250
4255
|
ngOnInit() {
|
|
4251
4256
|
super.ngOnInit();
|
|
4252
4257
|
if (this.control.value) {
|
|
@@ -4356,7 +4361,7 @@ class AttachmentSectionComponent extends ControlValueAccessorDirective {
|
|
|
4356
4361
|
}
|
|
4357
4362
|
downloadFile(event, field) {
|
|
4358
4363
|
return new Promise((resolve, reject) => {
|
|
4359
|
-
this.coreService.loadFile(field.attachmentId).subscribe((responseObject) => {
|
|
4364
|
+
this.coreService.loadFile(field.attachmentId).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((responseObject) => {
|
|
4360
4365
|
const fileInformation = responseObject.body;
|
|
4361
4366
|
/*const fileInformation = responseObject.body;
|
|
4362
4367
|
const fileBlob = this.coreService.dataURItoBlob(fileInformation.fileContents);
|
|
@@ -4508,6 +4513,7 @@ class ApprovalsWorkflowComponent {
|
|
|
4508
4513
|
form;
|
|
4509
4514
|
approvals = [];
|
|
4510
4515
|
loading = false;
|
|
4516
|
+
destroyRef = inject(DestroyRef);
|
|
4511
4517
|
constructor(i18n, sidenavService, coreService, toasterService) {
|
|
4512
4518
|
this.i18n = i18n;
|
|
4513
4519
|
this.sidenavService = sidenavService;
|
|
@@ -4519,7 +4525,7 @@ class ApprovalsWorkflowComponent {
|
|
|
4519
4525
|
return;
|
|
4520
4526
|
}
|
|
4521
4527
|
this.initializeApprovals();
|
|
4522
|
-
this.coreService.perspectiveApproves(this.section.body.details).subscribe(response => this.handleResponse(response), err => this.handleError(err));
|
|
4528
|
+
this.coreService.perspectiveApproves(this.section.body.details).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(response => this.handleResponse(response), err => this.handleError(err));
|
|
4523
4529
|
}
|
|
4524
4530
|
isLoading() {
|
|
4525
4531
|
return this.loading;
|
|
@@ -4613,6 +4619,7 @@ class ActionButtonsComponent {
|
|
|
4613
4619
|
'SUBMIT': false
|
|
4614
4620
|
};
|
|
4615
4621
|
submittingForm;
|
|
4622
|
+
destroyRef = inject(DestroyRef);
|
|
4616
4623
|
constructor(i18n, actionStateService, coreService, dialog, toasterService, cdRef) {
|
|
4617
4624
|
this.i18n = i18n;
|
|
4618
4625
|
this.actionStateService = actionStateService;
|
|
@@ -4620,7 +4627,7 @@ class ActionButtonsComponent {
|
|
|
4620
4627
|
this.dialog = dialog;
|
|
4621
4628
|
this.toasterService = toasterService;
|
|
4622
4629
|
this.cdRef = cdRef;
|
|
4623
|
-
this.actionStateService.actionStates$.subscribe(states => this.actionStates = states);
|
|
4630
|
+
this.actionStateService.actionStates$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(states => this.actionStates = states);
|
|
4624
4631
|
}
|
|
4625
4632
|
ngAfterViewInit() {
|
|
4626
4633
|
this.lovOptions?.forEach((item) => {
|
|
@@ -4646,7 +4653,7 @@ class ActionButtonsComponent {
|
|
|
4646
4653
|
}
|
|
4647
4654
|
this.isSubmitting[action] = true;
|
|
4648
4655
|
this.submittingForm = true;
|
|
4649
|
-
this.coreService.submitForm(section, action).subscribe((response) => {
|
|
4656
|
+
this.coreService.submitForm(section, action).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
4650
4657
|
if (response) {
|
|
4651
4658
|
this.isSubmitting[action] = false;
|
|
4652
4659
|
this.success(response);
|
|
@@ -4991,6 +4998,7 @@ class FeedbackSectionComponent {
|
|
|
4991
4998
|
isResponseValidated = false;
|
|
4992
4999
|
employeeInput = null;
|
|
4993
5000
|
feedbackId = null;
|
|
5001
|
+
destroyRef = inject(DestroyRef);
|
|
4994
5002
|
constructor(feedBackService, i18n, data) {
|
|
4995
5003
|
this.feedBackService = feedBackService;
|
|
4996
5004
|
this.i18n = i18n;
|
|
@@ -5038,7 +5046,7 @@ class FeedbackSectionComponent {
|
|
|
5038
5046
|
}
|
|
5039
5047
|
}
|
|
5040
5048
|
getFeedBack() {
|
|
5041
|
-
this.feedBackService.getFeedback(this.profile.employeeEmail).subscribe((Response) => {
|
|
5049
|
+
this.feedBackService.getFeedback(this.profile.employeeEmail).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((Response) => {
|
|
5042
5050
|
if (Response) {
|
|
5043
5051
|
if (Response instanceof Messages) {
|
|
5044
5052
|
this.showError(Response);
|
|
@@ -5069,7 +5077,7 @@ class FeedbackSectionComponent {
|
|
|
5069
5077
|
addFeedback() {
|
|
5070
5078
|
if (this.isFeedbackValidated) {
|
|
5071
5079
|
const email = this.searchEmp.personEmail, question = this.feedBackQuestion;
|
|
5072
|
-
this.feedBackService.submitFeedback({ email, question }).subscribe((Response) => {
|
|
5080
|
+
this.feedBackService.submitFeedback({ email, question }).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((Response) => {
|
|
5073
5081
|
if (Response) {
|
|
5074
5082
|
if (Response instanceof Messages) {
|
|
5075
5083
|
this.showError(Response);
|
|
@@ -5102,7 +5110,7 @@ class FeedbackSectionComponent {
|
|
|
5102
5110
|
addResponse() {
|
|
5103
5111
|
if (this.isFeedbackValidated) {
|
|
5104
5112
|
const feedbackId = this.feedbackId, feedbackResponse = this.feedBackResponse;
|
|
5105
|
-
this.feedBackService.addResponse({ feedbackId, feedbackResponse }).subscribe((Response) => {
|
|
5113
|
+
this.feedBackService.addResponse({ feedbackId, feedbackResponse }).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((Response) => {
|
|
5106
5114
|
if (Response) {
|
|
5107
5115
|
if (Response instanceof Messages) {
|
|
5108
5116
|
this.showError(Response);
|
|
@@ -5217,15 +5225,18 @@ class ActivitiesComponent {
|
|
|
5217
5225
|
downloadFile(event) {
|
|
5218
5226
|
console.log(event.detail.value);
|
|
5219
5227
|
const placeholder = event.target.nextElementSibling;
|
|
5220
|
-
this.coreService.loadFile(event.detail.value.id).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5228
|
+
this.coreService.loadFile(event.detail.value.id).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
5229
|
+
next: (responseObject) => {
|
|
5230
|
+
const fileInformation = responseObject.body;
|
|
5231
|
+
const fileBlob = this.coreService.dataURItoBlob(fileInformation.fileContents);
|
|
5232
|
+
const file = new File([fileBlob], fileInformation.fileName, { type: fileInformation.mimeType });
|
|
5233
|
+
placeholder.href = URL.createObjectURL(file);
|
|
5234
|
+
placeholder.download = file.name;
|
|
5235
|
+
placeholder.click();
|
|
5236
|
+
},
|
|
5237
|
+
error: (error) => {
|
|
5238
|
+
console.error('Error loading file:', error);
|
|
5239
|
+
}
|
|
5229
5240
|
});
|
|
5230
5241
|
}
|
|
5231
5242
|
closeSidenav() {
|
|
@@ -5302,6 +5313,7 @@ class PreviousRequestsComponent {
|
|
|
5302
5313
|
i18n;
|
|
5303
5314
|
fb;
|
|
5304
5315
|
previousRequests = [];
|
|
5316
|
+
destroyRef = inject(DestroyRef);
|
|
5305
5317
|
loading;
|
|
5306
5318
|
filterFormGroup;
|
|
5307
5319
|
errorMessage;
|
|
@@ -5339,6 +5351,12 @@ class PreviousRequestsComponent {
|
|
|
5339
5351
|
this.i18n = i18n;
|
|
5340
5352
|
this.fb = fb;
|
|
5341
5353
|
}
|
|
5354
|
+
/**
|
|
5355
|
+
* Initializes the component on initialization.
|
|
5356
|
+
* It creates a form and sets the available statuses based on the current language.
|
|
5357
|
+
*
|
|
5358
|
+
* @return {void}
|
|
5359
|
+
*/
|
|
5342
5360
|
ngOnInit() {
|
|
5343
5361
|
this.createForm();
|
|
5344
5362
|
this.statuses = [
|
|
@@ -5347,16 +5365,46 @@ class PreviousRequestsComponent {
|
|
|
5347
5365
|
{ key: "PENDING", value: this.i18n.language == 'en' ? "Pending" : "معلق" }
|
|
5348
5366
|
];
|
|
5349
5367
|
}
|
|
5368
|
+
// variables to manage subscription
|
|
5369
|
+
ngUnsubscribe = new Subject();
|
|
5370
|
+
// new helper methods for form controls
|
|
5371
|
+
/**
|
|
5372
|
+
* Generates form controls for the current month and year.
|
|
5373
|
+
*
|
|
5374
|
+
* @return {object} An object containing form controls for the current month and year.
|
|
5375
|
+
* - month: FormControl for the current month with Validators required
|
|
5376
|
+
* - year: FormControl for the current year with Validators required
|
|
5377
|
+
*/
|
|
5378
|
+
currentDateControl() {
|
|
5379
|
+
const date = new Date();
|
|
5380
|
+
const month = date.getUTCMonth() + 1;
|
|
5381
|
+
const year = date.getFullYear();
|
|
5382
|
+
return {
|
|
5383
|
+
month: new FormControl({ key: month, value: month }, Validators.required),
|
|
5384
|
+
year: new FormControl({ key: year, value: year }, Validators.required),
|
|
5385
|
+
};
|
|
5386
|
+
}
|
|
5387
|
+
/**
|
|
5388
|
+
* Initializes a form group for filtering data.
|
|
5389
|
+
* It creates form controls for the current date and status.
|
|
5390
|
+
* Also sets up a subscription to listen for changes in the status control.
|
|
5391
|
+
*
|
|
5392
|
+
* @return {void}
|
|
5393
|
+
*/
|
|
5350
5394
|
createForm() {
|
|
5351
5395
|
this.filterFormGroup = this.fb.group({
|
|
5352
|
-
|
|
5353
|
-
year: new FormControl({ key: new Date().getFullYear(), value: new Date().getFullYear() }, Validators.required),
|
|
5396
|
+
...this.currentDateControl(),
|
|
5354
5397
|
status: new FormControl('', Validators.required)
|
|
5355
5398
|
});
|
|
5356
|
-
this.filterFormGroup.get('status').valueChanges.subscribe(value => {
|
|
5399
|
+
this.filterFormGroup.get('status').valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {
|
|
5357
5400
|
this.filterStatus();
|
|
5358
5401
|
});
|
|
5359
5402
|
}
|
|
5403
|
+
/**
|
|
5404
|
+
* Perform initialization after Angular has fully initialized a component's view.
|
|
5405
|
+
*
|
|
5406
|
+
* @return {void}
|
|
5407
|
+
*/
|
|
5360
5408
|
ngAfterViewInit() {
|
|
5361
5409
|
if (this.coreService.historyDataLoaded) {
|
|
5362
5410
|
this.previousRequests = this.coreService.historyData;
|
|
@@ -5365,6 +5413,14 @@ class PreviousRequestsComponent {
|
|
|
5365
5413
|
this.getRequests();
|
|
5366
5414
|
}
|
|
5367
5415
|
}
|
|
5416
|
+
/**
|
|
5417
|
+
* Clear all filters and reset the form group to its initial state.
|
|
5418
|
+
* Sets the month and year filters to the current date's month and year respectively.
|
|
5419
|
+
* Sets the status filter to an empty string.
|
|
5420
|
+
* Toggles the isOpen property and triggers the filterStatus method.
|
|
5421
|
+
*
|
|
5422
|
+
* @return {void}
|
|
5423
|
+
*/
|
|
5368
5424
|
clearFilters() {
|
|
5369
5425
|
this.filterFormGroup.reset();
|
|
5370
5426
|
this.filterFormGroup.get('month').setValue({ key: new Date().getUTCMonth() + 1, value: new Date().getUTCMonth() + 1 });
|
|
@@ -5373,60 +5429,173 @@ class PreviousRequestsComponent {
|
|
|
5373
5429
|
this.isOpen = !this.isOpen;
|
|
5374
5430
|
this.filterStatus();
|
|
5375
5431
|
}
|
|
5432
|
+
/**
|
|
5433
|
+
* Toggles the isOpen property and triggers the getRequests() method.
|
|
5434
|
+
*
|
|
5435
|
+
* @return {void}
|
|
5436
|
+
*/
|
|
5376
5437
|
applyFilters() {
|
|
5377
5438
|
this.isOpen = !this.isOpen;
|
|
5378
5439
|
this.getRequests();
|
|
5379
5440
|
}
|
|
5441
|
+
/**
|
|
5442
|
+
* Retrieves request data based on form values.
|
|
5443
|
+
*
|
|
5444
|
+
* @return {void}
|
|
5445
|
+
*/
|
|
5380
5446
|
getRequests() {
|
|
5381
|
-
|
|
5447
|
+
const formValues = this.getFormValues();
|
|
5448
|
+
if (this.areFormValuesEqual(this.searchData, formValues)) {
|
|
5382
5449
|
this.filterStatus();
|
|
5383
5450
|
}
|
|
5384
5451
|
else {
|
|
5385
|
-
this.
|
|
5386
|
-
|
|
5387
|
-
month: this.filterFormGroup.get('month').value?.key,
|
|
5388
|
-
};
|
|
5389
|
-
this.loading = true;
|
|
5390
|
-
this.coreService.historyData = [];
|
|
5391
|
-
this.previousRequests = [];
|
|
5392
|
-
this.coreService.myRequests(this.searchData).subscribe({
|
|
5393
|
-
next: (response) => {
|
|
5394
|
-
this.coreService.historyData = response.history;
|
|
5395
|
-
this.previousRequests = this.coreService.historyData;
|
|
5396
|
-
this.coreService.historyDataLoaded = true;
|
|
5397
|
-
this.filterStatus();
|
|
5398
|
-
},
|
|
5399
|
-
error: (err) => {
|
|
5400
|
-
this.loading = false;
|
|
5401
|
-
this.errorMessage = err?.error?.meta?.messages?.['0']?.message;
|
|
5402
|
-
this.toasterService.error(this.errorMessage);
|
|
5403
|
-
},
|
|
5404
|
-
complete: () => {
|
|
5405
|
-
this.loading = false;
|
|
5406
|
-
}
|
|
5407
|
-
});
|
|
5452
|
+
this.updateSearchData(formValues);
|
|
5453
|
+
this.requestCoreData();
|
|
5408
5454
|
}
|
|
5409
5455
|
}
|
|
5456
|
+
/**
|
|
5457
|
+
* Retrieves the form values including the year and month.
|
|
5458
|
+
*
|
|
5459
|
+
* @return {Object} Returns an object containing the year and month values.
|
|
5460
|
+
*/
|
|
5461
|
+
getFormValues() {
|
|
5462
|
+
return {
|
|
5463
|
+
year: this.getYearValue(),
|
|
5464
|
+
month: this.getMonthValue(),
|
|
5465
|
+
};
|
|
5466
|
+
}
|
|
5467
|
+
/**
|
|
5468
|
+
* Retrieves the selected year value from the filter form group.
|
|
5469
|
+
*
|
|
5470
|
+
* @return The selected year value as a number.
|
|
5471
|
+
*/
|
|
5472
|
+
getYearValue() {
|
|
5473
|
+
return this.filterFormGroup.get('year').value?.key;
|
|
5474
|
+
}
|
|
5475
|
+
/**
|
|
5476
|
+
* Retrieves the month value from the filter form group.
|
|
5477
|
+
*
|
|
5478
|
+
* @return {number} The month value retrieved from the form group.
|
|
5479
|
+
*/
|
|
5480
|
+
getMonthValue() {
|
|
5481
|
+
return this.filterFormGroup.get('month').value?.key;
|
|
5482
|
+
}
|
|
5483
|
+
/**
|
|
5484
|
+
* Checks if the year and month values of two form objects are equal.
|
|
5485
|
+
*
|
|
5486
|
+
* @param {Object} first - The first form object to compare.
|
|
5487
|
+
* @param {Object} second - The second form object to compare.
|
|
5488
|
+
* @returns {boolean} - true if the year and month values are equal, otherwise false.
|
|
5489
|
+
*/
|
|
5490
|
+
areFormValuesEqual(first, second) {
|
|
5491
|
+
return first.year == second.year && first.month == second.month;
|
|
5492
|
+
}
|
|
5493
|
+
/**
|
|
5494
|
+
* Update the search data with the provided data.
|
|
5495
|
+
*
|
|
5496
|
+
* @param {Object} data - The new search data to update.
|
|
5497
|
+
*
|
|
5498
|
+
* @return {void}
|
|
5499
|
+
*/
|
|
5500
|
+
updateSearchData(data) {
|
|
5501
|
+
this.searchData = data;
|
|
5502
|
+
}
|
|
5503
|
+
/**
|
|
5504
|
+
* Sends a request to retrieve core data using the Core Service API.
|
|
5505
|
+
* Initializes loading and requests before making the call.
|
|
5506
|
+
*
|
|
5507
|
+
* @return {void}
|
|
5508
|
+
*/
|
|
5509
|
+
requestCoreData() {
|
|
5510
|
+
this.initializeLoadingAndRequests();
|
|
5511
|
+
this.loading = true;
|
|
5512
|
+
this.coreService.historyData = [];
|
|
5513
|
+
this.previousRequests = [];
|
|
5514
|
+
this.coreService.myRequests(this.searchData).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
5515
|
+
next: (response) => {
|
|
5516
|
+
this.coreService.historyData = response.history;
|
|
5517
|
+
this.previousRequests = this.coreService.historyData;
|
|
5518
|
+
this.coreService.historyDataLoaded = true;
|
|
5519
|
+
this.filterStatus();
|
|
5520
|
+
},
|
|
5521
|
+
error: (err) => {
|
|
5522
|
+
this.loading = false;
|
|
5523
|
+
this.errorMessage = err?.error?.meta?.messages?.['0']?.message;
|
|
5524
|
+
this.toasterService.error(this.errorMessage);
|
|
5525
|
+
},
|
|
5526
|
+
complete: () => {
|
|
5527
|
+
this.loading = false;
|
|
5528
|
+
}
|
|
5529
|
+
});
|
|
5530
|
+
}
|
|
5531
|
+
/**
|
|
5532
|
+
* Initializes loading and requests.
|
|
5533
|
+
*
|
|
5534
|
+
* @return {void}
|
|
5535
|
+
*/
|
|
5536
|
+
initializeLoadingAndRequests() {
|
|
5537
|
+
this.loading = true;
|
|
5538
|
+
this.coreService.historyData = [];
|
|
5539
|
+
this.previousRequests = [];
|
|
5540
|
+
}
|
|
5541
|
+
/**
|
|
5542
|
+
* Handles successful response from a request.
|
|
5543
|
+
*
|
|
5544
|
+
* @param {Object} response - The response object containing history data.
|
|
5545
|
+
* @return {void}
|
|
5546
|
+
*/
|
|
5547
|
+
handleRequestSuccess(response) {
|
|
5548
|
+
this.coreService.historyData = response.history;
|
|
5549
|
+
this.previousRequests = this.coreService.historyData;
|
|
5550
|
+
this.coreService.historyDataLoaded = true;
|
|
5551
|
+
this.filterStatus();
|
|
5552
|
+
}
|
|
5553
|
+
/**
|
|
5554
|
+
* Handles the error received from a request
|
|
5555
|
+
*
|
|
5556
|
+
* @param {Object} err - The error object containing information about the error
|
|
5557
|
+
* @return {void}
|
|
5558
|
+
*/
|
|
5559
|
+
handleRequestError(err) {
|
|
5560
|
+
this.loading = false;
|
|
5561
|
+
this.errorMessage = err?.error?.meta?.messages?.['0']?.message;
|
|
5562
|
+
this.toasterService.error(this.errorMessage);
|
|
5563
|
+
}
|
|
5564
|
+
/**
|
|
5565
|
+
* Filters the previous requests based on the status selected in the filter form.
|
|
5566
|
+
*
|
|
5567
|
+
* @return {void}
|
|
5568
|
+
*/
|
|
5410
5569
|
filterStatus() {
|
|
5570
|
+
const statusKey = this.filterFormGroup.get('status').value?.key;
|
|
5411
5571
|
this.previousRequests = this.coreService.historyData;
|
|
5412
|
-
let filterData
|
|
5413
|
-
if (
|
|
5414
|
-
filterData = this.previousRequests.filter((request) =>
|
|
5415
|
-
return request.form.formStatus.key === this.filterFormGroup.get('status').value.key;
|
|
5416
|
-
});
|
|
5572
|
+
let filterData;
|
|
5573
|
+
if (statusKey) {
|
|
5574
|
+
filterData = this.previousRequests.filter((request) => request.form?.['formStatus']?.key === statusKey);
|
|
5417
5575
|
}
|
|
5418
5576
|
else {
|
|
5419
5577
|
filterData = this.previousRequests;
|
|
5420
5578
|
}
|
|
5421
5579
|
this.previousRequests = filterData;
|
|
5422
5580
|
}
|
|
5581
|
+
/**
|
|
5582
|
+
* Opens a form in a new window based on the provided form ID.
|
|
5583
|
+
*
|
|
5584
|
+
* @param {string} formId - The ID of the form to be opened.
|
|
5585
|
+
* @return {void}
|
|
5586
|
+
*/
|
|
5423
5587
|
viewForm(formId) {
|
|
5424
5588
|
if (formId) {
|
|
5425
5589
|
window.open('/group/i-gate/wm-bpm/forms?formId=' + formId);
|
|
5426
5590
|
}
|
|
5427
5591
|
}
|
|
5592
|
+
ngOnDestroy() {
|
|
5593
|
+
// emit the value to complete all active subscriptions
|
|
5594
|
+
this.ngUnsubscribe.next();
|
|
5595
|
+
this.ngUnsubscribe.complete();
|
|
5596
|
+
}
|
|
5428
5597
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, deps: [{ token: i5.MatDialog }, { token: SidenavService }, { token: CoreService }, { token: i2.ToastrService }, { token: CoreI18nService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
5429
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: PreviousRequestsComponent, isStandalone: true, selector: "app-history", ngImport: i0, template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5$1.DatePipe, name: "date" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: StatusStylePipe, name: "statusClass" }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
|
|
5598
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: PreviousRequestsComponent, isStandalone: true, selector: "app-history", ngImport: i0, template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5$1.DatePipe, name: "date" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: StatusStylePipe, name: "statusClass" }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
|
|
5430
5599
|
}
|
|
5431
5600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, decorators: [{
|
|
5432
5601
|
type: Component,
|
|
@@ -5442,7 +5611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
5442
5611
|
CdkOverlayOrigin,
|
|
5443
5612
|
CustomSearchableComponent,
|
|
5444
5613
|
CdkConnectedOverlay
|
|
5445
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"] }]
|
|
5614
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"] }]
|
|
5446
5615
|
}], ctorParameters: () => [{ type: i5.MatDialog }, { type: SidenavService }, { type: CoreService }, { type: i2.ToastrService }, { type: CoreI18nService }, { type: i4.FormBuilder }] });
|
|
5447
5616
|
|
|
5448
5617
|
const StatusMap$1 = {
|
|
@@ -5474,6 +5643,7 @@ class ServiceHeaderComponent {
|
|
|
5474
5643
|
serviceFaq = [];
|
|
5475
5644
|
approvals = [];
|
|
5476
5645
|
flagPriority;
|
|
5646
|
+
destroyRef = inject(DestroyRef);
|
|
5477
5647
|
constructor(cdRef, coreService, i18n, feedBackService, dialog, sidenavService, toasterService) {
|
|
5478
5648
|
this.cdRef = cdRef;
|
|
5479
5649
|
this.coreService = coreService;
|
|
@@ -5572,7 +5742,7 @@ class ServiceHeaderComponent {
|
|
|
5572
5742
|
* @return {void}
|
|
5573
5743
|
*/
|
|
5574
5744
|
subscribeToSetFlagPriority(id) {
|
|
5575
|
-
this.coreService.setFlagPriority(id).subscribe((response) => {
|
|
5745
|
+
this.coreService.setFlagPriority(id).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
5576
5746
|
if (response) {
|
|
5577
5747
|
this.toasterService.success(this.i18n.translate('flagStatusUpdated'));
|
|
5578
5748
|
}
|
|
@@ -5766,6 +5936,7 @@ class FormSectionComponent {
|
|
|
5766
5936
|
};
|
|
5767
5937
|
input;
|
|
5768
5938
|
processingDate;
|
|
5939
|
+
destroyRef = inject(DestroyRef);
|
|
5769
5940
|
constructor(i18n, coreService, sidenavService) {
|
|
5770
5941
|
this.i18n = i18n;
|
|
5771
5942
|
this.coreService = coreService;
|
|
@@ -5906,7 +6077,7 @@ class FormSectionComponent {
|
|
|
5906
6077
|
* @return {void}
|
|
5907
6078
|
*/
|
|
5908
6079
|
fetchAndSetUserProfile(userEmail, personType) {
|
|
5909
|
-
this.coreService.employeeProfile(userEmail).subscribe((response) => {
|
|
6080
|
+
this.coreService.employeeProfile(userEmail).pipe(takeUntilDestroyed(this.destroyRef)).subscribe((response) => {
|
|
5910
6081
|
if (response) {
|
|
5911
6082
|
let userData = this.createUserProfileFromResponse(response);
|
|
5912
6083
|
this.openOrCreateUserProfile(userData, personType);
|
|
@@ -6015,6 +6186,7 @@ class WorkflowSectionComponent {
|
|
|
6015
6186
|
segmentDynamicLoaderService = null;
|
|
6016
6187
|
sectionFormComponent = null;
|
|
6017
6188
|
sectionName = SECTION_ID_REQUEST_DETAILS;
|
|
6189
|
+
destroyRef = inject(DestroyRef);
|
|
6018
6190
|
constructor(i18n, cdRef) {
|
|
6019
6191
|
this.i18n = i18n;
|
|
6020
6192
|
this.cdRef = cdRef;
|
|
@@ -6031,7 +6203,7 @@ class WorkflowSectionComponent {
|
|
|
6031
6203
|
}
|
|
6032
6204
|
ngAfterViewChecked() {
|
|
6033
6205
|
if (this.formStateObject && this.form && !this.startedListener) {
|
|
6034
|
-
this.formStateObject.valueChanges.subscribe(
|
|
6206
|
+
this.formStateObject.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(
|
|
6035
6207
|
/* istanbul ignore next */
|
|
6036
6208
|
(form) => {
|
|
6037
6209
|
Object.keys(form).forEach((key) => {
|
|
@@ -6485,6 +6657,7 @@ class RequestDetailsSectionComponent {
|
|
|
6485
6657
|
pageSize = this.DEFAULT_PAGE_SIZE;
|
|
6486
6658
|
columnsConfig = [];
|
|
6487
6659
|
columns = [];
|
|
6660
|
+
destroyRef = inject(DestroyRef);
|
|
6488
6661
|
isError = false;
|
|
6489
6662
|
categoryData = [
|
|
6490
6663
|
{
|
|
@@ -6774,7 +6947,7 @@ class RequestDetailsSectionComponent {
|
|
|
6774
6947
|
callDate: new FormControl(null, [Validators.required]),
|
|
6775
6948
|
agreement: new FormControl(null, [Validators.required, Validators.requiredTrue]),
|
|
6776
6949
|
});
|
|
6777
|
-
this.formGroup.valueChanges.subscribe(value => {
|
|
6950
|
+
this.formGroup.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {
|
|
6778
6951
|
this.lov?.['decision']?.options?.forEach(option => {
|
|
6779
6952
|
let isActionValid = this.checkValidity(option.value);
|
|
6780
6953
|
this.actionStateService.setActionValid(option.value, isActionValid);
|
|
@@ -6864,6 +7037,7 @@ class GeneralApproverSectionComponent {
|
|
|
6864
7037
|
className = "info-section";
|
|
6865
7038
|
fieldsForm;
|
|
6866
7039
|
numbers = [...Array(100).keys()].map(i => i + 1);
|
|
7040
|
+
destroyRef = inject(DestroyRef);
|
|
6867
7041
|
formGroup = new FormGroup({
|
|
6868
7042
|
name: new FormControl('', [Validators.required, Validators.maxLength(3), Validators.minLength(2)]),
|
|
6869
7043
|
countries: new FormControl('', Validators.required),
|
|
@@ -6892,7 +7066,7 @@ class GeneralApproverSectionComponent {
|
|
|
6892
7066
|
});
|
|
6893
7067
|
};
|
|
6894
7068
|
checkValidityAndUpdate();
|
|
6895
|
-
this.fieldsForm.valueChanges.subscribe(() => {
|
|
7069
|
+
this.fieldsForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
6896
7070
|
checkValidityAndUpdate();
|
|
6897
7071
|
});
|
|
6898
7072
|
}
|
|
@@ -7426,5 +7600,5 @@ const MY_LIB_CONFIG_TOKEN = new InjectionToken('MyLibConfig');
|
|
|
7426
7600
|
* Generated bundle index. Do not edit.
|
|
7427
7601
|
*/
|
|
7428
7602
|
|
|
7429
|
-
export { APPROVERS, ActionButtonsComponent, ActionStateService, AttachmentSectionComponent, AttachmentSectionDataComponent, BaseComponent, BuiltInCustomValidators, COMMENT_CONTAINER, CheckBoxComponent, CommentsDrop, ConfirmDialogComponent, CoreAppComponent, CoreI18nService, CoreService, CustomSearchableComponent, DATE_DASH, DATE_SLASH, DATE_TIME, DONT_SHOW, DatePickerComponent, DateRangePickerComponent, DeleteDialogComponent, DocsUploaderComponent, FALSE_BOOL, FALSE_STRING, FEEDBACK_CONTAINER, FEEDBACK_STATUS_REQUEST, FEEDBACK_STATUS_RESPOND, FEEDBACK_STATUS_RESPONDED, FEEDBACK_STATUS_WAITING, FORM_STATUS_APPROVE, FORM_STATUS_APPROVED, FORM_STATUS_CANCEL, FORM_STATUS_CANCELLED, FORM_STATUS_COMPLETED, FORM_STATUS_NEW, FORM_STATUS_PENDING, FORM_STATUS_REJECT, FORM_STATUS_REJECTED, FORM_STATUS_SEND_BACK, FeedBackService, 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, 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, SidenavService, 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, WORKFLOW_ITEMS, WRITE_MODE, WorkflowSectionComponent, dataURItoBlob, encodePassword, handelErrorResponse, isValidData, stringToBooleanPipe, validateSAID };
|
|
7603
|
+
export { APPROVERS, ActionButtonsComponent, ActionStateService, AttachmentSectionComponent, AttachmentSectionDataComponent, BaseComponent, BuiltInCustomValidators, COMMENT_CONTAINER, CheckBoxComponent, CommentsDrop, ConfirmDialogComponent, CoreAppComponent, CoreI18nService, CoreService, CustomSearchableComponent, DATE_DASH, DATE_SLASH, DATE_TIME, DONT_SHOW, DatePickerComponent, DateRangePickerComponent, DeleteDialogComponent, DocsUploaderComponent, FALSE_BOOL, FALSE_STRING, FEEDBACK_CONTAINER, FEEDBACK_STATUS_REQUEST, FEEDBACK_STATUS_RESPOND, FEEDBACK_STATUS_RESPONDED, FEEDBACK_STATUS_WAITING, FORM_STATUS_APPROVE, FORM_STATUS_APPROVED, FORM_STATUS_CANCEL, FORM_STATUS_CANCELLED, FORM_STATUS_COMPLETED, FORM_STATUS_NEW, FORM_STATUS_PENDING, FORM_STATUS_REJECT, FORM_STATUS_REJECTED, FORM_STATUS_SEND_BACK, FeedBackService, 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, MycurrencyPipe, NO_COMMENTS, NO_VALUE, PROCESS_NAME_CODE, PROFILE_CONTAINER, ProfileInfoDrop, ProfileSectionComponent, READ_ONLY, REPORT, ROLE_REQUESTER, RadioComponent, RegexPatterns, 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, SidenavService, 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, WORKFLOW_ITEMS, WRITE_MODE, WorkflowSectionComponent, dataURItoBlob, encodePassword, handelErrorResponse, isValidData, stringToBooleanPipe, validateSAID };
|
|
7430
7604
|
//# sourceMappingURL=bpm-core.mjs.map
|