@skysoftware-co/bayan-hr-widgets-ui 1.0.34 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/README.md +233 -11
  2. package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs +851 -14
  3. package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs.map +1 -1
  4. package/lib/entitlements/profile-entitlements-indemnity-widget/profile-entitlements-indemnity-widget.component.d.ts +32 -0
  5. package/lib/entitlements/profile-entitlements-medical-insurance-widget/components/medical-insurance-card/medical-insurance-card.component.d.ts +19 -0
  6. package/lib/entitlements/profile-entitlements-medical-insurance-widget/profile-entitlements-medical-insurance-widget.component.d.ts +36 -0
  7. package/lib/entitlements/profile-entitlements-others-widget/profile-entitlements-others-widget.component.d.ts +26 -0
  8. package/lib/entitlements/profile-entitlements-ticket-widget/components/ticket-card/ticket-card.component.d.ts +17 -0
  9. package/lib/entitlements/profile-entitlements-ticket-widget/profile-entitlements-ticket-widget.component.d.ts +34 -0
  10. package/lib/entitlements/profile-entitlements-vacations-widget/profile-entitlements-vacations-widget.component.d.ts +29 -0
  11. package/lib/profile-employee-dependents-widget/profile-employee-dependents-component.d.ts +22 -0
  12. package/lib/services/hr-self-widgets.service.d.ts +2 -0
  13. package/lib/shared/components/widget-card/widget-card-component.d.ts +10 -0
  14. package/lib/shared/services/entitlements-cache.service.d.ts +6 -0
  15. package/lib/shared/types/common.d.ts +8 -8
  16. package/package.json +1 -1
  17. package/public-api.d.ts +7 -0
  18. package/lib/my-vacation-team-widget/components/vacation-subordinates-popup/vacation-subordinates-popup.component.d.ts +0 -38
  19. package/lib/my-vacation-team-widget/my-vacation-team-widget.component.d.ts +0 -33
@@ -10,8 +10,8 @@ import { BayanEmployeeBadgeComponent } from '@skysoftware-co/bayan-components-ui
10
10
  import { SkyShortcutIconComponent, SkySectionDividerComponent, SkyEmptyDesignCardComponent, SkyWidgetSectionItemComponent } from '@skysoftware-co/sky-components-ui';
11
11
  import * as i1 from '@angular/common/http';
12
12
  import { HttpParams } from '@angular/common/http';
13
- import { map, shareReplay, catchError, throwError, lastValueFrom } from 'rxjs';
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';
13
+ import { map, shareReplay, catchError, throwError, lastValueFrom, forkJoin } from 'rxjs';
14
+ import { faCakeCandles, faTreePalm, faCalendarStar, faMoneyCheckDollarPen, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faFileSignature, faSackDollar, faEnvelopeOpenDollar, faXmark, faFolderArrowDown, faUsersRays, faFileCertificate, faUsersLine, faIslandTropical, faTicketsAirline, faNotesMedical, faGrid2Plus } from '@fortawesome/pro-light-svg-icons';
15
15
  import * as i2 from 'devextreme-angular/core';
16
16
  import { faCircle, faCalendarDays, faEye } from '@fortawesome/pro-regular-svg-icons';
17
17
  import moment from 'moment';
@@ -82,9 +82,9 @@ var UpcomingEvents$2 = "Upcoming events";
82
82
  var Birthday$2 = "Birthday";
83
83
  var PublicHoliday$2 = "Public holiday";
84
84
  var During$2 = "during";
85
- var isIn$2 = "Is in";
86
- var is$2 = "Is";
87
- var In$2 = "In";
85
+ var isIn$2 = "is in";
86
+ var is$2 = "is";
87
+ var In$2 = "in";
88
88
  var NoEvents$2 = "There are no events";
89
89
  var All$2 = "All";
90
90
  var ViewAll$2 = "View all";
@@ -189,7 +189,30 @@ var TerminationReason$2 = "Termination reason";
189
189
  var ThereIsNoDegreesYet$2 = "There are no degrees yet";
190
190
  var ThereIsNoExperiencesYet$2 = "There are no experiences yet";
191
191
  var ThereIsNoDependentsYet$2 = "There are no dependents yet";
