@skysoftware-co/bayan-hr-widgets-ui 1.0.35 → 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 (17) hide show
  1. package/README.md +233 -11
  2. package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs +780 -17
  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/services/hr-self-widgets.service.d.ts +2 -0
  12. package/lib/shared/services/entitlements-cache.service.d.ts +6 -0
  13. package/lib/shared/types/common.d.ts +12 -12
  14. package/package.json +1 -1
  15. package/public-api.d.ts +6 -0
  16. package/lib/my-vacation-team-widget/components/vacation-subordinates-popup/vacation-subordinates-popup.component.d.ts +0 -38
  17. 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, faUsersLine } 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";
@@ -188,6 +188,31 @@ var Employer$2 = "Employer";
188
188
  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
+ var ThereIsNoDependentsYet$2 = "There are no dependents yet";
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";
191
216
  var en = {
192
217
  ReportingTo: ReportingTo$2,
193
218
  NotAnknown: NotAnknown$2,
@@ -301,7 +326,7 @@ var en = {
301
326
  Degrees: Degrees$2,
302
327
  degrees: degrees$2,
303
328
  experiences: experiences$2,
304
- "Degree/Year": "Degree / Year",
329
+ "Degree/Year": "Degree/Year",
305
330
  Country: Country$2,
306
331
  Specialty: Specialty$2,
307
332
  Institute: Institute$2,
@@ -309,7 +334,34 @@ var en = {
309
334
  Employer: Employer$2,
310
335
  TerminationReason: TerminationReason$2,
311
336
  ThereIsNoDegreesYet: ThereIsNoDegreesYet$2,
312
- ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$2
337
+ ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$2,
338
+ ThereIsNoDependentsYet: ThereIsNoDependentsYet$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
313
365
  };
314
366
 
315
367
  var ReportingTo$1 = "مفوض الى";
@@ -410,7 +462,7 @@ var ThereIsNoJobMainYet$1 = "لا توجد معلومات وظيفية بعد";
410
462
  var ThereIsNoJobContractYet$1 = "لا توجد معلومات عقد بعد";
411
463
  var ThereIsNoJobSalaryYet$1 = "لا توجد معلومات راتب بعد";
412
464
  var ThereIsNoJobServiceChargeYet$1 = "لا توجد معلومات مستحقات نهاية الخدمة بعد";
413
- var NextWeekVacationInsights$1 = "ملخص إجازات الأسبوع القادم";
465
+ var NextWeekVacationInsights$1 = "رؤى إجازات الأسبوع القادم";
414
466
  var UpcomingVacations$1 = "الإجازات القادمة";
415
467
  var ExpectedToReturn$1 = "المتوقع عودتهم";
416
468
  var Employee$1 = "الموظف";
@@ -429,6 +481,31 @@ var Employer$1 = "جهة العمل";
429
481
  var TerminationReason$1 = "سبب إنهاء الخدمة";
430
482
  var ThereIsNoDegreesYet$1 = "لا توجد مؤهلات علمية بعد";
431
483
  var ThereIsNoExperiencesYet$1 = "لا توجد خبرات بعد";
484
+ var ThereIsNoDependentsYet$1 = "لا يوجد معالين حتى الآن";
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 = "المعالين";
432
509
  var ar = {
433
510
  ReportingTo: ReportingTo$1,
434
511
  NotAnknown: NotAnknown$1,
@@ -549,7 +626,34 @@ var ar = {
549
626
  Employer: Employer$1,
550
627
  TerminationReason: TerminationReason$1,
551
628
  ThereIsNoDegreesYet: ThereIsNoDegreesYet$1,
552
- ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$1
629
+ ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$1,
630
+ ThereIsNoDependentsYet: ThereIsNoDependentsYet$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
553
657
  };
554
658
 
555
659
  var ReportingTo = "Rapport à";
@@ -672,6 +776,29 @@ var ThereIsNoDegreesYet = "Il n'y a pas encore de diplomes";
672
776
  var ThereIsNoExperiencesYet = "Il n'y a pas encore d'experiences";
673
777
  var ThereIsNoDependentsYet = "Il n'y a pas encore de personnes à charge";
674
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";
675
802
  var fr = {
676
803
  ReportingTo: ReportingTo,
677
804
  NotAnknown: NotAnknown,
@@ -795,7 +922,32 @@ var fr = {
795
922
  ThereIsNoDegreesYet: ThereIsNoDegreesYet,
796
923
  ThereIsNoExperiencesYet: ThereIsNoExperiencesYet,
797
924
  ThereIsNoDependentsYet: ThereIsNoDependentsYet,
798
- 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
799
951
  };
800
952
 
801
953
  const BUILT_IN_LEXICONS = { en, ar, fr };
@@ -903,6 +1055,8 @@ class EntitlementsCacheService {
903
1055
  indemnityDetails$ = null;
904
1056
  ticketDetails$ = null;
905
1057
  medicalInsuranceDetails$ = null;
1058
+ overtimeDetails$ = null;
1059
+ socialSecurityDetails$ = null;
906
1060
  getVacationDetails(baseUrl) {
907
1061
  return this.baseUrl === baseUrl ? this.vacationDetails$ : null;
908
1062
  }
@@ -931,12 +1085,28 @@ class EntitlementsCacheService {
931
1085
  this.ensureBaseUrl(baseUrl);
932
1086
  this.medicalInsuranceDetails$ = value;
933
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
+ }
934
1102
  clear() {
935
1103
  this.baseUrl = '';
936
1104
  this.vacationDetails$ = null;
937
1105
  this.indemnityDetails$ = null;
938
1106
  this.ticketDetails$ = null;
939
1107
  this.medicalInsuranceDetails$ = null;
1108
+ this.overtimeDetails$ = null;
1109
+ this.socialSecurityDetails$ = null;
940
1110
  }
941
1111
  ensureBaseUrl(baseUrl) {
942
1112
  if (this.baseUrl && this.baseUrl !== baseUrl) {
@@ -1450,6 +1620,42 @@ class HRSelfWidgetsService {
1450
1620
  this.entitlementsCacheService.setMedicalInsuranceDetails(baseUrl, request$);
1451
1621
  return request$;
1452
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
+ }
1453
1659
  getEmployeeDegrees(baseUrl, forceRefresh = false) {
1454
1660
  if (!forceRefresh) {
1455
1661
  const cachedRequest$ = this.qualificationsCacheService.getDegrees(baseUrl);
@@ -2596,11 +2802,11 @@ class HRInfoFieldComponent {
2596
2802
  valueClass = 'fs-14 fw-medium';
2597
2803
  fallbackValue = '—';
2598
2804
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2599
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\" [title]=\"value|| fallbackValue\">{{value || fallbackValue}}</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
2805
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\">{{value || fallbackValue}}</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
2600
2806
  }
2601
2807
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, decorators: [{
2602
2808
  type: Component,
2603
- args: [{ selector: 'hr-info-field', standalone: true, imports: [CommonModule, HRTranslatePipe], template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\" [title]=\"value|| fallbackValue\">{{value || fallbackValue}}</div>\r\n" }]
2809
+ args: [{ selector: 'hr-info-field', standalone: true, imports: [CommonModule, HRTranslatePipe], template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\">{{value || fallbackValue}}</div>\r\n" }]
2604
2810
  }], propDecorators: { labelKey: [{
2605
2811
  type: Input,
2606
2812
  args: [{ required: true }]
@@ -2840,8 +3046,8 @@ class ProfilePersonalInfoContactWidgetComponent {
2840
3046
  headerTextClass = 'fs-16 mt-2 text-secondary';
2841
3047
  headerDividerClass = 'flex-grow-1 ms-2';
2842
3048
  rowClass = 'row mt-4';
2843
- columnClass = 'col-md-4 col-6';
2844
- responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
3049
+ columnClass = 'col-6';
3050
+ responsiveTopSpacingColumnClass = 'col-6 mt-4';
2845
3051
  topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
2846
3052
  topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
2847
3053
  labelClass = 'field-secondary-label-sm';
@@ -2880,11 +3086,11 @@ class ProfilePersonalInfoContactWidgetComponent {
2880
3086
  });
2881
3087
  }
2882
3088
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfilePersonalInfoContactWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2883
- 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"] }] });
2884
3090
  }
2885
3091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfilePersonalInfoContactWidgetComponent, decorators: [{
2886
3092
  type: Component,
2887
- 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}" }]
2888
3094
  }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
2889
3095
  type: Input,
2890
3096
  args: [{ required: true }]
@@ -4116,6 +4322,563 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4116
4322
  type: Output
4117
4323
  }] } });
4118
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
+
4119
4882
  /*
4120
4883
  * Public API Surface of shared-ui
4121
4884
  */
@@ -4124,5 +4887,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4124
4887
  * Generated bundle index. Do not edit.
4125
4888
  */
4126
4889
 
4127
- export { DependentsWidgetComponent, 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 };
4128
4891
  //# sourceMappingURL=skysoftware-co-bayan-hr-widgets-ui.mjs.map