@skysoftware-co/bayan-hr-widgets-ui 1.0.20 → 1.0.22
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/README.md +77 -0
- package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs +806 -8
- package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs.map +1 -1
- package/lib/profile-bank-info-widget/profile-bank-info-widget.component.d.ts +44 -0
- package/lib/profile-degrees-widget/profile-degrees-widget-component.d.ts +39 -0
- package/lib/profile-experiences-widget/profile-experiences-widget-component.d.ts +38 -0
- package/lib/profile-job-info-contract-widget/profile-job-info-contract-widget.component.d.ts +30 -0
- package/lib/profile-job-info-main-widget/profile-job-info-main-widget.component.d.ts +30 -0
- package/lib/profile-job-info-salary-widget/profile-job-info-salary-widget.component.d.ts +36 -0
- package/lib/profile-job-info-service-charge-widget/profile-job-info-service-charge-widget.component.d.ts +32 -0
- package/lib/shared/types/common.d.ts +16 -16
- package/package.json +1 -1
- package/public-api.d.ts +7 -0
|
@@ -11,9 +11,9 @@ import { SkyShortcutIconComponent, SkySectionDividerComponent, SkyEmptyDesignCar
|
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
12
12
|
import { HttpParams } from '@angular/common/http';
|
|
13
13
|
import { map, shareReplay, catchError, throwError, lastValueFrom } from 'rxjs';
|
|
14
|
-
import { faCakeCandles, faTreePalm, faCalendarStar, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faXmark } from '@fortawesome/pro-light-svg-icons';
|
|
14
|
+
import { faCakeCandles, faTreePalm, faCalendarStar, faMoneyCheckDollarPen, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faFileSignature, faSackDollar, faEnvelopeOpenDollar, faXmark, faFolderArrowDown, faUsersRays, faFileCertificate } from '@fortawesome/pro-light-svg-icons';
|
|
15
15
|
import * as i2 from 'devextreme-angular/core';
|
|
16
|
-
import { faCircle, faCalendarDays } from '@fortawesome/pro-regular-svg-icons';
|
|
16
|
+
import { faCircle, faCalendarDays, faEye } from '@fortawesome/pro-regular-svg-icons';
|
|
17
17
|
import moment from 'moment';
|
|
18
18
|
import { faPlaneDeparture, faPlaneArrival } from '@fortawesome/pro-solid-svg-icons';
|
|
19
19
|
import CustomStore from 'devextreme/data/custom_store';
|
|
@@ -177,6 +177,17 @@ var StartDate$2 = "Start date";
|
|
|
177
177
|
var EndDate$2 = "End date";
|
|
178
178
|
var ReturnDate$2 = "Return date";
|
|
179
179
|
var JobInformation$2 = "Job information";
|
|
180
|
+
var Degrees$2 = "Degrees";
|
|
181
|
+
var degrees$2 = "Degrees";
|
|
182
|
+
var experiences$2 = "Experiences";
|
|
183
|
+
var Country$2 = "Country";
|
|
184
|
+
var Specialty$2 = "Specialty";
|
|
185
|
+
var Institute$2 = "Institute";
|
|
186
|
+
var Period$2 = "Period";
|
|
187
|
+
var Employer$2 = "Employer";
|
|
188
|
+
var TerminationReason$2 = "Termination reason";
|
|
189
|
+
var ThereIsNoDegreesYet$2 = "There are no degrees yet";
|
|
190
|
+
var ThereIsNoExperiencesYet$2 = "There are no experiences yet";
|
|
180
191
|
var en = {
|
|
181
192
|
ReportingTo: ReportingTo$2,
|
|
182
193
|
NotAnknown: NotAnknown$2,
|
|
@@ -286,7 +297,19 @@ var en = {
|
|
|
286
297
|
EndDate: EndDate$2,
|
|
287
298
|
ReturnDate: ReturnDate$2,
|
|
288
299
|
"Search...": "Search...",
|
|
289
|
-
JobInformation: JobInformation$2
|
|
300
|
+
JobInformation: JobInformation$2,
|
|
301
|
+
Degrees: Degrees$2,
|
|
302
|
+
degrees: degrees$2,
|
|
303
|
+
experiences: experiences$2,
|
|
304
|
+
"Degree/Year": "Degree/Year",
|
|
305
|
+
Country: Country$2,
|
|
306
|
+
Specialty: Specialty$2,
|
|
307
|
+
Institute: Institute$2,
|
|
308
|
+
Period: Period$2,
|
|
309
|
+
Employer: Employer$2,
|
|
310
|
+
TerminationReason: TerminationReason$2,
|
|
311
|
+
ThereIsNoDegreesYet: ThereIsNoDegreesYet$2,
|
|
312
|
+
ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$2
|
|
290
313
|
};
|
|
291
314
|
|
|
292
315
|
var ReportingTo$1 = "مفوض الى";
|
|
@@ -395,6 +418,17 @@ var StartDate$1 = "تاريخ البداية";
|
|
|
395
418
|
var EndDate$1 = "تاريخ النهاية";
|
|
396
419
|
var ReturnDate$1 = "تاريخ العودة";
|
|
397
420
|
var JobInformation$1 = "معلومات الوظيفة";
|
|
421
|
+
var Degrees$1 = "المؤهلات العلمية";
|
|
422
|
+
var degrees$1 = "المؤهلات العلمية";
|
|
423
|
+
var experiences$1 = "الخبرات";
|
|
424
|
+
var Country$1 = "الدولة";
|
|
425
|
+
var Specialty$1 = "التخصص";
|
|
426
|
+
var Institute$1 = "المعهد";
|
|
427
|
+
var Period$1 = "الفترة";
|
|
428
|
+
var Employer$1 = "جهة العمل";
|
|
429
|
+
var TerminationReason$1 = "سبب إنهاء الخدمة";
|
|
430
|
+
var ThereIsNoDegreesYet$1 = "لا توجد مؤهلات علمية بعد";
|
|
431
|
+
var ThereIsNoExperiencesYet$1 = "لا توجد خبرات بعد";
|
|
398
432
|
var ar = {
|
|
399
433
|
ReportingTo: ReportingTo$1,
|
|
400
434
|
NotAnknown: NotAnknown$1,
|
|
@@ -503,7 +537,19 @@ var ar = {
|
|
|
503
537
|
EndDate: EndDate$1,
|
|
504
538
|
ReturnDate: ReturnDate$1,
|
|
505
539
|
"Search...": "بحث...",
|
|
506
|
-
JobInformation: JobInformation$1
|
|
540
|
+
JobInformation: JobInformation$1,
|
|
541
|
+
Degrees: Degrees$1,
|
|
542
|
+
degrees: degrees$1,
|
|
543
|
+
experiences: experiences$1,
|
|
544
|
+
"Degree/Year": "الدرجة / السنة",
|
|
545
|
+
Country: Country$1,
|
|
546
|
+
Specialty: Specialty$1,
|
|
547
|
+
Institute: Institute$1,
|
|
548
|
+
Period: Period$1,
|
|
549
|
+
Employer: Employer$1,
|
|
550
|
+
TerminationReason: TerminationReason$1,
|
|
551
|
+
ThereIsNoDegreesYet: ThereIsNoDegreesYet$1,
|
|
552
|
+
ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$1
|
|
507
553
|
};
|
|
508
554
|
|
|
509
555
|
var ReportingTo = "Rapport à";
|
|
@@ -613,6 +659,17 @@ var StartDate = "Date de début";
|
|
|
613
659
|
var EndDate = "Date de fin";
|
|
614
660
|
var ReturnDate = "Date de retour";
|
|
615
661
|
var JobInformation = "Informations sur l'emploi";
|
|
662
|
+
var Degrees = "Diplomes";
|
|
663
|
+
var degrees = "Diplomes";
|
|
664
|
+
var experiences = "Experiences";
|
|
665
|
+
var Country = "Pays";
|
|
666
|
+
var Specialty = "Specialite";
|
|
667
|
+
var Institute = "Institut";
|
|
668
|
+
var Period = "Periode";
|
|
669
|
+
var Employer = "Employeur";
|
|
670
|
+
var TerminationReason = "Motif de fin de service";
|
|
671
|
+
var ThereIsNoDegreesYet = "Il n'y a pas encore de diplomes";
|
|
672
|
+
var ThereIsNoExperiencesYet = "Il n'y a pas encore d'experiences";
|
|
616
673
|
var fr = {
|
|
617
674
|
ReportingTo: ReportingTo,
|
|
618
675
|
NotAnknown: NotAnknown,
|
|
@@ -722,7 +779,19 @@ var fr = {
|
|
|
722
779
|
EndDate: EndDate,
|
|
723
780
|
ReturnDate: ReturnDate,
|
|
724
781
|
"Search...": "Rechercher...",
|
|
725
|
-
JobInformation: JobInformation
|
|
782
|
+
JobInformation: JobInformation,
|
|
783
|
+
Degrees: Degrees,
|
|
784
|
+
degrees: degrees,
|
|
785
|
+
experiences: experiences,
|
|
786
|
+
"Degree/Year": "Diplome/Annee",
|
|
787
|
+
Country: Country,
|
|
788
|
+
Specialty: Specialty,
|
|
789
|
+
Institute: Institute,
|
|
790
|
+
Period: Period,
|
|
791
|
+
Employer: Employer,
|
|
792
|
+
TerminationReason: TerminationReason,
|
|
793
|
+
ThereIsNoDegreesYet: ThereIsNoDegreesYet,
|
|
794
|
+
ThereIsNoExperiencesYet: ThereIsNoExperiencesYet
|
|
726
795
|
};
|
|
727
796
|
|
|
728
797
|
const BUILT_IN_LEXICONS = { en, ar, fr };
|
|
@@ -2454,11 +2523,11 @@ class HRInfoFieldComponent {
|
|
|
2454
2523
|
valueClass = 'fs-14 fw-medium';
|
|
2455
2524
|
fallbackValue = '—';
|
|
2456
2525
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2457
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\"
|
|
2526
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\">{{value || fallbackValue}}</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
|
|
2458
2527
|
}
|
|
2459
2528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, decorators: [{
|
|
2460
2529
|
type: Component,
|
|
2461
|
-
args: [{ selector: 'hr-info-field', standalone: true, imports: [CommonModule, HRTranslatePipe], template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\"
|
|
2530
|
+
args: [{ selector: 'hr-info-field', standalone: true, imports: [CommonModule, HRTranslatePipe], template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\">{{value || fallbackValue}}</div>\r\n" }]
|
|
2462
2531
|
}], propDecorators: { labelKey: [{
|
|
2463
2532
|
type: Input,
|
|
2464
2533
|
args: [{ required: true }]
|
|
@@ -2472,6 +2541,130 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
2472
2541
|
type: Input
|
|
2473
2542
|
}] } });
|
|
2474
2543
|
|
|
2544
|
+
class ProfileBankInfoWidgetComponent {
|
|
2545
|
+
commonMethodsService;
|
|
2546
|
+
hrSelfWidgetsService;
|
|
2547
|
+
isLoading = true;
|
|
2548
|
+
constructor(commonMethodsService, hrSelfWidgetsService) {
|
|
2549
|
+
this.commonMethodsService = commonMethodsService;
|
|
2550
|
+
this.hrSelfWidgetsService = hrSelfWidgetsService;
|
|
2551
|
+
}
|
|
2552
|
+
ngOnInit() {
|
|
2553
|
+
this.isLoadingChanged.emit(true);
|
|
2554
|
+
this.hrSelfWidgetsService.getBankInformation(this.baseUrl).subscribe({
|
|
2555
|
+
next: (response) => {
|
|
2556
|
+
this.isLoading = false;
|
|
2557
|
+
this.employeeBankInformation = response ?? [];
|
|
2558
|
+
this.isLoadingChanged.emit(false);
|
|
2559
|
+
},
|
|
2560
|
+
error: (error) => {
|
|
2561
|
+
this.isLoading = false;
|
|
2562
|
+
this.employeeBankInformation = [];
|
|
2563
|
+
this.isLoadingChanged.emit(false);
|
|
2564
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
2565
|
+
}
|
|
2566
|
+
});
|
|
2567
|
+
}
|
|
2568
|
+
employeeBankInformation = [];
|
|
2569
|
+
currencyCode = '';
|
|
2570
|
+
currencyDecimals = 2;
|
|
2571
|
+
headerIconClass = 'primary-icon-xl';
|
|
2572
|
+
headerTextClass = 'mt-2 field-secondary-label-lg';
|
|
2573
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
2574
|
+
cardClass = 'mt-4 card-shadow position-relative';
|
|
2575
|
+
mainBadgeClass = 'position-absolute text-center top-0 mt-3 start-0 bg-primary status-badge';
|
|
2576
|
+
mainBadgeTextClass = 'mx-1 fs-12 text-white';
|
|
2577
|
+
triangleClass = 'position-absolute start-0 top-0';
|
|
2578
|
+
rowClass = 'row px-4 pb-3';
|
|
2579
|
+
rowMainPtClass = 'pt-5';
|
|
2580
|
+
rowNormalPtClass = 'pt-3';
|
|
2581
|
+
columnClass = 'col-md-4 col-6';
|
|
2582
|
+
responsiveTopSpacingColClass = 'col-md-4 col-6 mt-md-0 mt-4';
|
|
2583
|
+
topSpacingColClass = 'col-md-4 col-6 mt-4';
|
|
2584
|
+
labelClass = 'field-secondary-label-sm';
|
|
2585
|
+
valueClass = 'table-cell-md text-ellipsis-one-line';
|
|
2586
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
2587
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
2588
|
+
bankInformationIcon = faMoneyCheckDollarPen;
|
|
2589
|
+
sectionHeaderVisibility = true;
|
|
2590
|
+
sectionTitle = 'BankInformation';
|
|
2591
|
+
language = 'en';
|
|
2592
|
+
baseUrl = '';
|
|
2593
|
+
errorOccurred = new EventEmitter();
|
|
2594
|
+
isRTL = this.language === 'ar';
|
|
2595
|
+
isLoadingChanged = new EventEmitter();
|
|
2596
|
+
ngOnChanges(changes) {
|
|
2597
|
+
if (changes['language']) {
|
|
2598
|
+
this.isRTL = this.language === 'ar';
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
formatAmount(value) {
|
|
2602
|
+
if (value == null) {
|
|
2603
|
+
return '-';
|
|
2604
|
+
}
|
|
2605
|
+
return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '-';
|
|
2606
|
+
}
|
|
2607
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileBankInfoWidgetComponent, deps: [{ token: HRCommonMethodsService }, { token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2608
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileBankInfoWidgetComponent, isStandalone: true, selector: "hr-profile-bank-info-widget", inputs: { currencyCode: "currencyCode", currencyDecimals: "currencyDecimals", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", cardClass: "cardClass", mainBadgeClass: "mainBadgeClass", mainBadgeTextClass: "mainBadgeTextClass", triangleClass: "triangleClass", rowClass: "rowClass", rowMainPtClass: "rowMainPtClass", rowNormalPtClass: "rowNormalPtClass", columnClass: "columnClass", responsiveTopSpacingColClass: "responsiveTopSpacingColClass", topSpacingColClass: "topSpacingColClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", bankInformationIcon: "bankInformationIcon", sectionHeaderVisibility: "sectionHeaderVisibility", sectionTitle: "sectionTitle", language: "language", baseUrl: "baseUrl" }, outputs: { errorOccurred: "errorOccurred", isLoadingChanged: "isLoadingChanged" }, usesOnChanges: true, ngImport: i0, template: "@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | HRTranslate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | HRTranslate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoBankYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
|
|
2609
|
+
}
|
|
2610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileBankInfoWidgetComponent, decorators: [{
|
|
2611
|
+
type: Component,
|
|
2612
|
+
args: [{ selector: 'hr-profile-bank-info-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | HRTranslate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | HRTranslate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoBankYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
|
|
2613
|
+
}], ctorParameters: () => [{ type: HRCommonMethodsService }, { type: HRSelfWidgetsService }], propDecorators: { currencyCode: [{
|
|
2614
|
+
type: Input
|
|
2615
|
+
}], currencyDecimals: [{
|
|
2616
|
+
type: Input
|
|
2617
|
+
}], headerIconClass: [{
|
|
2618
|
+
type: Input
|
|
2619
|
+
}], headerTextClass: [{
|
|
2620
|
+
type: Input
|
|
2621
|
+
}], headerDividerClass: [{
|
|
2622
|
+
type: Input
|
|
2623
|
+
}], cardClass: [{
|
|
2624
|
+
type: Input
|
|
2625
|
+
}], mainBadgeClass: [{
|
|
2626
|
+
type: Input
|
|
2627
|
+
}], mainBadgeTextClass: [{
|
|
2628
|
+
type: Input
|
|
2629
|
+
}], triangleClass: [{
|
|
2630
|
+
type: Input
|
|
2631
|
+
}], rowClass: [{
|
|
2632
|
+
type: Input
|
|
2633
|
+
}], rowMainPtClass: [{
|
|
2634
|
+
type: Input
|
|
2635
|
+
}], rowNormalPtClass: [{
|
|
2636
|
+
type: Input
|
|
2637
|
+
}], columnClass: [{
|
|
2638
|
+
type: Input
|
|
2639
|
+
}], responsiveTopSpacingColClass: [{
|
|
2640
|
+
type: Input
|
|
2641
|
+
}], topSpacingColClass: [{
|
|
2642
|
+
type: Input
|
|
2643
|
+
}], labelClass: [{
|
|
2644
|
+
type: Input
|
|
2645
|
+
}], valueClass: [{
|
|
2646
|
+
type: Input
|
|
2647
|
+
}], emptyStateContainerClass: [{
|
|
2648
|
+
type: Input
|
|
2649
|
+
}], emptyStateTextClass: [{
|
|
2650
|
+
type: Input
|
|
2651
|
+
}], bankInformationIcon: [{
|
|
2652
|
+
type: Input
|
|
2653
|
+
}], sectionHeaderVisibility: [{
|
|
2654
|
+
type: Input
|
|
2655
|
+
}], sectionTitle: [{
|
|
2656
|
+
type: Input
|
|
2657
|
+
}], language: [{
|
|
2658
|
+
type: Input
|
|
2659
|
+
}], baseUrl: [{
|
|
2660
|
+
type: Input,
|
|
2661
|
+
args: [{ required: true }]
|
|
2662
|
+
}], errorOccurred: [{
|
|
2663
|
+
type: Output
|
|
2664
|
+
}], isLoadingChanged: [{
|
|
2665
|
+
type: Output
|
|
2666
|
+
}] } });
|
|
2667
|
+
|
|
2475
2668
|
class ProfilePersonalInfoMainWidgetComponent {
|
|
2476
2669
|
hrSelfWidgetsService;
|
|
2477
2670
|
employeePersonalInformation = null;
|
|
@@ -2912,6 +3105,393 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
2912
3105
|
type: Output
|
|
2913
3106
|
}] } });
|
|
2914
3107
|
|
|
3108
|
+
class ProfileJobInfoMainWidgetComponent {
|
|
3109
|
+
hrSelfWidgetsService;
|
|
3110
|
+
jobInformationMain = null;
|
|
3111
|
+
isLoading = true;
|
|
3112
|
+
baseUrl = '';
|
|
3113
|
+
headerIconClass = 'primary-icon-xl';
|
|
3114
|
+
headerTextClass = 'mt-2 field-secondary-label-lg';
|
|
3115
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3116
|
+
rowClass = 'row mt-4';
|
|
3117
|
+
columnClass = 'col-md-4 col-6';
|
|
3118
|
+
responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
|
|
3119
|
+
topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
|
|
3120
|
+
topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
|
|
3121
|
+
labelClass = 'field-secondary-label-sm';
|
|
3122
|
+
valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
|
|
3123
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3124
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3125
|
+
mainIcon = faFileSignature;
|
|
3126
|
+
sectionTitle = 'JobInformation';
|
|
3127
|
+
isLoadingChanged = new EventEmitter();
|
|
3128
|
+
errorOccurred = new EventEmitter();
|
|
3129
|
+
constructor(hrSelfWidgetsService) {
|
|
3130
|
+
this.hrSelfWidgetsService = hrSelfWidgetsService;
|
|
3131
|
+
}
|
|
3132
|
+
ngOnInit() {
|
|
3133
|
+
if (!this.baseUrl) {
|
|
3134
|
+
this.isLoading = false;
|
|
3135
|
+
return;
|
|
3136
|
+
}
|
|
3137
|
+
this.isLoadingChanged.emit(true);
|
|
3138
|
+
this.hrSelfWidgetsService.getJobInformationMain(this.baseUrl).subscribe({
|
|
3139
|
+
next: (response) => {
|
|
3140
|
+
this.isLoading = false;
|
|
3141
|
+
this.jobInformationMain = response;
|
|
3142
|
+
this.isLoadingChanged.emit(false);
|
|
3143
|
+
},
|
|
3144
|
+
error: (error) => {
|
|
3145
|
+
this.isLoading = false;
|
|
3146
|
+
this.jobInformationMain = null;
|
|
3147
|
+
this.isLoadingChanged.emit(false);
|
|
3148
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3149
|
+
}
|
|
3150
|
+
});
|
|
3151
|
+
}
|
|
3152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoMainWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoMainWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-main-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", mainIcon: "mainIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobMainYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
|
|
3154
|
+
}
|
|
3155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoMainWidgetComponent, decorators: [{
|
|
3156
|
+
type: Component,
|
|
3157
|
+
args: [{ selector: 'hr-profile-job-info-main-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobMainYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
|
|
3158
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
|
|
3159
|
+
type: Input,
|
|
3160
|
+
args: [{ required: true }]
|
|
3161
|
+
}], headerIconClass: [{
|
|
3162
|
+
type: Input
|
|
3163
|
+
}], headerTextClass: [{
|
|
3164
|
+
type: Input
|
|
3165
|
+
}], headerDividerClass: [{
|
|
3166
|
+
type: Input
|
|
3167
|
+
}], rowClass: [{
|
|
3168
|
+
type: Input
|
|
3169
|
+
}], columnClass: [{
|
|
3170
|
+
type: Input
|
|
3171
|
+
}], responsiveTopSpacingColumnClass: [{
|
|
3172
|
+
type: Input
|
|
3173
|
+
}], topSpacingBottomMdSpacingColumnClass: [{
|
|
3174
|
+
type: Input
|
|
3175
|
+
}], topSpacingBottomSpacingColumnClass: [{
|
|
3176
|
+
type: Input
|
|
3177
|
+
}], labelClass: [{
|
|
3178
|
+
type: Input
|
|
3179
|
+
}], valueClass: [{
|
|
3180
|
+
type: Input
|
|
3181
|
+
}], emptyStateContainerClass: [{
|
|
3182
|
+
type: Input
|
|
3183
|
+
}], emptyStateTextClass: [{
|
|
3184
|
+
type: Input
|
|
3185
|
+
}], mainIcon: [{
|
|
3186
|
+
type: Input
|
|
3187
|
+
}], sectionTitle: [{
|
|
3188
|
+
type: Input
|
|
3189
|
+
}], isLoadingChanged: [{
|
|
3190
|
+
type: Output
|
|
3191
|
+
}], errorOccurred: [{
|
|
3192
|
+
type: Output
|
|
3193
|
+
}] } });
|
|
3194
|
+
|
|
3195
|
+
class ProfileJobInfoContractWidgetComponent {
|
|
3196
|
+
hrSelfWidgetsService;
|
|
3197
|
+
jobInformationContract = null;
|
|
3198
|
+
isLoading = true;
|
|
3199
|
+
baseUrl = '';
|
|
3200
|
+
headerIconClass = 'primary-icon-xl';
|
|
3201
|
+
headerTextClass = 'mt-2 field-secondary-label-lg';
|
|
3202
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3203
|
+
rowClass = 'row mt-4';
|
|
3204
|
+
columnClass = 'col-md-4 col-6';
|
|
3205
|
+
responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
|
|
3206
|
+
topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
|
|
3207
|
+
topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
|
|
3208
|
+
labelClass = 'field-secondary-label-sm';
|
|
3209
|
+
valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
|
|
3210
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3211
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3212
|
+
contractIcon = faFileSignature;
|
|
3213
|
+
sectionTitle = 'Contract';
|
|
3214
|
+
isLoadingChanged = new EventEmitter();
|
|
3215
|
+
errorOccurred = new EventEmitter();
|
|
3216
|
+
constructor(hrSelfWidgetsService) {
|
|
3217
|
+
this.hrSelfWidgetsService = hrSelfWidgetsService;
|
|
3218
|
+
}
|
|
3219
|
+
ngOnInit() {
|
|
3220
|
+
if (!this.baseUrl) {
|
|
3221
|
+
this.isLoading = false;
|
|
3222
|
+
return;
|
|
3223
|
+
}
|
|
3224
|
+
this.isLoadingChanged.emit(true);
|
|
3225
|
+
this.hrSelfWidgetsService.getJobInformationContract(this.baseUrl).subscribe({
|
|
3226
|
+
next: (response) => {
|
|
3227
|
+
this.isLoading = false;
|
|
3228
|
+
this.jobInformationContract = response;
|
|
3229
|
+
this.isLoadingChanged.emit(false);
|
|
3230
|
+
},
|
|
3231
|
+
error: (error) => {
|
|
3232
|
+
this.isLoading = false;
|
|
3233
|
+
this.jobInformationContract = null;
|
|
3234
|
+
this.isLoadingChanged.emit(false);
|
|
3235
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3236
|
+
}
|
|
3237
|
+
});
|
|
3238
|
+
}
|
|
3239
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoContractWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoContractWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-contract-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", contractIcon: "contractIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobContractYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
|
|
3241
|
+
}
|
|
3242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoContractWidgetComponent, decorators: [{
|
|
3243
|
+
type: Component,
|
|
3244
|
+
args: [{ selector: 'hr-profile-job-info-contract-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobContractYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
|
|
3245
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
|
|
3246
|
+
type: Input,
|
|
3247
|
+
args: [{ required: true }]
|
|
3248
|
+
}], headerIconClass: [{
|
|
3249
|
+
type: Input
|
|
3250
|
+
}], headerTextClass: [{
|
|
3251
|
+
type: Input
|
|
3252
|
+
}], headerDividerClass: [{
|
|
3253
|
+
type: Input
|
|
3254
|
+
}], rowClass: [{
|
|
3255
|
+
type: Input
|
|
3256
|
+
}], columnClass: [{
|
|
3257
|
+
type: Input
|
|
3258
|
+
}], responsiveTopSpacingColumnClass: [{
|
|
3259
|
+
type: Input
|
|
3260
|
+
}], topSpacingBottomMdSpacingColumnClass: [{
|
|
3261
|
+
type: Input
|
|
3262
|
+
}], topSpacingBottomSpacingColumnClass: [{
|
|
3263
|
+
type: Input
|
|
3264
|
+
}], labelClass: [{
|
|
3265
|
+
type: Input
|
|
3266
|
+
}], valueClass: [{
|
|
3267
|
+
type: Input
|
|
3268
|
+
}], emptyStateContainerClass: [{
|
|
3269
|
+
type: Input
|
|
3270
|
+
}], emptyStateTextClass: [{
|
|
3271
|
+
type: Input
|
|
3272
|
+
}], contractIcon: [{
|
|
3273
|
+
type: Input
|
|
3274
|
+
}], sectionTitle: [{
|
|
3275
|
+
type: Input
|
|
3276
|
+
}], isLoadingChanged: [{
|
|
3277
|
+
type: Output
|
|
3278
|
+
}], errorOccurred: [{
|
|
3279
|
+
type: Output
|
|
3280
|
+
}] } });
|
|
3281
|
+
|
|
3282
|
+
class ProfileJobInfoSalaryWidgetComponent {
|
|
3283
|
+
hrSelfWidgetsService;
|
|
3284
|
+
commonMethodsService;
|
|
3285
|
+
jobInformationSalary = null;
|
|
3286
|
+
isLoading = true;
|
|
3287
|
+
baseUrl = '';
|
|
3288
|
+
currencyCode = '';
|
|
3289
|
+
currencyDecimals = 2;
|
|
3290
|
+
headerIconClass = 'primary-icon-xl';
|
|
3291
|
+
headerTextClass = 'mt-2 field-secondary-label-lg';
|
|
3292
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3293
|
+
rowClass = 'row mt-4';
|
|
3294
|
+
columnClass = 'col-md-4 col-6 mt-4';
|
|
3295
|
+
grossSalaryColumnClass = 'col-md-4 col-6 my-4';
|
|
3296
|
+
labelClass = 'field-secondary-label-sm';
|
|
3297
|
+
valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
|
|
3298
|
+
currencyClass = 'fs-10 text-secondary fw-light';
|
|
3299
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3300
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3301
|
+
salaryIcon = faSackDollar;
|
|
3302
|
+
sectionTitle = 'Salary';
|
|
3303
|
+
isLoadingChanged = new EventEmitter();
|
|
3304
|
+
errorOccurred = new EventEmitter();
|
|
3305
|
+
constructor(hrSelfWidgetsService, commonMethodsService) {
|
|
3306
|
+
this.hrSelfWidgetsService = hrSelfWidgetsService;
|
|
3307
|
+
this.commonMethodsService = commonMethodsService;
|
|
3308
|
+
}
|
|
3309
|
+
ngOnInit() {
|
|
3310
|
+
if (!this.baseUrl) {
|
|
3311
|
+
this.isLoading = false;
|
|
3312
|
+
return;
|
|
3313
|
+
}
|
|
3314
|
+
this.isLoadingChanged.emit(true);
|
|
3315
|
+
this.hrSelfWidgetsService.getJobInformationSalary(this.baseUrl).subscribe({
|
|
3316
|
+
next: (response) => {
|
|
3317
|
+
this.isLoading = false;
|
|
3318
|
+
this.jobInformationSalary = response;
|
|
3319
|
+
this.isLoadingChanged.emit(false);
|
|
3320
|
+
},
|
|
3321
|
+
error: (error) => {
|
|
3322
|
+
this.isLoading = false;
|
|
3323
|
+
this.jobInformationSalary = null;
|
|
3324
|
+
this.isLoadingChanged.emit(false);
|
|
3325
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3326
|
+
}
|
|
3327
|
+
});
|
|
3328
|
+
}
|
|
3329
|
+
get basicSalary() {
|
|
3330
|
+
return this.jobInformationSalary?.BasicSalary ?? this.jobInformationSalary?.CurrentBasicSalary ?? null;
|
|
3331
|
+
}
|
|
3332
|
+
get allowances() {
|
|
3333
|
+
return this.jobInformationSalary?.Allowances ?? [];
|
|
3334
|
+
}
|
|
3335
|
+
formatAmount(value) {
|
|
3336
|
+
if (value == null) {
|
|
3337
|
+
return '—';
|
|
3338
|
+
}
|
|
3339
|
+
return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '—';
|
|
3340
|
+
}
|
|
3341
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoSalaryWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRCommonMethodsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3342
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoSalaryWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-salary-widget", inputs: { baseUrl: "baseUrl", currencyCode: "currencyCode", currencyDecimals: "currencyDecimals", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", grossSalaryColumnClass: "grossSalaryColumnClass", labelClass: "labelClass", valueClass: "valueClass", currencyClass: "currencyClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", salaryIcon: "salaryIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }] });
|
|
3343
|
+
}
|
|
3344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoSalaryWidgetComponent, decorators: [{
|
|
3345
|
+
type: Component,
|
|
3346
|
+
args: [{ selector: 'hr-profile-job-info-salary-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent], template: "@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n" }]
|
|
3347
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRCommonMethodsService }], propDecorators: { baseUrl: [{
|
|
3348
|
+
type: Input,
|
|
3349
|
+
args: [{ required: true }]
|
|
3350
|
+
}], currencyCode: [{
|
|
3351
|
+
type: Input
|
|
3352
|
+
}], currencyDecimals: [{
|
|
3353
|
+
type: Input
|
|
3354
|
+
}], headerIconClass: [{
|
|
3355
|
+
type: Input
|
|
3356
|
+
}], headerTextClass: [{
|
|
3357
|
+
type: Input
|
|
3358
|
+
}], headerDividerClass: [{
|
|
3359
|
+
type: Input
|
|
3360
|
+
}], rowClass: [{
|
|
3361
|
+
type: Input
|
|
3362
|
+
}], columnClass: [{
|
|
3363
|
+
type: Input
|
|
3364
|
+
}], grossSalaryColumnClass: [{
|
|
3365
|
+
type: Input
|
|
3366
|
+
}], labelClass: [{
|
|
3367
|
+
type: Input
|
|
3368
|
+
}], valueClass: [{
|
|
3369
|
+
type: Input
|
|
3370
|
+
}], currencyClass: [{
|
|
3371
|
+
type: Input
|
|
3372
|
+
}], emptyStateContainerClass: [{
|
|
3373
|
+
type: Input
|
|
3374
|
+
}], emptyStateTextClass: [{
|
|
3375
|
+
type: Input
|
|
3376
|
+
}], salaryIcon: [{
|
|
3377
|
+
type: Input
|
|
3378
|
+
}], sectionTitle: [{
|
|
3379
|
+
type: Input
|
|
3380
|
+
}], isLoadingChanged: [{
|
|
3381
|
+
type: Output
|
|
3382
|
+
}], errorOccurred: [{
|
|
3383
|
+
type: Output
|
|
3384
|
+
}] } });
|
|
3385
|
+
|
|
3386
|
+
class ProfileJobInfoServiceChargeWidgetComponent {
|
|
3387
|
+
hrSelfWidgetsService;
|
|
3388
|
+
commonMethodsService;
|
|
3389
|
+
jobInformationServiceCharge = null;
|
|
3390
|
+
isLoading = true;
|
|
3391
|
+
baseUrl = '';
|
|
3392
|
+
currencyCode = '';
|
|
3393
|
+
headerIconClass = 'primary-icon-xl';
|
|
3394
|
+
headerTextClass = 'mt-2 field-secondary-label-lg';
|
|
3395
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3396
|
+
rowClass = 'row mt-4 mb-5';
|
|
3397
|
+
columnClass = 'col-md-4 col-6';
|
|
3398
|
+
labelClass = 'field-secondary-label-sm';
|
|
3399
|
+
valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
|
|
3400
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3401
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3402
|
+
serviceChargeIcon = faEnvelopeOpenDollar;
|
|
3403
|
+
sectionTitle = 'ServiceCharge';
|
|
3404
|
+
isLoadingChanged = new EventEmitter();
|
|
3405
|
+
errorOccurred = new EventEmitter();
|
|
3406
|
+
constructor(hrSelfWidgetsService, commonMethodsService) {
|
|
3407
|
+
this.hrSelfWidgetsService = hrSelfWidgetsService;
|
|
3408
|
+
this.commonMethodsService = commonMethodsService;
|
|
3409
|
+
}
|
|
3410
|
+
ngOnInit() {
|
|
3411
|
+
if (!this.baseUrl) {
|
|
3412
|
+
this.isLoading = false;
|
|
3413
|
+
return;
|
|
3414
|
+
}
|
|
3415
|
+
this.isLoadingChanged.emit(true);
|
|
3416
|
+
this.hrSelfWidgetsService.getJobInformationServiceCharge(this.baseUrl).subscribe({
|
|
3417
|
+
next: (response) => {
|
|
3418
|
+
this.isLoading = false;
|
|
3419
|
+
this.jobInformationServiceCharge = response;
|
|
3420
|
+
this.isLoadingChanged.emit(false);
|
|
3421
|
+
},
|
|
3422
|
+
error: (error) => {
|
|
3423
|
+
this.isLoading = false;
|
|
3424
|
+
this.jobInformationServiceCharge = null;
|
|
3425
|
+
this.isLoadingChanged.emit(false);
|
|
3426
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3427
|
+
}
|
|
3428
|
+
});
|
|
3429
|
+
}
|
|
3430
|
+
get modeLabelKey() {
|
|
3431
|
+
const mode = this.jobInformationServiceCharge?.ServiceChargeEntitlementMode;
|
|
3432
|
+
switch (ServiceChargeEntitlementMode[mode]) {
|
|
3433
|
+
case ServiceChargeEntitlementMode.Points:
|
|
3434
|
+
return 'Points';
|
|
3435
|
+
case ServiceChargeEntitlementMode.SalaryRatio:
|
|
3436
|
+
return 'SalaryRatio';
|
|
3437
|
+
case ServiceChargeEntitlementMode.FixedAmount:
|
|
3438
|
+
return 'FixedAmount';
|
|
3439
|
+
case ServiceChargeEntitlementMode.FixedRate:
|
|
3440
|
+
return 'FixedRate';
|
|
3441
|
+
default:
|
|
3442
|
+
return 'ServiceCharge';
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3445
|
+
get value() {
|
|
3446
|
+
const data = this.jobInformationServiceCharge;
|
|
3447
|
+
if (!data || data.ServiceChargeValue == null) {
|
|
3448
|
+
return '—';
|
|
3449
|
+
}
|
|
3450
|
+
if (ServiceChargeEntitlementMode[data.ServiceChargeEntitlementMode] ===
|
|
3451
|
+
ServiceChargeEntitlementMode.FixedAmount) {
|
|
3452
|
+
return `${this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 4)} (${this.currencyCode})`;
|
|
3453
|
+
}
|
|
3454
|
+
return this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 2) || '—';
|
|
3455
|
+
}
|
|
3456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoServiceChargeWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRCommonMethodsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3457
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoServiceChargeWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-service-charge-widget", inputs: { baseUrl: "baseUrl", currencyCode: "currencyCode", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", serviceChargeIcon: "serviceChargeIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }] });
|
|
3458
|
+
}
|
|
3459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoServiceChargeWidgetComponent, decorators: [{
|
|
3460
|
+
type: Component,
|
|
3461
|
+
args: [{ selector: 'hr-profile-job-info-service-charge-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent], template: "@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n" }]
|
|
3462
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRCommonMethodsService }], propDecorators: { baseUrl: [{
|
|
3463
|
+
type: Input,
|
|
3464
|
+
args: [{ required: true }]
|
|
3465
|
+
}], currencyCode: [{
|
|
3466
|
+
type: Input
|
|
3467
|
+
}], headerIconClass: [{
|
|
3468
|
+
type: Input
|
|
3469
|
+
}], headerTextClass: [{
|
|
3470
|
+
type: Input
|
|
3471
|
+
}], headerDividerClass: [{
|
|
3472
|
+
type: Input
|
|
3473
|
+
}], rowClass: [{
|
|
3474
|
+
type: Input
|
|
3475
|
+
}], columnClass: [{
|
|
3476
|
+
type: Input
|
|
3477
|
+
}], labelClass: [{
|
|
3478
|
+
type: Input
|
|
3479
|
+
}], valueClass: [{
|
|
3480
|
+
type: Input
|
|
3481
|
+
}], emptyStateContainerClass: [{
|
|
3482
|
+
type: Input
|
|
3483
|
+
}], emptyStateTextClass: [{
|
|
3484
|
+
type: Input
|
|
3485
|
+
}], serviceChargeIcon: [{
|
|
3486
|
+
type: Input
|
|
3487
|
+
}], sectionTitle: [{
|
|
3488
|
+
type: Input
|
|
3489
|
+
}], isLoadingChanged: [{
|
|
3490
|
+
type: Output
|
|
3491
|
+
}], errorOccurred: [{
|
|
3492
|
+
type: Output
|
|
3493
|
+
}] } });
|
|
3494
|
+
|
|
2915
3495
|
class HRVacationSubordinatesPopupComponent {
|
|
2916
3496
|
http;
|
|
2917
3497
|
dataGrid;
|
|
@@ -3110,6 +3690,224 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
3110
3690
|
type: Output
|
|
3111
3691
|
}] } });
|
|
3112
3692
|
|
|
3693
|
+
class ProfileExperiencesWidgetComponent {
|
|
3694
|
+
service;
|
|
3695
|
+
experiences = [];
|
|
3696
|
+
isLoading = true;
|
|
3697
|
+
baseUrl = '';
|
|
3698
|
+
sectionTitle = 'experiences';
|
|
3699
|
+
viewIcon = faEye;
|
|
3700
|
+
downloadIcon = faFolderArrowDown;
|
|
3701
|
+
experienceIcon = faUsersRays;
|
|
3702
|
+
headerIconClass = 'primary-icon-xl';
|
|
3703
|
+
headerTextClass = 'fs-16 mt-2 text-secondary';
|
|
3704
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3705
|
+
rowClass = 'row mt-4';
|
|
3706
|
+
itemRowClass = 'row col-10 mt-3';
|
|
3707
|
+
itemColumnClass = 'col-3';
|
|
3708
|
+
labelClass = 'field-secondary-label-sm';
|
|
3709
|
+
valueClass = 'text-dark-gray fs-14 text-ellipsis-one-line cursor-pointer';
|
|
3710
|
+
actionsColumnClass = 'col-2 mt-3';
|
|
3711
|
+
viewIconClass = 'fs-15 text-dark cursor-pointer';
|
|
3712
|
+
downloadIconClass = 'fs-15 text-dark cursor-pointer mx-2';
|
|
3713
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3714
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3715
|
+
isLoadingChanged = new EventEmitter();
|
|
3716
|
+
attachmentViewed = new EventEmitter();
|
|
3717
|
+
attachmentDownloaded = new EventEmitter();
|
|
3718
|
+
errorOccurred = new EventEmitter();
|
|
3719
|
+
constructor(service) {
|
|
3720
|
+
this.service = service;
|
|
3721
|
+
}
|
|
3722
|
+
ngOnInit() {
|
|
3723
|
+
if (!this.baseUrl) {
|
|
3724
|
+
this.isLoading = false;
|
|
3725
|
+
return;
|
|
3726
|
+
}
|
|
3727
|
+
this.isLoadingChanged.emit(true);
|
|
3728
|
+
this.service.getEmployeeExperiences(this.baseUrl).subscribe({
|
|
3729
|
+
next: (res) => {
|
|
3730
|
+
this.experiences = res ?? [];
|
|
3731
|
+
this.isLoading = false;
|
|
3732
|
+
this.isLoadingChanged.emit(false);
|
|
3733
|
+
},
|
|
3734
|
+
error: (error) => {
|
|
3735
|
+
this.experiences = [];
|
|
3736
|
+
this.isLoading = false;
|
|
3737
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3738
|
+
this.isLoadingChanged.emit(false);
|
|
3739
|
+
}
|
|
3740
|
+
});
|
|
3741
|
+
}
|
|
3742
|
+
onAttachmentView(file) {
|
|
3743
|
+
this.attachmentViewed.emit(file);
|
|
3744
|
+
}
|
|
3745
|
+
onAttachmentDownload(file) {
|
|
3746
|
+
this.attachmentDownloaded.emit(file);
|
|
3747
|
+
}
|
|
3748
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileExperiencesWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3749
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileExperiencesWidgetComponent, isStandalone: true, selector: "hr-profile-experiences-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", viewIcon: "viewIcon", downloadIcon: "downloadIcon", experienceIcon: "experienceIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", itemRowClass: "itemRowClass", itemColumnClass: "itemColumnClass", labelClass: "labelClass", valueClass: "valueClass", actionsColumnClass: "actionsColumnClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(experiences.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(experience.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
|
|
3750
|
+
}
|
|
3751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileExperiencesWidgetComponent, decorators: [{
|
|
3752
|
+
type: Component,
|
|
3753
|
+
args: [{ selector: 'hr-profile-experiences-widget', standalone: true, imports: [CommonModule, SkySectionDividerComponent,
|
|
3754
|
+
HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(experiences.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(experience.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n" }]
|
|
3755
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
|
|
3756
|
+
type: Input
|
|
3757
|
+
}], sectionTitle: [{
|
|
3758
|
+
type: Input
|
|
3759
|
+
}], viewIcon: [{
|
|
3760
|
+
type: Input
|
|
3761
|
+
}], downloadIcon: [{
|
|
3762
|
+
type: Input
|
|
3763
|
+
}], experienceIcon: [{
|
|
3764
|
+
type: Input
|
|
3765
|
+
}], headerIconClass: [{
|
|
3766
|
+
type: Input
|
|
3767
|
+
}], headerTextClass: [{
|
|
3768
|
+
type: Input
|
|
3769
|
+
}], headerDividerClass: [{
|
|
3770
|
+
type: Input
|
|
3771
|
+
}], rowClass: [{
|
|
3772
|
+
type: Input
|
|
3773
|
+
}], itemRowClass: [{
|
|
3774
|
+
type: Input
|
|
3775
|
+
}], itemColumnClass: [{
|
|
3776
|
+
type: Input
|
|
3777
|
+
}], labelClass: [{
|
|
3778
|
+
type: Input
|
|
3779
|
+
}], valueClass: [{
|
|
3780
|
+
type: Input
|
|
3781
|
+
}], actionsColumnClass: [{
|
|
3782
|
+
type: Input
|
|
3783
|
+
}], viewIconClass: [{
|
|
3784
|
+
type: Input
|
|
3785
|
+
}], downloadIconClass: [{
|
|
3786
|
+
type: Input
|
|
3787
|
+
}], emptyStateContainerClass: [{
|
|
3788
|
+
type: Input
|
|
3789
|
+
}], emptyStateTextClass: [{
|
|
3790
|
+
type: Input
|
|
3791
|
+
}], isLoadingChanged: [{
|
|
3792
|
+
type: Output
|
|
3793
|
+
}], attachmentViewed: [{
|
|
3794
|
+
type: Output
|
|
3795
|
+
}], attachmentDownloaded: [{
|
|
3796
|
+
type: Output
|
|
3797
|
+
}], errorOccurred: [{
|
|
3798
|
+
type: Output
|
|
3799
|
+
}] } });
|
|
3800
|
+
|
|
3801
|
+
class ProfileDegreesWidgetComponent {
|
|
3802
|
+
service;
|
|
3803
|
+
degrees = [];
|
|
3804
|
+
isLoading = true;
|
|
3805
|
+
baseUrl = '';
|
|
3806
|
+
sectionTitle = 'Degrees';
|
|
3807
|
+
degreesIcon = faFileCertificate;
|
|
3808
|
+
viewIcon = faEye;
|
|
3809
|
+
downloadIcon = faFolderArrowDown;
|
|
3810
|
+
headerIconClass = 'primary-icon-xl';
|
|
3811
|
+
headerTextClass = 'fs-16 mt-2 text-secondary';
|
|
3812
|
+
headerDividerClass = 'flex-grow-1 ms-2';
|
|
3813
|
+
rowClass = 'row mt-4';
|
|
3814
|
+
itemRowClass = 'row col-10 mt-3';
|
|
3815
|
+
itemColumnClass = 'col-3';
|
|
3816
|
+
labelClass = 'field-secondary-label-sm';
|
|
3817
|
+
valueClass = 'text-dark-gray fs-14';
|
|
3818
|
+
valueEllipsisClass = 'text-dark-gray fs-14 text-ellipsis-one-line cursor-pointer';
|
|
3819
|
+
actionsColumnClass = 'col-2 align-items-end mt-3';
|
|
3820
|
+
viewIconClass = 'fs-15 text-dark cursor-pointer';
|
|
3821
|
+
downloadIconClass = 'fs-15 mx-3 text-dark cursor-pointer';
|
|
3822
|
+
emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
|
|
3823
|
+
emptyStateTextClass = 'field-secondary-label-md';
|
|
3824
|
+
isLoadingChanged = new EventEmitter();
|
|
3825
|
+
attachmentViewed = new EventEmitter();
|
|
3826
|
+
attachmentDownloaded = new EventEmitter();
|
|
3827
|
+
errorOccurred = new EventEmitter();
|
|
3828
|
+
constructor(service) {
|
|
3829
|
+
this.service = service;
|
|
3830
|
+
}
|
|
3831
|
+
ngOnInit() {
|
|
3832
|
+
if (!this.baseUrl) {
|
|
3833
|
+
this.isLoading = false;
|
|
3834
|
+
return;
|
|
3835
|
+
}
|
|
3836
|
+
this.isLoadingChanged.emit(true);
|
|
3837
|
+
this.service.getEmployeeDegrees(this.baseUrl).subscribe({
|
|
3838
|
+
next: (res) => {
|
|
3839
|
+
this.degrees = res ?? [];
|
|
3840
|
+
this.isLoading = false;
|
|
3841
|
+
this.isLoadingChanged.emit(false);
|
|
3842
|
+
},
|
|
3843
|
+
error: (error) => {
|
|
3844
|
+
this.degrees = [];
|
|
3845
|
+
this.isLoading = false;
|
|
3846
|
+
this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
|
|
3847
|
+
this.isLoadingChanged.emit(false);
|
|
3848
|
+
}
|
|
3849
|
+
});
|
|
3850
|
+
}
|
|
3851
|
+
onAttachmentView(file) {
|
|
3852
|
+
this.attachmentViewed.emit(file);
|
|
3853
|
+
}
|
|
3854
|
+
onAttachmentDownload(file) {
|
|
3855
|
+
this.attachmentDownloaded.emit(file);
|
|
3856
|
+
}
|
|
3857
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileDegreesWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
3858
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileDegreesWidgetComponent, isStandalone: true, selector: "hr-profile-degrees-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", degreesIcon: "degreesIcon", viewIcon: "viewIcon", downloadIcon: "downloadIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", itemRowClass: "itemRowClass", itemColumnClass: "itemColumnClass", labelClass: "labelClass", valueClass: "valueClass", valueEllipsisClass: "valueEllipsisClass", actionsColumnClass: "actionsColumnClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(degrees.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (qualification of degrees; track qualification){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(qualification.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n}@else{\r\n\r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n </sky-empty-design-card>\r\n\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
|
|
3859
|
+
}
|
|
3860
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileDegreesWidgetComponent, decorators: [{
|
|
3861
|
+
type: Component,
|
|
3862
|
+
args: [{ selector: 'hr-profile-degrees-widget', standalone: true, imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(degrees.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (qualification of degrees; track qualification){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(qualification.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n}@else{\r\n\r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n </sky-empty-design-card>\r\n\r\n}\r\n" }]
|
|
3863
|
+
}], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
|
|
3864
|
+
type: Input
|
|
3865
|
+
}], sectionTitle: [{
|
|
3866
|
+
type: Input
|
|
3867
|
+
}], degreesIcon: [{
|
|
3868
|
+
type: Input
|
|
3869
|
+
}], viewIcon: [{
|
|
3870
|
+
type: Input
|
|
3871
|
+
}], downloadIcon: [{
|
|
3872
|
+
type: Input
|
|
3873
|
+
}], headerIconClass: [{
|
|
3874
|
+
type: Input
|
|
3875
|
+
}], headerTextClass: [{
|
|
3876
|
+
type: Input
|
|
3877
|
+
}], headerDividerClass: [{
|
|
3878
|
+
type: Input
|
|
3879
|
+
}], rowClass: [{
|
|
3880
|
+
type: Input
|
|
3881
|
+
}], itemRowClass: [{
|
|
3882
|
+
type: Input
|
|
3883
|
+
}], itemColumnClass: [{
|
|
3884
|
+
type: Input
|
|
3885
|
+
}], labelClass: [{
|
|
3886
|
+
type: Input
|
|
3887
|
+
}], valueClass: [{
|
|
3888
|
+
type: Input
|
|
3889
|
+
}], valueEllipsisClass: [{
|
|
3890
|
+
type: Input
|
|
3891
|
+
}], actionsColumnClass: [{
|
|
3892
|
+
type: Input
|
|
3893
|
+
}], viewIconClass: [{
|
|
3894
|
+
type: Input
|
|
3895
|
+
}], downloadIconClass: [{
|
|
3896
|
+
type: Input
|
|
3897
|
+
}], emptyStateContainerClass: [{
|
|
3898
|
+
type: Input
|
|
3899
|
+
}], emptyStateTextClass: [{
|
|
3900
|
+
type: Input
|
|
3901
|
+
}], isLoadingChanged: [{
|
|
3902
|
+
type: Output
|
|
3903
|
+
}], attachmentViewed: [{
|
|
3904
|
+
type: Output
|
|
3905
|
+
}], attachmentDownloaded: [{
|
|
3906
|
+
type: Output
|
|
3907
|
+
}], errorOccurred: [{
|
|
3908
|
+
type: Output
|
|
3909
|
+
}] } });
|
|
3910
|
+
|
|
3113
3911
|
/*
|
|
3114
3912
|
* Public API Surface of shared-ui
|
|
3115
3913
|
*/
|
|
@@ -3118,5 +3916,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
|
|
|
3118
3916
|
* Generated bundle index. Do not edit.
|
|
3119
3917
|
*/
|
|
3120
3918
|
|
|
3121
|
-
export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyUpcomingEventsWidgetComponent, MyVacationTeamWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
|
|
3919
|
+
export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyUpcomingEventsWidgetComponent, MyVacationTeamWidgetComponent, ProfileBankInfoWidgetComponent, ProfileDegreesWidgetComponent, ProfileExperiencesWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
|
|
3122
3920
|
//# sourceMappingURL=skysoftware-co-bayan-hr-widgets-ui.mjs.map
|