192
- var DependentTypeName$2 = "Dependent Type";
192
+ var DependentTypeName$2 = "Dependent type";
193
+ var Vacations$2 = "Vacations";
194
+ var Indemnity$2 = "Indemnity";
195
+ var MedicalInsurance$2 = "Medical insurance";
196
+ var Tickets$2 = "Tickets";
197
+ var Others$2 = "Others";
198
+ var Type$2 = "Type";
199
+ var Entitlement$2 = "Entitlement";
200
+ var IndemnityEligibility$2 = "Indemnity eligibility";
201
+ var OvertimeEligibility$2 = "Overtime eligibility";
202
+ var SocialSecurityEligibility$2 = "Social security eligibility";
203
+ var Class$2 = "Class";
204
+ var Sector$2 = "Sector";
205
+ var Me$2 = "Me";
206
+ var Eligible$2 = "Eligible";
207
+ var NotEligible$2 = "Not eligible";
208
+ var Member$2 = "Member";
209
+ var NotMember$2 = "Not member";
210
+ var NotCoveredByMedicalInsurance$2 = "Not covered by medical insurance";
211
+ var NoTicketEntitlement$2 = "No ticket entitlement";
212
+ var CoverageDate$2 = "Coverage date";
213
+ var TotalEmployeeShare$2 = "Total employee share";
214
+ var TotalEmployerShare$2 = "Total employer share";
215
+ var Dependents$2 = "Dependents";
193
216
  var en = {
194
217
  ReportingTo: ReportingTo$2,
195
218
  NotAnknown: NotAnknown$2,
@@ -313,7 +336,32 @@ var en = {
313
336
  ThereIsNoDegreesYet: ThereIsNoDegreesYet$2,
314
337
  ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$2,
315
338
  ThereIsNoDependentsYet: ThereIsNoDependentsYet$2,
316
- DependentTypeName: DependentTypeName$2
339
+ DependentTypeName: DependentTypeName$2,
340
+ Vacations: Vacations$2,
341
+ Indemnity: Indemnity$2,
342
+ MedicalInsurance: MedicalInsurance$2,
343
+ Tickets: Tickets$2,
344
+ Others: Others$2,
345
+ Type: Type$2,
346
+ Entitlement: Entitlement$2,
347
+ IndemnityEligibility: IndemnityEligibility$2,
348
+ OvertimeEligibility: OvertimeEligibility$2,
349
+ SocialSecurityEligibility: SocialSecurityEligibility$2,
350
+ Class: Class$2,
351
+ Sector: Sector$2,
352
+ Me: Me$2,
353
+ Eligible: Eligible$2,
354
+ NotEligible: NotEligible$2,
355
+ Member: Member$2,
356
+ NotMember: NotMember$2,
357
+ "There'sNoInformationInThisSectionYet": "There's no information in this section yet",
358
+ NotCoveredByMedicalInsurance: NotCoveredByMedicalInsurance$2,
359
+ NoTicketEntitlement: NoTicketEntitlement$2,
360
+ "Number": "Number",
361
+ CoverageDate: CoverageDate$2,
362
+ TotalEmployeeShare: TotalEmployeeShare$2,
363
+ TotalEmployerShare: TotalEmployerShare$2,
364
+ Dependents: Dependents$2
317
365
  };
318
366
 
319
367
  var ReportingTo$1 = "مفوض الى";
@@ -435,6 +483,29 @@ var ThereIsNoDegreesYet$1 = "لا توجد مؤهلات علمية بعد";
435
483
  var ThereIsNoExperiencesYet$1 = "لا توجد خبرات بعد";
436
484
  var ThereIsNoDependentsYet$1 = "لا يوجد معالين حتى الآن";
437
485
  var DependentTypeName$1 = "نوع المعال";
486
+ var Vacations$1 = "الاجازات";
487
+ var Indemnity$1 = "التعويض";
488
+ var MedicalInsurance$1 = "التأمين الطبي";
489
+ var Tickets$1 = "تذاكر";
490
+ var Others$1 = "آخرين";
491
+ var Type$1 = "النوع";
492
+ var Entitlement$1 = "الاستحقاق";
493
+ var IndemnityEligibility$1 = "أهلية التعويض";
494
+ var OvertimeEligibility$1 = "أهلية العمل الإضافي";
495
+ var SocialSecurityEligibility$1 = "أهلية الضمان الاجتماعي";
496
+ var Class$1 = "الفئة";
497
+ var Sector$1 = "القطاع";
498
+ var Me$1 = "أنا";
499
+ var Eligible$1 = "مؤهل";
500
+ var NotEligible$1 = "غير مؤهل";
501
+ var Member$1 = "عضو";
502
+ var NotMember$1 = "ليس عضوًا";
503
+ var NotCoveredByMedicalInsurance$1 = "غير مشمول بالتأمين الطبي";
504
+ var NoTicketEntitlement$1 = "لا يوجد استحقاق تذكرة";
505
+ var CoverageDate$1 = "تاريخ التغطية";
506
+ var TotalEmployeeShare$1 = "إجمالي حصة الموظف";
507
+ var TotalEmployerShare$1 = "إجمالي حصة صاحب العمل";
508
+ var Dependents$1 = "المعالين";
438
509
  var ar = {
439
510
  ReportingTo: ReportingTo$1,
440
511
  NotAnknown: NotAnknown$1,
@@ -557,7 +628,32 @@ var ar = {
557
628
  ThereIsNoDegreesYet: ThereIsNoDegreesYet$1,
558
629
  ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$1,
559
630
  ThereIsNoDependentsYet: ThereIsNoDependentsYet$1,
560
- DependentTypeName: DependentTypeName$1
631
+ DependentTypeName: DependentTypeName$1,
632
+ Vacations: Vacations$1,
633
+ Indemnity: Indemnity$1,
634
+ MedicalInsurance: MedicalInsurance$1,
635
+ Tickets: Tickets$1,
636
+ Others: Others$1,
637
+ Type: Type$1,
638
+ Entitlement: Entitlement$1,
639
+ IndemnityEligibility: IndemnityEligibility$1,
640
+ OvertimeEligibility: OvertimeEligibility$1,
641
+ SocialSecurityEligibility: SocialSecurityEligibility$1,
642
+ Class: Class$1,
643
+ Sector: Sector$1,
644
+ Me: Me$1,
645
+ Eligible: Eligible$1,
646
+ NotEligible: NotEligible$1,
647
+ Member: Member$1,
648
+ NotMember: NotMember$1,
649
+ "There'sNoInformationInThisSectionYet": "لا توجد معلومات في هذا القسم حتى الآن",
650
+ NotCoveredByMedicalInsurance: NotCoveredByMedicalInsurance$1,
651
+ NoTicketEntitlement: NoTicketEntitlement$1,
652
+ "Number": "العدد",
653
+ CoverageDate: CoverageDate$1,
654
+ TotalEmployeeShare: TotalEmployeeShare$1,
655
+ TotalEmployerShare: TotalEmployerShare$1,
656
+ Dependents: Dependents$1
561
657
  };
562
658
 
563
659
  var ReportingTo = "Rapport à";
@@ -680,6 +776,29 @@ var ThereIsNoDegreesYet = "Il n'y a pas encore de diplomes";
680
776
  var ThereIsNoExperiencesYet = "Il n'y a pas encore d'experiences";
681
777
  var ThereIsNoDependentsYet = "Il n'y a pas encore de personnes à charge";
682
778
  var DependentTypeName = "Type de personne à charge";
779
+ var Vacations = "Vacances";
780
+ var Indemnity = "Indemnité";
781
+ var MedicalInsurance = "Assurance médicale";
782
+ var Tickets = "Billets";
783
+ var Others = "Autres";
784
+ var Type = "Type";
785
+ var Entitlement = "Droit";
786
+ var IndemnityEligibility = "Admissibilité à l'indemnisation";
787
+ var OvertimeEligibility = "Admissibilité aux heures supplémentaires";
788
+ var SocialSecurityEligibility = "Admissibilité à la sécurité sociale";
789
+ var Class = "Classe";
790
+ var Sector = "Secteur";
791
+ var Me = "Moi";
792
+ var Eligible = "Admissible";
793
+ var NotEligible = "Non éligible";
794
+ var Member = "Membre";
795
+ var NotMember = "Non membre";
796
+ var NotCoveredByMedicalInsurance = "Non couvert par l'assurance médicale";
797
+ var NoTicketEntitlement = "Aucun droit au billet";
798
+ var CoverageDate = "Date de couverture";
799
+ var TotalEmployeeShare = "Part totale des employés";
800
+ var TotalEmployerShare = "Part totale de l'employeur";
801
+ var Dependents = "Personnes à charge";
683
802
  var fr = {
684
803
  ReportingTo: ReportingTo,
685
804
  NotAnknown: NotAnknown,
@@ -803,7 +922,32 @@ var fr = {
803
922
  ThereIsNoDegreesYet: ThereIsNoDegreesYet,
804
923
  ThereIsNoExperiencesYet: ThereIsNoExperiencesYet,
805
924
  ThereIsNoDependentsYet: ThereIsNoDependentsYet,
806
- DependentTypeName: DependentTypeName
925
+ DependentTypeName: DependentTypeName,
926
+ Vacations: Vacations,
927
+ Indemnity: Indemnity,
928
+ MedicalInsurance: MedicalInsurance,
929
+ Tickets: Tickets,
930
+ Others: Others,
931
+ Type: Type,
932
+ Entitlement: Entitlement,
933
+ IndemnityEligibility: IndemnityEligibility,
934
+ OvertimeEligibility: OvertimeEligibility,
935
+ SocialSecurityEligibility: SocialSecurityEligibility,
936
+ Class: Class,
937
+ Sector: Sector,
938
+ Me: Me,
939
+ Eligible: Eligible,
940
+ NotEligible: NotEligible,
941
+ Member: Member,
942
+ NotMember: NotMember,
943
+ "There'sNoInformationInThisSectionYet": "Il n'y a pas encore d'informations dans cette section",
944
+ NotCoveredByMedicalInsurance: NotCoveredByMedicalInsurance,
945
+ NoTicketEntitlement: NoTicketEntitlement,
946
+ "Number": "Nombre",
947
+ CoverageDate: CoverageDate,
948
+ TotalEmployeeShare: TotalEmployeeShare,
949
+ TotalEmployerShare: TotalEmployerShare,
950
+ Dependents: Dependents
807
951
  };
808
952
 
809
953
  const BUILT_IN_LEXICONS = { en, ar, fr };
@@ -911,6 +1055,8 @@ class EntitlementsCacheService {
911
1055
  indemnityDetails$ = null;
912
1056
  ticketDetails$ = null;
913
1057
  medicalInsuranceDetails$ = null;
1058
+ overtimeDetails$ = null;
1059
+ socialSecurityDetails$ = null;
914
1060
  getVacationDetails(baseUrl) {
915
1061
  return this.baseUrl === baseUrl ? this.vacationDetails$ : null;
916
1062
  }
@@ -939,12 +1085,28 @@ class EntitlementsCacheService {
939
1085
  this.ensureBaseUrl(baseUrl);
940
1086
  this.medicalInsuranceDetails$ = value;
941
1087
  }
1088
+ getOvertimeDetails(baseUrl) {
1089
+ return this.baseUrl === baseUrl ? this.overtimeDetails$ : null;
1090
+ }
1091
+ setOvertimeDetails(baseUrl, value) {
1092
+ this.ensureBaseUrl(baseUrl);
1093
+ this.overtimeDetails$ = value;
1094
+ }
1095
+ getSocialSecurityDetails(baseUrl) {
1096
+ return this.baseUrl === baseUrl ? this.socialSecurityDetails$ : null;
1097
+ }
1098
+ setSocialSecurityDetails(baseUrl, value) {
1099
+ this.ensureBaseUrl(baseUrl);
1100
+ this.socialSecurityDetails$ = value;
1101
+ }
942
1102
  clear() {
943
1103
  this.baseUrl = '';
944
1104
  this.vacationDetails$ = null;
945
1105
  this.indemnityDetails$ = null;
946
1106
  this.ticketDetails$ = null;
947
1107
  this.medicalInsuranceDetails$ = null;
1108
+ this.overtimeDetails$ = null;
1109
+ this.socialSecurityDetails$ = null;
948
1110
  }
949
1111
  ensureBaseUrl(baseUrl) {
950
1112
  if (this.baseUrl && this.baseUrl !== baseUrl) {
@@ -1458,6 +1620,42 @@ class HRSelfWidgetsService {
1458
1620
  this.entitlementsCacheService.setMedicalInsuranceDetails(baseUrl, request$);
1459
1621
  return request$;
1460
1622
  }
1623
+ getEntitlementsOvertime(baseUrl, forceRefresh = false) {
1624
+ if (!forceRefresh) {
1625
+ const cachedRequest$ = this.entitlementsCacheService.getOvertimeDetails(baseUrl);
1626
+ if (cachedRequest$) {
1627
+ return cachedRequest$;
1628
+ }
1629
+ }
1630
+ const request$ = this.http
1631
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/overtime`, {
1632
+ headers: this.headers
1633
+ })
1634
+ .pipe(shareReplay(1), catchError((error) => {
1635
+ this.entitlementsCacheService.clear();
1636
+ return throwError(() => error);
1637
+ }));
1638
+ this.entitlementsCacheService.setOvertimeDetails(baseUrl, request$);
1639
+ return request$;
1640
+ }
1641
+ getEntitlementsSocialSecurity(baseUrl, forceRefresh = false) {
1642
+ if (!forceRefresh) {
1643
+ const cachedRequest$ = this.entitlementsCacheService.getSocialSecurityDetails(baseUrl);
1644
+ if (cachedRequest$) {
1645
+ return cachedRequest$;
1646
+ }
1647
+ }
1648
+ const request$ = this.http
1649
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/social-security`, {
1650
+ headers: this.headers
1651
+ })
1652
+ .pipe(shareReplay(1), catchError((error) => {
1653
+ this.entitlementsCacheService.clear();
1654
+ return throwError(() => error);
1655
+ }));
1656
+ this.entitlementsCacheService.setSocialSecurityDetails(baseUrl, request$);
1657
+ return request$;
1658
+ }
1461
1659
  getEmployeeDegrees(baseUrl, forceRefresh = false) {
1462
1660
  if (!forceRefresh) {
1463
1661
  const cachedRequest$ = this.qualificationsCacheService.getDegrees(baseUrl);
@@ -2848,8 +3046,8 @@ class ProfilePersonalInfoContactWidgetComponent {
2848
3046
  headerTextClass = 'fs-16 mt-2 text-secondary';
2849
3047
  headerDividerClass = 'flex-grow-1 ms-2';
2850
3048
  rowClass = 'row mt-4';
2851
- columnClass = 'col-md-4 col-6';
2852
- responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
3049
+ columnClass = 'col-6';
3050
+ responsiveTopSpacingColumnClass = 'col-6 mt-4';
2853
3051
  topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
2854
3052
  topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
2855
3053
  labelClass = 'field-secondary-label-sm';
@@ -2888,11 +3086,11 @@ class ProfilePersonalInfoContactWidgetComponent {
2888
3086
  });
2889
3087
  }
2890
3088
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfilePersonalInfoContactWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2891
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfilePersonalInfoContactWidgetComponent, isStandalone: true, selector: "hr-profile-personal-info-contact-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emergencyContactLabelClass: "emergencyContactLabelClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", contactIcon: "contactIcon", emergencyContactIcon: "emergencyContactIcon", sectionTitle: "sectionTitle", showEmergencyContact: "showEmergencyContact", emergencyContactRowClass: "emergencyContactRowClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\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(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\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]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n \r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n &#x2022; {{'EmergencyContact' | HRTranslate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\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]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\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]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\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)) : ('ThereIsNoContactYet' | HRTranslate)\">\r\n</sky-empty-design-card>\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: "ngmodule", type: FontAwesomeModule }, { 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"] }] });
3089
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfilePersonalInfoContactWidgetComponent, isStandalone: true, selector: "hr-profile-personal-info-contact-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emergencyContactLabelClass: "emergencyContactLabelClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", contactIcon: "contactIcon", emergencyContactIcon: "emergencyContactIcon", sectionTitle: "sectionTitle", showEmergencyContact: "showEmergencyContact", emergencyContactRowClass: "emergencyContactRowClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\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(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\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]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\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]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\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]=\"'BusinessEmail'\"\r\n [value]=\"employeePersonalInfoContactDetails.BusinessEmail\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n &#x2022; {{'EmergencyContact' | HRTranslate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\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]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\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]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\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)) : ('ThereIsNoContactYet' | HRTranslate)\">\r\n</sky-empty-design-card>\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: "ngmodule", type: FontAwesomeModule }, { 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"] }] });
2892
3090
  }
2893
3091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfilePersonalInfoContactWidgetComponent, decorators: [{
2894
3092
  type: Component,
2895
- args: [{ selector: 'hr-profile-personal-info-contact-widget', standalone: true, imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\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(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\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]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n \r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n &#x2022; {{'EmergencyContact' | HRTranslate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\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]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\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]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\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)) : ('ThereIsNoContactYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}" }]
3093
+ args: [{ selector: 'hr-profile-personal-info-contact-widget', standalone: true, imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\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(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\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]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\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]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\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]=\"'BusinessEmail'\"\r\n [value]=\"employeePersonalInfoContactDetails.BusinessEmail\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n &#x2022; {{'EmergencyContact' | HRTranslate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\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]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\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]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\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)) : ('ThereIsNoContactYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}" }]
2896
3094
  }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
2897
3095
  type: Input,
2898
3096
  args: [{ required: true }]
@@ -4042,6 +4240,645 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4042
4240
  type: Output
4043
4241
  }] } });
4044
4242
 
4243
+ class WidgetCardComponent {
4244
+ cardClass = 'bg-white shadow-sm p-3 border-1 border';
4245
+ height = 110;
4246
+ contentTemplate;
4247
+ context;
4248
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4249
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetCardComponent, isStandalone: true, selector: "hr-widget-card", inputs: { cardClass: "cardClass", height: "height", contentTemplate: "contentTemplate", context: "context" }, ngImport: i0, template: "<div [class]=\"cardClass\" [style.height.px]=\"height\" style=\"overflow: hidden;\">\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: context\">\n </ng-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
4250
+ }
4251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetCardComponent, decorators: [{
4252
+ type: Component,
4253
+ args: [{ selector: 'hr-widget-card', standalone: true, imports: [CommonModule], template: "<div [class]=\"cardClass\" [style.height.px]=\"height\" style=\"overflow: hidden;\">\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: context\">\n </ng-container>\n</div>\n" }]
4254
+ }], propDecorators: { cardClass: [{
4255
+ type: Input
4256
+ }], height: [{
4257
+ type: Input
4258
+ }], contentTemplate: [{
4259
+ type: Input
4260
+ }], context: [{
4261
+ type: Input
4262
+ }] } });
4263
+
4264
+ class DependentsWidgetComponent {
4265
+ service;
4266
+ baseUrl = '';
4267
+ sectionTitle = 'Dependents';
4268
+ icon = faUsersLine;
4269
+ headerIconClass = 'primary-icon-xl';
4270
+ headerTextClass = 'fs-16 mt-2 text-secondary';
4271
+ headerDividerClass = 'flex-grow-1 ms-2';
4272
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
4273
+ emptyStateTextClass = 'field-secondary-label-md';
4274
+ dependents = [];
4275
+ isLoading = true;
4276
+ isLoadingChanged = new EventEmitter();
4277
+ constructor(service) {
4278
+ this.service = service;
4279
+ }
4280
+ ngOnInit() {
4281
+ if (!this.baseUrl) {
4282
+ this.isLoading = false;
4283
+ return;
4284
+ }
4285
+ this.isLoadingChanged.emit(true);
4286
+ this.service.getEmployeeDependents(this.baseUrl).subscribe({
4287
+ next: (res) => {
4288
+ this.dependents = res ?? [];
4289
+ this.isLoading = false;
4290
+ this.isLoadingChanged.emit(false);
4291
+ },
4292
+ error: () => {
4293
+ this.dependents = [];
4294
+ this.isLoading = false;
4295
+ this.isLoadingChanged.emit(false);
4296
+ }
4297
+ });
4298
+ }
4299
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DependentsWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
4300
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: DependentsWidgetComponent, isStandalone: true, selector: "hr-profile-dependents-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", icon: "icon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"icon\"\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 class=\"mt-4\">\r\n <div class=\"row mb-5\">\r\n @if(dependents.length){\r\n @for(d of dependents; track d){\r\n <div class=\"col-lg-4 col-6 mt-4\">\r\n\r\n <hr-widget-card [contentTemplate]=\"dependentTemplate\"\r\n [context]=\"{ d: d }\"\r\n [height]=\"110\">\r\n </hr-widget-card>\r\n\r\n </div>\r\n }\r\n }\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)) : ('ThereIsNoDependentsYet' | HRTranslate)\">\r\n </sky-empty-design-card>\r\n\r\n\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #dependentTemplate let-d=\"d\">\r\n <p class=\"text-dark fs-16 mb-2 d-flex\">\r\n <span class=\"text-truncate cursor-pointer\" [title]=\"d.DependantName\">\r\n {{ d.DependentName }}\r\n </span>\r\n <span class=\"mx-1\">({{ d.DependentTypeName }})</span>\r\n </p>\r\n <p class=\"mb-2 fs-12\">\r\n <span class=\"text-muted\">{{'BirthDate'|HRTranslate}}: </span>\r\n <span class=\"text-secondary mx-1\">{{ d.BirthDate | date:'dd/MM/yyyy' }}</span>\r\n </p>\r\n <p class=\"mb-0 fs-12\">\r\n <span class=\"text-muted\">{{'NationalNumber'|HRTranslate }}: </span>\r\n @if(d.NationalNumber){\r\n <span class=\"text-secondary mx-1\">{{ d.NationalNumber }}</span>\r\n } @else {\r\n <span class=\"text-secondary mx-1\">\u2014</span>\r\n }\r\n </p>\r\n</ng-template>\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: WidgetCardComponent, selector: "hr-widget-card", inputs: ["cardClass", "height", "contentTemplate", "context"] }, { 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: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }] });
4301
+ }
4302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DependentsWidgetComponent, decorators: [{
4303
+ type: Component,
4304
+ args: [{ selector: 'hr-profile-dependents-widget', standalone: true, imports: [CommonModule, WidgetCardComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, SkySectionDividerComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"icon\"\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 class=\"mt-4\">\r\n <div class=\"row mb-5\">\r\n @if(dependents.length){\r\n @for(d of dependents; track d){\r\n <div class=\"col-lg-4 col-6 mt-4\">\r\n\r\n <hr-widget-card [contentTemplate]=\"dependentTemplate\"\r\n [context]=\"{ d: d }\"\r\n [height]=\"110\">\r\n </hr-widget-card>\r\n\r\n </div>\r\n }\r\n }\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)) : ('ThereIsNoDependentsYet' | HRTranslate)\">\r\n </sky-empty-design-card>\r\n\r\n\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #dependentTemplate let-d=\"d\">\r\n <p class=\"text-dark fs-16 mb-2 d-flex\">\r\n <span class=\"text-truncate cursor-pointer\" [title]=\"d.DependantName\">\r\n {{ d.DependentName }}\r\n </span>\r\n <span class=\"mx-1\">({{ d.DependentTypeName }})</span>\r\n </p>\r\n <p class=\"mb-2 fs-12\">\r\n <span class=\"text-muted\">{{'BirthDate'|HRTranslate}}: </span>\r\n <span class=\"text-secondary mx-1\">{{ d.BirthDate | date:'dd/MM/yyyy' }}</span>\r\n </p>\r\n <p class=\"mb-0 fs-12\">\r\n <span class=\"text-muted\">{{'NationalNumber'|HRTranslate }}: </span>\r\n @if(d.NationalNumber){\r\n <span class=\"text-secondary mx-1\">{{ d.NationalNumber }}</span>\r\n } @else {\r\n <span class=\"text-secondary mx-1\">\u2014</span>\r\n }\r\n </p>\r\n</ng-template>\r\n\r\n\r\n" }]
4305
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
4306
+ type: Input
4307
+ }], sectionTitle: [{
4308
+ type: Input
4309
+ }], icon: [{
4310
+ type: Input
4311
+ }], headerIconClass: [{
4312
+ type: Input
4313
+ }], headerTextClass: [{
4314
+ type: Input
4315
+ }], headerDividerClass: [{
4316
+ type: Input
4317
+ }], emptyStateContainerClass: [{
4318
+ type: Input
4319
+ }], emptyStateTextClass: [{
4320
+ type: Input
4321
+ }], isLoadingChanged: [{
4322
+ type: Output
4323
+ }] } });
4324
+
4325
+ class ProfileEntitlementsVacationsWidgetComponent {
4326
+ selfWidgetsService;
4327
+ baseUrl = '';
4328
+ sectionTitle = 'Vacations';
4329
+ vacationsIcon = faIslandTropical;
4330
+ headerIconClass = 'primary-icon-xl';
4331
+ headerTextClass = 'mt-2 field-secondary-label-lg';
4332
+ headerDividerClass = 'flex-grow-1 ms-2';
4333
+ rowClass = 'row mt-4';
4334
+ labelClass = 'field-secondary-label-sm';
4335
+ valueClass = 'fs-14 fw-meduim mt-2';
4336
+ labelColumnClass = 'col-6';
4337
+ valueColumnClass = 'col-6';
4338
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
4339
+ emptyStateTextClass = 'field-secondary-label-md';
4340
+ isLoadingChanged = new EventEmitter();
4341
+ errorOccurred = new EventEmitter();
4342
+ vacationEntitlements = [];
4343
+ isLoading = true;
4344
+ constructor(selfWidgetsService) {
4345
+ this.selfWidgetsService = selfWidgetsService;
4346
+ }
4347
+ ngOnInit() {
4348
+ if (!this.baseUrl) {
4349
+ this.isLoading = false;
4350
+ return;
4351
+ }
4352
+ this.loadData();
4353
+ }
4354
+ loadData() {
4355
+ this.isLoadingChanged.emit(true);
4356
+ this.selfWidgetsService.getEntitlementsVacations(this.baseUrl).subscribe({
4357
+ next: (data) => {
4358
+ this.vacationEntitlements = data ?? [];
4359
+ this.isLoading = false;
4360
+ this.isLoadingChanged.emit(false);
4361
+ },
4362
+ error: (error) => {
4363
+ this.vacationEntitlements = [];
4364
+ this.isLoading = false;
4365
+ this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);
4366
+ this.isLoadingChanged.emit(false);
4367
+ }
4368
+ });
4369
+ }
4370
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsVacationsWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
4371
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileEntitlementsVacationsWidgetComponent, isStandalone: true, selector: "hr-profile-entitlements-vacations-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", vacationsIcon: "vacationsIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", labelClass: "labelClass", valueClass: "valueClass", labelColumnClass: "labelColumnClass", valueColumnClass: "valueColumnClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"vacationsIcon\"\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(vacationEntitlements.length > 0){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"labelClass\" [ngClass]=\"labelColumnClass\">{{'Type' | HRTranslate}}</div>\r\n <div [class]=\"labelClass\" [ngClass]=\"valueColumnClass\">{{'Entitlement' | HRTranslate}}</div>\r\n @for (vacationEntitlement of vacationEntitlements; track vacationEntitlement;){\r\n <div [class]=\"valueClass\" [ngClass]=\"labelColumnClass\">\r\n {{vacationEntitlement.VacationTypeName}}\r\n </div>\r\n <div [class]=\"valueClass\" [ngClass]=\"valueColumnClass\">\r\n {{vacationEntitlement.EntitlementDays}}\r\n </div>\r\n }\r\n</div>\r\n}@else{\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)) : ('There\\'sNoInformationInThisSectionYet' | 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"] }] });
4372
+ }
4373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsVacationsWidgetComponent, decorators: [{
4374
+ type: Component,
4375
+ args: [{ selector: 'hr-profile-entitlements-vacations-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"vacationsIcon\"\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(vacationEntitlements.length > 0){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"labelClass\" [ngClass]=\"labelColumnClass\">{{'Type' | HRTranslate}}</div>\r\n <div [class]=\"labelClass\" [ngClass]=\"valueColumnClass\">{{'Entitlement' | HRTranslate}}</div>\r\n @for (vacationEntitlement of vacationEntitlements; track vacationEntitlement;){\r\n <div [class]=\"valueClass\" [ngClass]=\"labelColumnClass\">\r\n {{vacationEntitlement.VacationTypeName}}\r\n </div>\r\n <div [class]=\"valueClass\" [ngClass]=\"valueColumnClass\">\r\n {{vacationEntitlement.EntitlementDays}}\r\n </div>\r\n }\r\n</div>\r\n}@else{\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)) : ('There\\'sNoInformationInThisSectionYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
4376
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
4377
+ type: Input,
4378
+ args: [{ required: true }]
4379
+ }], sectionTitle: [{
4380
+ type: Input
4381
+ }], vacationsIcon: [{
4382
+ type: Input
4383
+ }], headerIconClass: [{
4384
+ type: Input
4385
+ }], headerTextClass: [{
4386
+ type: Input
4387
+ }], headerDividerClass: [{
4388
+ type: Input
4389
+ }], rowClass: [{
4390
+ type: Input
4391
+ }], labelClass: [{
4392
+ type: Input
4393
+ }], valueClass: [{
4394
+ type: Input
4395
+ }], labelColumnClass: [{
4396
+ type: Input
4397
+ }], valueColumnClass: [{
4398
+ type: Input
4399
+ }], emptyStateContainerClass: [{
4400
+ type: Input
4401
+ }], emptyStateTextClass: [{
4402
+ type: Input
4403
+ }], isLoadingChanged: [{
4404
+ type: Output
4405
+ }], errorOccurred: [{
4406
+ type: Output
4407
+ }] } });
4408
+
4409
+ class ProfileEntitlementsIndemnityWidgetComponent {
4410
+ selfWidgetsService;
4411
+ baseUrl = '';
4412
+ currencyCode = '';
4413
+ currencyDecimals = 0;
4414
+ sectionTitle = 'Indemnity';
4415
+ indemnityIcon = faFileSignature;
4416
+ headerIconClass = 'primary-icon-xl';
4417
+ headerTextClass = 'mt-2 field-secondary-label-lg';
4418
+ headerDividerClass = 'flex-grow-1 ms-2';
4419
+ rowClass = 'row mt-4';
4420
+ columnClass = 'col-6';
4421
+ topSpacingColumnClass = 'col-6 mt-4';
4422
+ labelClass = 'field-secondary-label-sm';
4423
+ valueClass = 'fs-14 fw-meduim';
4424
+ dateFormat = 'dd/MM/yyyy';
4425
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
4426
+ emptyStateTextClass = 'field-secondary-label-md';
4427
+ isLoadingChanged = new EventEmitter();
4428
+ errorOccurred = new EventEmitter();
4429
+ indemnityDetails = null;
4430
+ isLoading = true;
4431
+ constructor(selfWidgetsService) {
4432
+ this.selfWidgetsService = selfWidgetsService;
4433
+ }
4434
+ ngOnInit() {
4435
+ if (!this.baseUrl) {
4436
+ this.isLoading = false;
4437
+ return;
4438
+ }
4439
+ this.loadData();
4440
+ }
4441
+ loadData() {
4442
+ this.isLoadingChanged.emit(true);
4443
+ this.selfWidgetsService.getEntitlementsIndemnity(this.baseUrl).subscribe({
4444
+ next: (data) => {
4445
+ this.indemnityDetails = data;
4446
+ this.isLoading = false;
4447
+ this.isLoadingChanged.emit(false);
4448
+ },
4449
+ error: (error) => {
4450
+ this.indemnityDetails = null;
4451
+ this.isLoading = false;
4452
+ this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);
4453
+ this.isLoadingChanged.emit(false);
4454
+ }
4455
+ });
4456
+ }
4457
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsIndemnityWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
4458
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileEntitlementsIndemnityWidgetComponent, isStandalone: true, selector: "hr-profile-entitlements-indemnity-widget", inputs: { baseUrl: "baseUrl", currencyCode: "currencyCode", currencyDecimals: "currencyDecimals", sectionTitle: "sectionTitle", indemnityIcon: "indemnityIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", topSpacingColumnClass: "topSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", dateFormat: "dateFormat", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"indemnityIcon\"\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(indemnityDetails){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"IndemnityEligibility\"\r\n [value]=\"(indemnityDetails.IsEligibleForIndemnity ? 'Eligible' : 'NotEligible') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"ServiceYears\"\r\n [value]=\"'' + (indemnityDetails.IndemnityServiceYears ?? '')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColumnClass\">\r\n <hr-info-field labelKey=\"StartDate\"\r\n [value]=\"indemnityDetails.IndemnityStartDate | date: dateFormat\"\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 [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)) : ('There\\'sNoInformationInThisSectionYet' | HRTranslate)\">\r\n</sky-empty-design-card>\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: "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"] }] });
4459
+ }
4460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsIndemnityWidgetComponent, decorators: [{
4461
+ type: Component,
4462
+ args: [{ selector: 'hr-profile-entitlements-indemnity-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"indemnityIcon\"\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(indemnityDetails){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"IndemnityEligibility\"\r\n [value]=\"(indemnityDetails.IsEligibleForIndemnity ? 'Eligible' : 'NotEligible') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"ServiceYears\"\r\n [value]=\"'' + (indemnityDetails.IndemnityServiceYears ?? '')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColumnClass\">\r\n <hr-info-field labelKey=\"StartDate\"\r\n [value]=\"indemnityDetails.IndemnityStartDate | date: dateFormat\"\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 [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)) : ('There\\'sNoInformationInThisSectionYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
4463
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
4464
+ type: Input,
4465
+ args: [{ required: true }]
4466
+ }], currencyCode: [{
4467
+ type: Input
4468
+ }], currencyDecimals: [{
4469
+ type: Input
4470
+ }], sectionTitle: [{
4471
+ type: Input
4472
+ }], indemnityIcon: [{
4473
+ type: Input
4474
+ }], headerIconClass: [{
4475
+ type: Input
4476
+ }], headerTextClass: [{
4477
+ type: Input
4478
+ }], headerDividerClass: [{
4479
+ type: Input
4480
+ }], rowClass: [{
4481
+ type: Input
4482
+ }], columnClass: [{
4483
+ type: Input
4484
+ }], topSpacingColumnClass: [{
4485
+ type: Input
4486
+ }], labelClass: [{
4487
+ type: Input
4488
+ }], valueClass: [{
4489
+ type: Input
4490
+ }], dateFormat: [{
4491
+ type: Input
4492
+ }], emptyStateContainerClass: [{
4493
+ type: Input
4494
+ }], emptyStateTextClass: [{
4495
+ type: Input
4496
+ }], isLoadingChanged: [{
4497
+ type: Output
4498
+ }], errorOccurred: [{
4499
+ type: Output
4500
+ }] } });
4501
+
4502
+ class HRTicketCardComponent {
4503
+ name = '';
4504
+ typeName = '';
4505
+ entitlementText = '';
4506
+ ticketClassName = '';
4507
+ ticketSectorName = '';
4508
+ isDependent = false;
4509
+ cardClass = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';
4510
+ cardHeight = 135;
4511
+ nameClass = 'text-dark fs-16';
4512
+ subtitleClass = 'field-secondary-label-sm mb-3';
4513
+ labelClass = 'text-secondary';
4514
+ valueClass = 'text-dark-gray mx-1';
4515
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRTicketCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4516
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: HRTicketCardComponent, isStandalone: true, selector: "hr-ticket-card", inputs: { name: "name", typeName: "typeName", entitlementText: "entitlementText", ticketClassName: "ticketClassName", ticketSectorName: "ticketSectorName", isDependent: "isDependent", cardClass: "cardClass", cardHeight: "cardHeight", nameClass: "nameClass", subtitleClass: "subtitleClass", labelClass: "labelClass", valueClass: "valueClass" }, ngImport: i0, template: "<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | HRTranslate}})\r\n }\r\n </p>\r\n <p [class]=\"subtitleClass\">{{entitlementText}}</p>\r\n @if(!isDependent){\r\n <p class=\"fs-12 mb-2\"><span [class]=\"labelClass\">{{'Class' | HRTranslate}}:</span> <span [class]=\"valueClass\">{{ticketClassName}}</span></p>\r\n <p class=\"fs-12\"><span [class]=\"labelClass\">{{'Sector' | HRTranslate}}:</span> <span [class]=\"valueClass\">{{ticketSectorName}}</span></p>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: WidgetCardComponent, selector: "hr-widget-card", inputs: ["cardClass", "height", "contentTemplate", "context"] }] });
4517
+ }
4518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRTicketCardComponent, decorators: [{
4519
+ type: Component,
4520
+ args: [{ selector: 'hr-ticket-card', standalone: true, imports: [CommonModule, HRTranslatePipe, WidgetCardComponent], template: "<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | HRTranslate}})\r\n }\r\n </p>\r\n <p [class]=\"subtitleClass\">{{entitlementText}}</p>\r\n @if(!isDependent){\r\n <p class=\"fs-12 mb-2\"><span [class]=\"labelClass\">{{'Class' | HRTranslate}}:</span> <span [class]=\"valueClass\">{{ticketClassName}}</span></p>\r\n <p class=\"fs-12\"><span [class]=\"labelClass\">{{'Sector' | HRTranslate}}:</span> <span [class]=\"valueClass\">{{ticketSectorName}}</span></p>\r\n }\r\n</ng-template>\r\n" }]
4521
+ }], propDecorators: { name: [{
4522
+ type: Input,
4523
+ args: [{ required: true }]
4524
+ }], typeName: [{
4525
+ type: Input
4526
+ }], entitlementText: [{
4527
+ type: Input
4528
+ }], ticketClassName: [{
4529
+ type: Input
4530
+ }], ticketSectorName: [{
4531
+ type: Input
4532
+ }], isDependent: [{
4533
+ type: Input
4534
+ }], cardClass: [{
4535
+ type: Input
4536
+ }], cardHeight: [{
4537
+ type: Input
4538
+ }], nameClass: [{
4539
+ type: Input
4540
+ }], subtitleClass: [{
4541
+ type: Input
4542
+ }], labelClass: [{
4543
+ type: Input
4544
+ }], valueClass: [{
4545
+ type: Input
4546
+ }] } });
4547
+
4548
+ class ProfileEntitlementsTicketWidgetComponent {
4549
+ selfWidgetsService;
4550
+ translatePipe;
4551
+ baseUrl = '';
4552
+ sectionTitle = 'Tickets';
4553
+ ticketsIcon = faTicketsAirline;
4554
+ headerIconClass = 'primary-icon-xl';
4555
+ headerTextClass = 'mt-2 field-secondary-label-lg';
4556
+ headerDividerClass = 'flex-grow-1 ms-2';
4557
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
4558
+ emptyStateTextClass = 'field-secondary-label-md';
4559
+ columnClass = 'col-lg-4 col-6 mt-4';
4560
+ cardHeight = 135;
4561
+ cardClass = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';
4562
+ nameClass = 'text-dark fs-16';
4563
+ subtitleClass = 'field-secondary-label-sm mb-3';
4564
+ labelClass = 'fs-12 text-secondary';
4565
+ valueClass = 'fs-12 text-dark-gray mx-1';
4566
+ isLoadingChanged = new EventEmitter();
4567
+ errorOccurred = new EventEmitter();
4568
+ ticketDetails = null;
4569
+ isLoading = true;
4570
+ constructor(selfWidgetsService, translatePipe) {
4571
+ this.selfWidgetsService = selfWidgetsService;
4572
+ this.translatePipe = translatePipe;
4573
+ }
4574
+ ngOnInit() {
4575
+ if (!this.baseUrl) {
4576
+ this.isLoading = false;
4577
+ return;
4578
+ }
4579
+ this.loadData();
4580
+ }
4581
+ loadData() {
4582
+ this.isLoadingChanged.emit(true);
4583
+ this.selfWidgetsService.getEntitlementsTicket(this.baseUrl).subscribe({
4584
+ next: (data) => {
4585
+ this.ticketDetails = data;
4586
+ this.isLoading = false;
4587
+ this.isLoadingChanged.emit(false);
4588
+ },
4589
+ error: (error) => {
4590
+ this.ticketDetails = null;
4591
+ this.isLoading = false;
4592
+ this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);
4593
+ this.isLoadingChanged.emit(false);
4594
+ }
4595
+ });
4596
+ }
4597
+ getMonthsPerTicketEntitlement(monthsPerTicketEntitlement) {
4598
+ if (monthsPerTicketEntitlement != null && monthsPerTicketEntitlement != 0) {
4599
+ if (monthsPerTicketEntitlement > 1) {
4600
+ const template = this.translatePipe.transform('TicketEvery{{value}}Months');
4601
+ return template.replace('{{value}}', String(monthsPerTicketEntitlement));
4602
+ }
4603
+ else {
4604
+ const template = this.translatePipe.transform('TicketEvery{{value}}Month');
4605
+ return template.replace('{{value}}', String(monthsPerTicketEntitlement));
4606
+ }
4607
+ }
4608
+ else
4609
+ return this.translatePipe.transform('NotEntitled');
4610
+ }
4611
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsTicketWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
4612
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileEntitlementsTicketWidgetComponent, isStandalone: true, selector: "hr-profile-entitlements-ticket-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", ticketsIcon: "ticketsIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", columnClass: "columnClass", cardHeight: "cardHeight", cardClass: "cardClass", nameClass: "nameClass", subtitleClass: "subtitleClass", labelClass: "labelClass", valueClass: "valueClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"ticketsIcon\"\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(ticketDetails){\r\n@if(!ticketDetails.EmployeeTicketDetails && ticketDetails.DependentTicketDetails?.length == 0){\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]=\"'NoTicketEntitlement' | HRTranslate\">\r\n</sky-empty-design-card>\r\n}@else{\r\n<div class=\"row mb-5\">\r\n @if(ticketDetails.EmployeeTicketDetails){\r\n <div [class]=\"columnClass\">\r\n <hr-ticket-card [name]=\"ticketDetails.EmployeeTicketDetails.EmployeeFirstName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(ticketDetails.EmployeeTicketDetails.MonthsPerTicketEntitlement)\"\r\n [ticketClassName]=\"ticketDetails.EmployeeTicketDetails.TicketClassName\"\r\n [ticketSectorName]=\"ticketDetails.EmployeeTicketDetails.TicketSectorName\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n @for (dependent of ticketDetails.DependentTicketDetails; track dependent;){\r\n <div [class]=\"columnClass\">\r\n <hr-ticket-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(dependent.MonthsPerTicketEntitlement)\"\r\n [isDependent]=\"true\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n</div>\r\n}\r\n}@else{\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)) : ('NoTicketEntitlement' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: HRTicketCardComponent, selector: "hr-ticket-card", inputs: ["name", "typeName", "entitlementText", "ticketClassName", "ticketSectorName", "isDependent", "cardClass", "cardHeight", "nameClass", "subtitleClass", "labelClass", "valueClass"] }] });
4613
+ }
4614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsTicketWidgetComponent, decorators: [{
4615
+ type: Component,
4616
+ args: [{ selector: 'hr-profile-entitlements-ticket-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRTicketCardComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"ticketsIcon\"\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(ticketDetails){\r\n@if(!ticketDetails.EmployeeTicketDetails && ticketDetails.DependentTicketDetails?.length == 0){\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]=\"'NoTicketEntitlement' | HRTranslate\">\r\n</sky-empty-design-card>\r\n}@else{\r\n<div class=\"row mb-5\">\r\n @if(ticketDetails.EmployeeTicketDetails){\r\n <div [class]=\"columnClass\">\r\n <hr-ticket-card [name]=\"ticketDetails.EmployeeTicketDetails.EmployeeFirstName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(ticketDetails.EmployeeTicketDetails.MonthsPerTicketEntitlement)\"\r\n [ticketClassName]=\"ticketDetails.EmployeeTicketDetails.TicketClassName\"\r\n [ticketSectorName]=\"ticketDetails.EmployeeTicketDetails.TicketSectorName\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n @for (dependent of ticketDetails.DependentTicketDetails; track dependent;){\r\n <div [class]=\"columnClass\">\r\n <hr-ticket-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(dependent.MonthsPerTicketEntitlement)\"\r\n [isDependent]=\"true\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n</div>\r\n}\r\n}@else{\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)) : ('NoTicketEntitlement' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
4617
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRTranslatePipe }], propDecorators: { baseUrl: [{
4618
+ type: Input,
4619
+ args: [{ required: true }]
4620
+ }], sectionTitle: [{
4621
+ type: Input
4622
+ }], ticketsIcon: [{
4623
+ type: Input
4624
+ }], headerIconClass: [{
4625
+ type: Input
4626
+ }], headerTextClass: [{
4627
+ type: Input
4628
+ }], headerDividerClass: [{
4629
+ type: Input
4630
+ }], emptyStateContainerClass: [{
4631
+ type: Input
4632
+ }], emptyStateTextClass: [{
4633
+ type: Input
4634
+ }], columnClass: [{
4635
+ type: Input
4636
+ }], cardHeight: [{
4637
+ type: Input
4638
+ }], cardClass: [{
4639
+ type: Input
4640
+ }], nameClass: [{
4641
+ type: Input
4642
+ }], subtitleClass: [{
4643
+ type: Input
4644
+ }], labelClass: [{
4645
+ type: Input
4646
+ }], valueClass: [{
4647
+ type: Input
4648
+ }], isLoadingChanged: [{
4649
+ type: Output
4650
+ }], errorOccurred: [{
4651
+ type: Output
4652
+ }] } });
4653
+
4654
+ class HRMedicalInsuranceCardComponent {
4655
+ name = '';
4656
+ typeName = '';
4657
+ isDependent = false;
4658
+ fields = [];
4659
+ cardClass = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';
4660
+ cardHeight = 185;
4661
+ nameClass = 'text-dark fs-16 mb-2';
4662
+ labelClass = 'field-secondary-label-sm';
4663
+ valueClass = 'text-dark-gray mx-1';
4664
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRMedicalInsuranceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4665
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: HRMedicalInsuranceCardComponent, isStandalone: true, selector: "hr-medical-insurance-card", inputs: { name: "name", typeName: "typeName", isDependent: "isDependent", fields: "fields", cardClass: "cardClass", cardHeight: "cardHeight", nameClass: "nameClass", labelClass: "labelClass", valueClass: "valueClass" }, ngImport: i0, template: "<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | HRTranslate}})\r\n }\r\n </p>\r\n @for (field of fields; track field.labelKey; let last = $last){\r\n <p [class.mb-2]=\"!last\">\r\n <span [class]=\"labelClass\">{{field.labelKey | HRTranslate}}:</span>\r\n <span [class]=\"valueClass\">{{field.value || (field.fallbackValue ?? '\u2014')}}</span>\r\n </p>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: WidgetCardComponent, selector: "hr-widget-card", inputs: ["cardClass", "height", "contentTemplate", "context"] }] });
4666
+ }
4667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRMedicalInsuranceCardComponent, decorators: [{
4668
+ type: Component,
4669
+ args: [{ selector: 'hr-medical-insurance-card', standalone: true, imports: [CommonModule, HRTranslatePipe, WidgetCardComponent], template: "<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | HRTranslate}})\r\n }\r\n </p>\r\n @for (field of fields; track field.labelKey; let last = $last){\r\n <p [class.mb-2]=\"!last\">\r\n <span [class]=\"labelClass\">{{field.labelKey | HRTranslate}}:</span>\r\n <span [class]=\"valueClass\">{{field.value || (field.fallbackValue ?? '\u2014')}}</span>\r\n </p>\r\n }\r\n</ng-template>\r\n" }]
4670
+ }], propDecorators: { name: [{
4671
+ type: Input,
4672
+ args: [{ required: true }]
4673
+ }], typeName: [{
4674
+ type: Input
4675
+ }], isDependent: [{
4676
+ type: Input
4677
+ }], fields: [{
4678
+ type: Input
4679
+ }], cardClass: [{
4680
+ type: Input
4681
+ }], cardHeight: [{
4682
+ type: Input
4683
+ }], nameClass: [{
4684
+ type: Input
4685
+ }], labelClass: [{
4686
+ type: Input
4687
+ }], valueClass: [{
4688
+ type: Input
4689
+ }] } });
4690
+
4691
+ class ProfileEntitlementsMedicalInsuranceWidgetComponent {
4692
+ selfWidgetsService;
4693
+ baseUrl = '';
4694
+ sectionTitle = 'MedicalInsurance';
4695
+ medicalInsuranceIcon = faNotesMedical;
4696
+ headerIconClass = 'primary-icon-xl';
4697
+ headerTextClass = 'mt-2 field-secondary-label-lg';
4698
+ headerDividerClass = 'flex-grow-1 ms-2';
4699
+ labelClass = 'field-secondary-label-sm';
4700
+ valueClass = 'text-dark-gray mx-1';
4701
+ columnClass = 'col-lg-4 col-6 mt-4';
4702
+ cardHeight = 185;
4703
+ cardClass = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';
4704
+ nameClass = 'text-dark fs-16 mb-2';
4705
+ dateFormat = 'dd/MM/yyyy';
4706
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
4707
+ emptyStateTextClass = 'field-secondary-label-md';
4708
+ isLoadingChanged = new EventEmitter();
4709
+ errorOccurred = new EventEmitter();
4710
+ medicalInsuranceDetails = null;
4711
+ isLoading = true;
4712
+ employeeFields = [];
4713
+ datePipe = new DatePipe('en-US');
4714
+ constructor(selfWidgetsService) {
4715
+ this.selfWidgetsService = selfWidgetsService;
4716
+ }
4717
+ ngOnInit() {
4718
+ if (!this.baseUrl) {
4719
+ this.isLoading = false;
4720
+ return;
4721
+ }
4722
+ this.loadData();
4723
+ }
4724
+ loadData() {
4725
+ this.isLoadingChanged.emit(true);
4726
+ this.selfWidgetsService.getEntitlementsMedicalInsurance(this.baseUrl).subscribe({
4727
+ next: (data) => {
4728
+ this.medicalInsuranceDetails = data;
4729
+ this.buildEmployeeFields();
4730
+ this.isLoading = false;
4731
+ this.isLoadingChanged.emit(false);
4732
+ },
4733
+ error: (error) => {
4734
+ this.medicalInsuranceDetails = null;
4735
+ this.isLoading = false;
4736
+ this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);
4737
+ this.isLoadingChanged.emit(false);
4738
+ }
4739
+ });
4740
+ }
4741
+ buildEmployeeFields() {
4742
+ if (!this.medicalInsuranceDetails?.EmployeeMedicalInsurance)
4743
+ return;
4744
+ const emp = this.medicalInsuranceDetails.EmployeeMedicalInsurance;
4745
+ this.employeeFields = [
4746
+ { labelKey: 'Class', value: emp.MedicalInsuranceClassName },
4747
+ { labelKey: 'Number', value: emp.MedicalInsuranceNumber },
4748
+ { labelKey: 'CoverageDate', value: this.datePipe.transform(emp.CoverageDate, this.dateFormat) },
4749
+ { labelKey: 'TotalEmployeeShare', value: this.medicalInsuranceDetails.TotalEmployeeShare },
4750
+ { labelKey: 'TotalEmployerShare', value: this.medicalInsuranceDetails.TotalEmployerShare }
4751
+ ];
4752
+ }
4753
+ getDependentFields(dependent) {
4754
+ return [
4755
+ { labelKey: 'Class', value: dependent.MedicalInsuranceClassName },
4756
+ { labelKey: 'Number', value: dependent.MedicalInsuranceNumber },
4757
+ { labelKey: 'CoverageDate', value: this.datePipe.transform(dependent.CoverageDate, this.dateFormat) }
4758
+ ];
4759
+ }
4760
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsMedicalInsuranceWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
4761
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileEntitlementsMedicalInsuranceWidgetComponent, isStandalone: true, selector: "hr-profile-entitlements-medical-insurance-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", medicalInsuranceIcon: "medicalInsuranceIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", labelClass: "labelClass", valueClass: "valueClass", columnClass: "columnClass", cardHeight: "cardHeight", cardClass: "cardClass", nameClass: "nameClass", dateFormat: "dateFormat", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"medicalInsuranceIcon\"\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(medicalInsuranceDetails){\r\n<div class=\"row mb-5\">\r\n @if(medicalInsuranceDetails.EmployeeMedicalInsurance){\r\n <div [class]=\"columnClass\">\r\n <hr-medical-insurance-card [name]=\"medicalInsuranceDetails.EmployeeMedicalInsurance.EmployeeFirstName\"\r\n [fields]=\"employeeFields\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n @for (dependent of medicalInsuranceDetails.DependentsMedicalInsurance; track dependent){\r\n <div [class]=\"columnClass\">\r\n <hr-medical-insurance-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [isDependent]=\"true\"\r\n [fields]=\"getDependentFields(dependent)\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n</div>\r\n}@else{\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)) : ('NotCoveredByMedicalInsurance' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: HRMedicalInsuranceCardComponent, selector: "hr-medical-insurance-card", inputs: ["name", "typeName", "isDependent", "fields", "cardClass", "cardHeight", "nameClass", "labelClass", "valueClass"] }] });
4762
+ }
4763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsMedicalInsuranceWidgetComponent, decorators: [{
4764
+ type: Component,
4765
+ args: [{ selector: 'hr-profile-entitlements-medical-insurance-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRMedicalInsuranceCardComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"medicalInsuranceIcon\"\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(medicalInsuranceDetails){\r\n<div class=\"row mb-5\">\r\n @if(medicalInsuranceDetails.EmployeeMedicalInsurance){\r\n <div [class]=\"columnClass\">\r\n <hr-medical-insurance-card [name]=\"medicalInsuranceDetails.EmployeeMedicalInsurance.EmployeeFirstName\"\r\n [fields]=\"employeeFields\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n @for (dependent of medicalInsuranceDetails.DependentsMedicalInsurance; track dependent){\r\n <div [class]=\"columnClass\">\r\n <hr-medical-insurance-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [isDependent]=\"true\"\r\n [fields]=\"getDependentFields(dependent)\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n</div>\r\n}@else{\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)) : ('NotCoveredByMedicalInsurance' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
4766
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
4767
+ type: Input,
4768
+ args: [{ required: true }]
4769
+ }], sectionTitle: [{
4770
+ type: Input
4771
+ }], medicalInsuranceIcon: [{
4772
+ type: Input
4773
+ }], headerIconClass: [{
4774
+ type: Input
4775
+ }], headerTextClass: [{
4776
+ type: Input
4777
+ }], headerDividerClass: [{
4778
+ type: Input
4779
+ }], labelClass: [{
4780
+ type: Input
4781
+ }], valueClass: [{
4782
+ type: Input
4783
+ }], columnClass: [{
4784
+ type: Input
4785
+ }], cardHeight: [{
4786
+ type: Input
4787
+ }], cardClass: [{
4788
+ type: Input
4789
+ }], nameClass: [{
4790
+ type: Input
4791
+ }], dateFormat: [{
4792
+ type: Input
4793
+ }], emptyStateContainerClass: [{
4794
+ type: Input
4795
+ }], emptyStateTextClass: [{
4796
+ type: Input
4797
+ }], isLoadingChanged: [{
4798
+ type: Output
4799
+ }], errorOccurred: [{
4800
+ type: Output
4801
+ }] } });
4802
+
4803
+ class ProfileEntitlementsOthersWidgetComponent {
4804
+ selfWidgetsService;
4805
+ baseUrl = '';
4806
+ sectionTitle = 'Others';
4807
+ othersIcon = faGrid2Plus;
4808
+ headerIconClass = 'primary-icon-xl';
4809
+ headerTextClass = 'mt-2 field-secondary-label-lg';
4810
+ headerDividerClass = 'flex-grow-1 ms-2';
4811
+ rowClass = 'row mt-4 mb-5';
4812
+ columnClass = 'col-md-4 col-6';
4813
+ labelClass = 'field-secondary-label-sm';
4814
+ valueClass = 'fs-14 fw-meduim';
4815
+ isLoadingChanged = new EventEmitter();
4816
+ errorOccurred = new EventEmitter();
4817
+ isEligibleForOvertime = false;
4818
+ isSocialSecurityMember = false;
4819
+ isLoading = true;
4820
+ constructor(selfWidgetsService) {
4821
+ this.selfWidgetsService = selfWidgetsService;
4822
+ }
4823
+ ngOnInit() {
4824
+ if (!this.baseUrl) {
4825
+ this.isLoading = false;
4826
+ return;
4827
+ }
4828
+ this.loadData();
4829
+ }
4830
+ loadData() {
4831
+ this.isLoadingChanged.emit(true);
4832
+ forkJoin({
4833
+ overtime: this.selfWidgetsService.getEntitlementsOvertime(this.baseUrl),
4834
+ socialSecurity: this.selfWidgetsService.getEntitlementsSocialSecurity(this.baseUrl)
4835
+ }).subscribe({
4836
+ next: (responses) => {
4837
+ this.isEligibleForOvertime = responses.overtime.ResponseData?.IsEligibleForOvertime ?? false;
4838
+ this.isSocialSecurityMember = responses.socialSecurity.ResponseData?.IsSocialSecurityMember ?? false;
4839
+ this.isLoading = false;
4840
+ this.isLoadingChanged.emit(false);
4841
+ },
4842
+ error: (error) => {
4843
+ this.isLoading = false;
4844
+ this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);
4845
+ this.isLoadingChanged.emit(false);
4846
+ }
4847
+ });
4848
+ }
4849
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsOthersWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
4850
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ProfileEntitlementsOthersWidgetComponent, isStandalone: true, selector: "hr-profile-entitlements-others-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", othersIcon: "othersIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", labelClass: "labelClass", valueClass: "valueClass" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"othersIcon\"\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 [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"OvertimeEligibility\"\r\n [value]=\"(isEligibleForOvertime ? 'Eligible' : 'NotEligible') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"SocialSecurityEligibility\"\r\n [value]=\"(isSocialSecurityMember ? 'Member' : 'NotMember') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
4851
+ }
4852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileEntitlementsOthersWidgetComponent, decorators: [{
4853
+ type: Component,
4854
+ args: [{ selector: 'hr-profile-entitlements-others-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"othersIcon\"\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 [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"OvertimeEligibility\"\r\n [value]=\"(isEligibleForOvertime ? 'Eligible' : 'NotEligible') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"SocialSecurityEligibility\"\r\n [value]=\"(isSocialSecurityMember ? 'Member' : 'NotMember') | HRTranslate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n" }]
4855
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
4856
+ type: Input,
4857
+ args: [{ required: true }]
4858
+ }], sectionTitle: [{
4859
+ type: Input
4860
+ }], othersIcon: [{
4861
+ type: Input
4862
+ }], headerIconClass: [{
4863
+ type: Input
4864
+ }], headerTextClass: [{
4865
+ type: Input
4866
+ }], headerDividerClass: [{
4867
+ type: Input
4868
+ }], rowClass: [{
4869
+ type: Input
4870
+ }], columnClass: [{
4871
+ type: Input
4872
+ }], labelClass: [{
4873
+ type: Input
4874
+ }], valueClass: [{
4875
+ type: Input
4876
+ }], isLoadingChanged: [{
4877
+ type: Output
4878
+ }], errorOccurred: [{
4879
+ type: Output
4880
+ }] } });
4881
+
4045
4882
  /*
4046
4883
  * Public API Surface of shared-ui
4047
4884
  */
@@ -4050,5 +4887,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4050
4887
  * Generated bundle index. Do not edit.
4051
4888
  */
4052
4889
 
4053
- export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRHighlightPipe, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyNextWeekVacationInsightsWidgetComponent, MyUpcomingEventsWidgetComponent, ProfileBankInfoWidgetComponent, ProfileDegreesWidgetComponent, ProfileExperiencesWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
4890
+ export { DependentsWidgetComponent, EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRHighlightPipe, HRMedicalInsuranceCardComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyNextWeekVacationInsightsWidgetComponent, MyUpcomingEventsWidgetComponent, ProfileBankInfoWidgetComponent, ProfileDegreesWidgetComponent, ProfileEntitlementsIndemnityWidgetComponent, ProfileEntitlementsMedicalInsuranceWidgetComponent, ProfileEntitlementsOthersWidgetComponent, ProfileEntitlementsTicketWidgetComponent, ProfileEntitlementsVacationsWidgetComponent, ProfileExperiencesWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
4054
4891
  //# sourceMappingURL=skysoftware-co-bayan-hr-widgets-ui.mjs.map