@skysoftware-co/bayan-hr-widgets-ui 1.0.19 → 1.0.20

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.
@@ -11,7 +11,7 @@ import { SkyShortcutIconComponent, SkySectionDividerComponent, SkyEmptyDesignCar
11
11
  import * as i1 from '@angular/common/http';
12
12
  import { HttpParams } from '@angular/common/http';
13
13
  import { map, shareReplay, catchError, throwError, lastValueFrom } from 'rxjs';
14
- import { faCakeCandles, faTreePalm, faCalendarStar, faMoneyCheckDollarPen, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faFileSignature, faSackDollar, faEnvelopeOpenDollar, faXmark } from '@fortawesome/pro-light-svg-icons';
14
+ import { faCakeCandles, faTreePalm, faCalendarStar, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faXmark } from '@fortawesome/pro-light-svg-icons';
15
15
  import * as i2 from 'devextreme-angular/core';
16
16
  import { faCircle, faCalendarDays } from '@fortawesome/pro-regular-svg-icons';
17
17
  import moment from 'moment';
@@ -824,6 +824,63 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
824
824
  }]
825
825
  }] });
826
826
 
827
+ class EntitlementsCacheService {
828
+ baseUrl = '';
829
+ vacationDetails$ = null;
830
+ indemnityDetails$ = null;
831
+ ticketDetails$ = null;
832
+ medicalInsuranceDetails$ = null;
833
+ getVacationDetails(baseUrl) {
834
+ return this.baseUrl === baseUrl ? this.vacationDetails$ : null;
835
+ }
836
+ setVacationDetails(baseUrl, value) {
837
+ this.ensureBaseUrl(baseUrl);
838
+ this.vacationDetails$ = value;
839
+ }
840
+ getIndemnityDetails(baseUrl) {
841
+ return this.baseUrl === baseUrl ? this.indemnityDetails$ : null;
842
+ }
843
+ setIndemnityDetails(baseUrl, value) {
844
+ this.ensureBaseUrl(baseUrl);
845
+ this.indemnityDetails$ = value;
846
+ }
847
+ getTicketDetails(baseUrl) {
848
+ return this.baseUrl === baseUrl ? this.ticketDetails$ : null;
849
+ }
850
+ setTicketDetails(baseUrl, value) {
851
+ this.ensureBaseUrl(baseUrl);
852
+ this.ticketDetails$ = value;
853
+ }
854
+ getMedicalInsuranceDetails(baseUrl) {
855
+ return this.baseUrl === baseUrl ? this.medicalInsuranceDetails$ : null;
856
+ }
857
+ setMedicalInsuranceDetails(baseUrl, value) {
858
+ this.ensureBaseUrl(baseUrl);
859
+ this.medicalInsuranceDetails$ = value;
860
+ }
861
+ clear() {
862
+ this.baseUrl = '';
863
+ this.vacationDetails$ = null;
864
+ this.indemnityDetails$ = null;
865
+ this.ticketDetails$ = null;
866
+ this.medicalInsuranceDetails$ = null;
867
+ }
868
+ ensureBaseUrl(baseUrl) {
869
+ if (this.baseUrl && this.baseUrl !== baseUrl) {
870
+ this.clear();
871
+ }
872
+ this.baseUrl = baseUrl;
873
+ }
874
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EntitlementsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
875
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EntitlementsCacheService, providedIn: 'root' });
876
+ }
877
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EntitlementsCacheService, decorators: [{
878
+ type: Injectable,
879
+ args: [{
880
+ providedIn: 'root'
881
+ }]
882
+ }] });
883
+
827
884
  class JobInformationCacheService {
828
885
  baseUrl = '';
829
886
  mainDetails$ = null;
@@ -947,17 +1004,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
947
1004
  }]
948
1005
  }] });
949
1006
 
1007
+ class QualificationsCacheService {
1008
+ baseUrl = '';
1009
+ degrees$ = null;
1010
+ experiences$ = null;
1011
+ getDegrees(baseUrl) {
1012
+ return this.baseUrl === baseUrl ? this.degrees$ : null;
1013
+ }
1014
+ setDegrees(baseUrl, value) {
1015
+ this.ensureBaseUrl(baseUrl);
1016
+ this.degrees$ = value;
1017
+ }
1018
+ getExperiences(baseUrl) {
1019
+ return this.baseUrl === baseUrl ? this.experiences$ : null;
1020
+ }
1021
+ setExperiences(baseUrl, value) {
1022
+ this.ensureBaseUrl(baseUrl);
1023
+ this.experiences$ = value;
1024
+ }
1025
+ clear() {
1026
+ this.baseUrl = '';
1027
+ this.degrees$ = null;
1028
+ this.experiences$ = null;
1029
+ }
1030
+ ensureBaseUrl(baseUrl) {
1031
+ if (this.baseUrl && this.baseUrl !== baseUrl) {
1032
+ this.clear();
1033
+ }
1034
+ this.baseUrl = baseUrl;
1035
+ }
1036
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: QualificationsCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1037
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: QualificationsCacheService, providedIn: 'root' });
1038
+ }
1039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: QualificationsCacheService, decorators: [{
1040
+ type: Injectable,
1041
+ args: [{
1042
+ providedIn: 'root'
1043
+ }]
1044
+ }] });
1045
+
950
1046
  class HRSelfWidgetsService {
951
1047
  http;
952
1048
  bankInformationCacheService;
1049
+ entitlementsCacheService;
953
1050
  jobInformationCacheService;
954
1051
  personalInformationCacheService;
1052
+ qualificationsCacheService;
955
1053
  headers = { 'api-version': '1' };
956
- constructor(http, bankInformationCacheService, jobInformationCacheService, personalInformationCacheService) {
1054
+ constructor(http, bankInformationCacheService, entitlementsCacheService, jobInformationCacheService, personalInformationCacheService, qualificationsCacheService) {
957
1055
  this.http = http;
958
1056
  this.bankInformationCacheService = bankInformationCacheService;
1057
+ this.entitlementsCacheService = entitlementsCacheService;
959
1058
  this.jobInformationCacheService = jobInformationCacheService;
960
1059
  this.personalInformationCacheService = personalInformationCacheService;
1060
+ this.qualificationsCacheService = qualificationsCacheService;
961
1061
  }
962
1062
  getMainDetails(baseUrl) {
963
1063
  return this.http.get(`${baseUrl}/hr/widgets/me/main-details`, {
@@ -1174,7 +1274,110 @@ class HRSelfWidgetsService {
1174
1274
  headers: this.headers
1175
1275
  });
1176
1276
  }
1177
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRSelfWidgetsService, deps: [{ token: i1.HttpClient }, { token: BankInformationCacheService }, { token: JobInformationCacheService }, { token: PersonalInformationCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
1277
+ getEntitlementsVacations(baseUrl, forceRefresh = false) {
1278
+ if (!forceRefresh) {
1279
+ const cachedRequest$ = this.entitlementsCacheService.getVacationDetails(baseUrl);
1280
+ if (cachedRequest$) {
1281
+ return cachedRequest$;
1282
+ }
1283
+ }
1284
+ const request$ = this.http
1285
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/vacations`, {
1286
+ headers: this.headers
1287
+ })
1288
+ .pipe(map((response) => response?.ResponseData ?? null), shareReplay(1), catchError((error) => {
1289
+ this.entitlementsCacheService.clear();
1290
+ return throwError(() => error);
1291
+ }));
1292
+ this.entitlementsCacheService.setVacationDetails(baseUrl, request$);
1293
+ return request$;
1294
+ }
1295
+ getEntitlementsIndemnity(baseUrl, forceRefresh = false) {
1296
+ if (!forceRefresh) {
1297
+ const cachedRequest$ = this.entitlementsCacheService.getIndemnityDetails(baseUrl);
1298
+ if (cachedRequest$) {
1299
+ return cachedRequest$;
1300
+ }
1301
+ }
1302
+ const request$ = this.http
1303
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/indemnity`, {
1304
+ headers: this.headers
1305
+ })
1306
+ .pipe(map((response) => response?.ResponseData ?? null), shareReplay(1), catchError((error) => {
1307
+ this.entitlementsCacheService.clear();
1308
+ return throwError(() => error);
1309
+ }));
1310
+ this.entitlementsCacheService.setIndemnityDetails(baseUrl, request$);
1311
+ return request$;
1312
+ }
1313
+ getEntitlementsTicket(baseUrl, forceRefresh = false) {
1314
+ if (!forceRefresh) {
1315
+ const cachedRequest$ = this.entitlementsCacheService.getTicketDetails(baseUrl);
1316
+ if (cachedRequest$) {
1317
+ return cachedRequest$;
1318
+ }
1319
+ }
1320
+ const request$ = this.http
1321
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/ticket`, {
1322
+ headers: this.headers
1323
+ })
1324
+ .pipe(map((response) => response?.ResponseData ?? null), shareReplay(1), catchError((error) => {
1325
+ this.entitlementsCacheService.clear();
1326
+ return throwError(() => error);
1327
+ }));
1328
+ this.entitlementsCacheService.setTicketDetails(baseUrl, request$);
1329
+ return request$;
1330
+ }
1331
+ getEntitlementsMedicalInsurance(baseUrl, forceRefresh = false) {
1332
+ if (!forceRefresh) {
1333
+ const cachedRequest$ = this.entitlementsCacheService.getMedicalInsuranceDetails(baseUrl);
1334
+ if (cachedRequest$) {
1335
+ return cachedRequest$;
1336
+ }
1337
+ }
1338
+ const request$ = this.http
1339
+ .get(`${baseUrl}/hr/widgets/me/profile/entitlements/medical-insurance`, {
1340
+ headers: this.headers
1341
+ })
1342
+ .pipe(map((response) => response?.ResponseData ?? null), shareReplay(1), catchError((error) => {
1343
+ this.entitlementsCacheService.clear();
1344
+ return throwError(() => error);
1345
+ }));
1346
+ this.entitlementsCacheService.setMedicalInsuranceDetails(baseUrl, request$);
1347
+ return request$;
1348
+ }
1349
+ getEmployeeDegrees(baseUrl, forceRefresh = false) {
1350
+ if (!forceRefresh) {
1351
+ const cachedRequest$ = this.qualificationsCacheService.getDegrees(baseUrl);
1352
+ if (cachedRequest$) {
1353
+ return cachedRequest$;
1354
+ }
1355
+ }
1356
+ const request$ = this.http
1357
+ .get(`${baseUrl}/hr/widgets/me/profile/personal-information/degrees`, { headers: this.headers })
1358
+ .pipe(map((response) => response?.ResponseData ?? []), shareReplay(1), catchError((error) => {
1359
+ this.qualificationsCacheService.clear();
1360
+ return throwError(() => error);
1361
+ }));
1362
+ this.qualificationsCacheService.setDegrees(baseUrl, request$);
1363
+ return request$;
1364
+ }
1365
+ getEmployeeExperiences(baseUrl, forceRefresh = false) {
1366
+ if (!forceRefresh) {
1367
+ const cached = this.qualificationsCacheService.getExperiences(baseUrl);
1368
+ if (cached)
1369
+ return cached;
1370
+ }
1371
+ const request$ = this.http
1372
+ .get(`${baseUrl}/hr/widgets/me/profile/qualifications/experiences`, { headers: this.headers })
1373
+ .pipe(map(res => res?.ResponseData ?? []), shareReplay(1), catchError((error) => {
1374
+ this.qualificationsCacheService.clear();
1375
+ return throwError(() => error);
1376
+ }));
1377
+ this.qualificationsCacheService.setExperiences(baseUrl, request$);
1378
+ return request$;
1379
+ }
1380
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRSelfWidgetsService, deps: [{ token: i1.HttpClient }, { token: BankInformationCacheService }, { token: EntitlementsCacheService }, { token: JobInformationCacheService }, { token: PersonalInformationCacheService }, { token: QualificationsCacheService }], target: i0.ɵɵFactoryTarget.Injectable });
1178
1381
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRSelfWidgetsService, providedIn: 'root' });
1179
1382
  }
1180
1383
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRSelfWidgetsService, decorators: [{
@@ -1182,7 +1385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
1182
1385
  args: [{
1183
1386
  providedIn: 'root'
1184
1387
  }]
1185
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: BankInformationCacheService }, { type: JobInformationCacheService }, { type: PersonalInformationCacheService }] });
1388
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: BankInformationCacheService }, { type: EntitlementsCacheService }, { type: JobInformationCacheService }, { type: PersonalInformationCacheService }, { type: QualificationsCacheService }] });
1186
1389
 
1187
1390
  class HRConstantsService {
1188
1391
  defaultVacationBalanceColor = '#727070';
@@ -2251,11 +2454,11 @@ class HRInfoFieldComponent {
2251
2454
  valueClass = 'fs-14 fw-medium';
2252
2455
  fallbackValue = '—';
2253
2456
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2254
- 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" }] });
2457
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\" [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" }] });
2255
2458
  }
2256
2459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, decorators: [{
2257
2460
  type: Component,
2258
- 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" }]
2461
+ 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" }]
2259
2462
  }], propDecorators: { labelKey: [{
2260
2463
  type: Input,
2261
2464
  args: [{ required: true }]
@@ -2269,130 +2472,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2269
2472
  type: Input
2270
2473
  }] } });
2271
2474
 
2272
- class ProfileBankInfoWidgetComponent {
2273
- commonMethodsService;
2274
- hrSelfWidgetsService;
2275
- isLoading = true;
2276
- constructor(commonMethodsService, hrSelfWidgetsService) {
2277
- this.commonMethodsService = commonMethodsService;
2278
- this.hrSelfWidgetsService = hrSelfWidgetsService;
2279
- }
2280
- ngOnInit() {
2281
- this.isLoadingChanged.emit(true);
2282
- this.hrSelfWidgetsService.getBankInformation(this.baseUrl).subscribe({
2283
- next: (response) => {
2284
- this.isLoading = false;
2285
- this.employeeBankInformation = response ?? [];
2286
- this.isLoadingChanged.emit(false);
2287
- },
2288
- error: (error) => {
2289
- this.isLoading = false;
2290
- this.employeeBankInformation = [];
2291
- this.isLoadingChanged.emit(false);
2292
- this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
2293
- }
2294
- });
2295
- }
2296
- employeeBankInformation = [];
2297
- currencyCode = '';
2298
- currencyDecimals = 2;
2299
- headerIconClass = 'primary-icon-xl';
2300
- headerTextClass = 'mt-2 field-secondary-label-lg';
2301
- headerDividerClass = 'flex-grow-1 ms-2';
2302
- cardClass = 'mt-4 card-shadow position-relative';
2303
- mainBadgeClass = 'position-absolute text-center top-0 mt-3 start-0 bg-primary status-badge';
2304
- mainBadgeTextClass = 'mx-1 fs-12 text-white';
2305
- triangleClass = 'position-absolute start-0 top-0';
2306
- rowClass = 'row px-4 pb-3';
2307
- rowMainPtClass = 'pt-5';
2308
- rowNormalPtClass = 'pt-3';
2309
- columnClass = 'col-md-4 col-6';
2310
- responsiveTopSpacingColClass = 'col-md-4 col-6 mt-md-0 mt-4';
2311
- topSpacingColClass = 'col-md-4 col-6 mt-4';
2312
- labelClass = 'field-secondary-label-sm';
2313
- valueClass = 'table-cell-md text-ellipsis-one-line';
2314
- emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
2315
- emptyStateTextClass = 'field-secondary-label-md';
2316
- bankInformationIcon = faMoneyCheckDollarPen;
2317
- sectionHeaderVisibility = true;
2318
- sectionTitle = 'BankInformation';
2319
- language = 'en';
2320
- baseUrl = '';
2321
- errorOccurred = new EventEmitter();
2322
- isRTL = this.language === 'ar';
2323
- isLoadingChanged = new EventEmitter();
2324
- ngOnChanges(changes) {
2325
- if (changes['language']) {
2326
- this.isRTL = this.language === 'ar';
2327
- }
2328
- }
2329
- formatAmount(value) {
2330
- if (value == null) {
2331
- return '-';
2332
- }
2333
- return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '-';
2334
- }
2335
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileBankInfoWidgetComponent, deps: [{ token: HRCommonMethodsService }, { token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2336
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileBankInfoWidgetComponent, isStandalone: true, selector: "hr-profile-bank-info-widget", inputs: { currencyCode: "currencyCode", currencyDecimals: "currencyDecimals", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", cardClass: "cardClass", mainBadgeClass: "mainBadgeClass", mainBadgeTextClass: "mainBadgeTextClass", triangleClass: "triangleClass", rowClass: "rowClass", rowMainPtClass: "rowMainPtClass", rowNormalPtClass: "rowNormalPtClass", columnClass: "columnClass", responsiveTopSpacingColClass: "responsiveTopSpacingColClass", topSpacingColClass: "topSpacingColClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", bankInformationIcon: "bankInformationIcon", sectionHeaderVisibility: "sectionHeaderVisibility", sectionTitle: "sectionTitle", language: "language", baseUrl: "baseUrl" }, outputs: { errorOccurred: "errorOccurred", isLoadingChanged: "isLoadingChanged" }, usesOnChanges: true, ngImport: i0, template: "@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | HRTranslate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | HRTranslate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoBankYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
2337
- }
2338
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileBankInfoWidgetComponent, decorators: [{
2339
- type: Component,
2340
- args: [{ selector: 'hr-profile-bank-info-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | HRTranslate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | HRTranslate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoBankYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
2341
- }], ctorParameters: () => [{ type: HRCommonMethodsService }, { type: HRSelfWidgetsService }], propDecorators: { currencyCode: [{
2342
- type: Input
2343
- }], currencyDecimals: [{
2344
- type: Input
2345
- }], headerIconClass: [{
2346
- type: Input
2347
- }], headerTextClass: [{
2348
- type: Input
2349
- }], headerDividerClass: [{
2350
- type: Input
2351
- }], cardClass: [{
2352
- type: Input
2353
- }], mainBadgeClass: [{
2354
- type: Input
2355
- }], mainBadgeTextClass: [{
2356
- type: Input
2357
- }], triangleClass: [{
2358
- type: Input
2359
- }], rowClass: [{
2360
- type: Input
2361
- }], rowMainPtClass: [{
2362
- type: Input
2363
- }], rowNormalPtClass: [{
2364
- type: Input
2365
- }], columnClass: [{
2366
- type: Input
2367
- }], responsiveTopSpacingColClass: [{
2368
- type: Input
2369
- }], topSpacingColClass: [{
2370
- type: Input
2371
- }], labelClass: [{
2372
- type: Input
2373
- }], valueClass: [{
2374
- type: Input
2375
- }], emptyStateContainerClass: [{
2376
- type: Input
2377
- }], emptyStateTextClass: [{
2378
- type: Input
2379
- }], bankInformationIcon: [{
2380
- type: Input
2381
- }], sectionHeaderVisibility: [{
2382
- type: Input
2383
- }], sectionTitle: [{
2384
- type: Input
2385
- }], language: [{
2386
- type: Input
2387
- }], baseUrl: [{
2388
- type: Input,
2389
- args: [{ required: true }]
2390
- }], errorOccurred: [{
2391
- type: Output
2392
- }], isLoadingChanged: [{
2393
- type: Output
2394
- }] } });
2395
-
2396
2475
  class ProfilePersonalInfoMainWidgetComponent {
2397
2476
  hrSelfWidgetsService;
2398
2477
  employeePersonalInformation = null;
@@ -2833,393 +2912,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2833
2912
  type: Output
2834
2913
  }] } });
2835
2914
 
2836
- class ProfileJobInfoMainWidgetComponent {
2837
- hrSelfWidgetsService;
2838
- jobInformationMain = null;
2839
- isLoading = true;
2840
- baseUrl = '';
2841
- headerIconClass = 'primary-icon-xl';
2842
- headerTextClass = 'mt-2 field-secondary-label-lg';
2843
- headerDividerClass = 'flex-grow-1 ms-2';
2844
- rowClass = 'row mt-4';
2845
- columnClass = 'col-md-4 col-6';
2846
- responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
2847
- topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
2848
- topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
2849
- labelClass = 'field-secondary-label-sm';
2850
- valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
2851
- emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
2852
- emptyStateTextClass = 'field-secondary-label-md';
2853
- mainIcon = faFileSignature;
2854
- sectionTitle = 'JobInformation';
2855
- isLoadingChanged = new EventEmitter();
2856
- errorOccurred = new EventEmitter();
2857
- constructor(hrSelfWidgetsService) {
2858
- this.hrSelfWidgetsService = hrSelfWidgetsService;
2859
- }
2860
- ngOnInit() {
2861
- if (!this.baseUrl) {
2862
- this.isLoading = false;
2863
- return;
2864
- }
2865
- this.isLoadingChanged.emit(true);
2866
- this.hrSelfWidgetsService.getJobInformationMain(this.baseUrl).subscribe({
2867
- next: (response) => {
2868
- this.isLoading = false;
2869
- this.jobInformationMain = response;
2870
- this.isLoadingChanged.emit(false);
2871
- },
2872
- error: (error) => {
2873
- this.isLoading = false;
2874
- this.jobInformationMain = null;
2875
- this.isLoadingChanged.emit(false);
2876
- this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
2877
- }
2878
- });
2879
- }
2880
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoMainWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2881
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoMainWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-main-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", mainIcon: "mainIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobMainYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
2882
- }
2883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoMainWidgetComponent, decorators: [{
2884
- type: Component,
2885
- args: [{ selector: 'hr-profile-job-info-main-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobMainYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
2886
- }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
2887
- type: Input,
2888
- args: [{ required: true }]
2889
- }], headerIconClass: [{
2890
- type: Input
2891
- }], headerTextClass: [{
2892
- type: Input
2893
- }], headerDividerClass: [{
2894
- type: Input
2895
- }], rowClass: [{
2896
- type: Input
2897
- }], columnClass: [{
2898
- type: Input
2899
- }], responsiveTopSpacingColumnClass: [{
2900
- type: Input
2901
- }], topSpacingBottomMdSpacingColumnClass: [{
2902
- type: Input
2903
- }], topSpacingBottomSpacingColumnClass: [{
2904
- type: Input
2905
- }], labelClass: [{
2906
- type: Input
2907
- }], valueClass: [{
2908
- type: Input
2909
- }], emptyStateContainerClass: [{
2910
- type: Input
2911
- }], emptyStateTextClass: [{
2912
- type: Input
2913
- }], mainIcon: [{
2914
- type: Input
2915
- }], sectionTitle: [{
2916
- type: Input
2917
- }], isLoadingChanged: [{
2918
- type: Output
2919
- }], errorOccurred: [{
2920
- type: Output
2921
- }] } });
2922
-
2923
- class ProfileJobInfoContractWidgetComponent {
2924
- hrSelfWidgetsService;
2925
- jobInformationContract = null;
2926
- isLoading = true;
2927
- baseUrl = '';
2928
- headerIconClass = 'primary-icon-xl';
2929
- headerTextClass = 'mt-2 field-secondary-label-lg';
2930
- headerDividerClass = 'flex-grow-1 ms-2';
2931
- rowClass = 'row mt-4';
2932
- columnClass = 'col-md-4 col-6';
2933
- responsiveTopSpacingColumnClass = 'col-md-4 col-6 mt-md-0 mt-4';
2934
- topSpacingBottomMdSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-md-5';
2935
- topSpacingBottomSpacingColumnClass = 'col-md-4 col-6 mt-4 mb-5';
2936
- labelClass = 'field-secondary-label-sm';
2937
- valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
2938
- emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
2939
- emptyStateTextClass = 'field-secondary-label-md';
2940
- contractIcon = faFileSignature;
2941
- sectionTitle = 'Contract';
2942
- isLoadingChanged = new EventEmitter();
2943
- errorOccurred = new EventEmitter();
2944
- constructor(hrSelfWidgetsService) {
2945
- this.hrSelfWidgetsService = hrSelfWidgetsService;
2946
- }
2947
- ngOnInit() {
2948
- if (!this.baseUrl) {
2949
- this.isLoading = false;
2950
- return;
2951
- }
2952
- this.isLoadingChanged.emit(true);
2953
- this.hrSelfWidgetsService.getJobInformationContract(this.baseUrl).subscribe({
2954
- next: (response) => {
2955
- this.isLoading = false;
2956
- this.jobInformationContract = response;
2957
- this.isLoadingChanged.emit(false);
2958
- },
2959
- error: (error) => {
2960
- this.isLoading = false;
2961
- this.jobInformationContract = null;
2962
- this.isLoadingChanged.emit(false);
2963
- this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
2964
- }
2965
- });
2966
- }
2967
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoContractWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2968
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoContractWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-contract-widget", inputs: { baseUrl: "baseUrl", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", responsiveTopSpacingColumnClass: "responsiveTopSpacingColumnClass", topSpacingBottomMdSpacingColumnClass: "topSpacingBottomMdSpacingColumnClass", topSpacingBottomSpacingColumnClass: "topSpacingBottomSpacingColumnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", contractIcon: "contractIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobContractYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
2969
- }
2970
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoContractWidgetComponent, decorators: [{
2971
- type: Component,
2972
- args: [{ selector: 'hr-profile-job-info-contract-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoJobContractYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n}\r\n" }]
2973
- }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
2974
- type: Input,
2975
- args: [{ required: true }]
2976
- }], headerIconClass: [{
2977
- type: Input
2978
- }], headerTextClass: [{
2979
- type: Input
2980
- }], headerDividerClass: [{
2981
- type: Input
2982
- }], rowClass: [{
2983
- type: Input
2984
- }], columnClass: [{
2985
- type: Input
2986
- }], responsiveTopSpacingColumnClass: [{
2987
- type: Input
2988
- }], topSpacingBottomMdSpacingColumnClass: [{
2989
- type: Input
2990
- }], topSpacingBottomSpacingColumnClass: [{
2991
- type: Input
2992
- }], labelClass: [{
2993
- type: Input
2994
- }], valueClass: [{
2995
- type: Input
2996
- }], emptyStateContainerClass: [{
2997
- type: Input
2998
- }], emptyStateTextClass: [{
2999
- type: Input
3000
- }], contractIcon: [{
3001
- type: Input
3002
- }], sectionTitle: [{
3003
- type: Input
3004
- }], isLoadingChanged: [{
3005
- type: Output
3006
- }], errorOccurred: [{
3007
- type: Output
3008
- }] } });
3009
-
3010
- class ProfileJobInfoSalaryWidgetComponent {
3011
- hrSelfWidgetsService;
3012
- commonMethodsService;
3013
- jobInformationSalary = null;
3014
- isLoading = true;
3015
- baseUrl = '';
3016
- currencyCode = '';
3017
- currencyDecimals = 2;
3018
- headerIconClass = 'primary-icon-xl';
3019
- headerTextClass = 'mt-2 field-secondary-label-lg';
3020
- headerDividerClass = 'flex-grow-1 ms-2';
3021
- rowClass = 'row mt-4';
3022
- columnClass = 'col-md-4 col-6 mt-4';
3023
- grossSalaryColumnClass = 'col-md-4 col-6 my-4';
3024
- labelClass = 'field-secondary-label-sm';
3025
- valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
3026
- currencyClass = 'fs-10 text-secondary fw-light';
3027
- emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
3028
- emptyStateTextClass = 'field-secondary-label-md';
3029
- salaryIcon = faSackDollar;
3030
- sectionTitle = 'Salary';
3031
- isLoadingChanged = new EventEmitter();
3032
- errorOccurred = new EventEmitter();
3033
- constructor(hrSelfWidgetsService, commonMethodsService) {
3034
- this.hrSelfWidgetsService = hrSelfWidgetsService;
3035
- this.commonMethodsService = commonMethodsService;
3036
- }
3037
- ngOnInit() {
3038
- if (!this.baseUrl) {
3039
- this.isLoading = false;
3040
- return;
3041
- }
3042
- this.isLoadingChanged.emit(true);
3043
- this.hrSelfWidgetsService.getJobInformationSalary(this.baseUrl).subscribe({
3044
- next: (response) => {
3045
- this.isLoading = false;
3046
- this.jobInformationSalary = response;
3047
- this.isLoadingChanged.emit(false);
3048
- },
3049
- error: (error) => {
3050
- this.isLoading = false;
3051
- this.jobInformationSalary = null;
3052
- this.isLoadingChanged.emit(false);
3053
- this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
3054
- }
3055
- });
3056
- }
3057
- get basicSalary() {
3058
- return this.jobInformationSalary?.BasicSalary ?? this.jobInformationSalary?.CurrentBasicSalary ?? null;
3059
- }
3060
- get allowances() {
3061
- return this.jobInformationSalary?.Allowances ?? [];
3062
- }
3063
- formatAmount(value) {
3064
- if (value == null) {
3065
- return '—';
3066
- }
3067
- return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '—';
3068
- }
3069
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoSalaryWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRCommonMethodsService }], target: i0.ɵɵFactoryTarget.Component });
3070
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoSalaryWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-salary-widget", inputs: { baseUrl: "baseUrl", currencyCode: "currencyCode", currencyDecimals: "currencyDecimals", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", grossSalaryColumnClass: "grossSalaryColumnClass", labelClass: "labelClass", valueClass: "valueClass", currencyClass: "currencyClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", salaryIcon: "salaryIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }] });
3071
- }
3072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoSalaryWidgetComponent, decorators: [{
3073
- type: Component,
3074
- args: [{ selector: 'hr-profile-job-info-salary-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent], template: "@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n" }]
3075
- }], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRCommonMethodsService }], propDecorators: { baseUrl: [{
3076
- type: Input,
3077
- args: [{ required: true }]
3078
- }], currencyCode: [{
3079
- type: Input
3080
- }], currencyDecimals: [{
3081
- type: Input
3082
- }], headerIconClass: [{
3083
- type: Input
3084
- }], headerTextClass: [{
3085
- type: Input
3086
- }], headerDividerClass: [{
3087
- type: Input
3088
- }], rowClass: [{
3089
- type: Input
3090
- }], columnClass: [{
3091
- type: Input
3092
- }], grossSalaryColumnClass: [{
3093
- type: Input
3094
- }], labelClass: [{
3095
- type: Input
3096
- }], valueClass: [{
3097
- type: Input
3098
- }], currencyClass: [{
3099
- type: Input
3100
- }], emptyStateContainerClass: [{
3101
- type: Input
3102
- }], emptyStateTextClass: [{
3103
- type: Input
3104
- }], salaryIcon: [{
3105
- type: Input
3106
- }], sectionTitle: [{
3107
- type: Input
3108
- }], isLoadingChanged: [{
3109
- type: Output
3110
- }], errorOccurred: [{
3111
- type: Output
3112
- }] } });
3113
-
3114
- class ProfileJobInfoServiceChargeWidgetComponent {
3115
- hrSelfWidgetsService;
3116
- commonMethodsService;
3117
- jobInformationServiceCharge = null;
3118
- isLoading = true;
3119
- baseUrl = '';
3120
- currencyCode = '';
3121
- headerIconClass = 'primary-icon-xl';
3122
- headerTextClass = 'mt-2 field-secondary-label-lg';
3123
- headerDividerClass = 'flex-grow-1 ms-2';
3124
- rowClass = 'row mt-4 mb-5';
3125
- columnClass = 'col-md-4 col-6';
3126
- labelClass = 'field-secondary-label-sm';
3127
- valueClass = 'fs-14 fw-medium text-ellipsis-one-line';
3128
- emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
3129
- emptyStateTextClass = 'field-secondary-label-md';
3130
- serviceChargeIcon = faEnvelopeOpenDollar;
3131
- sectionTitle = 'ServiceCharge';
3132
- isLoadingChanged = new EventEmitter();
3133
- errorOccurred = new EventEmitter();
3134
- constructor(hrSelfWidgetsService, commonMethodsService) {
3135
- this.hrSelfWidgetsService = hrSelfWidgetsService;
3136
- this.commonMethodsService = commonMethodsService;
3137
- }
3138
- ngOnInit() {
3139
- if (!this.baseUrl) {
3140
- this.isLoading = false;
3141
- return;
3142
- }
3143
- this.isLoadingChanged.emit(true);
3144
- this.hrSelfWidgetsService.getJobInformationServiceCharge(this.baseUrl).subscribe({
3145
- next: (response) => {
3146
- this.isLoading = false;
3147
- this.jobInformationServiceCharge = response;
3148
- this.isLoadingChanged.emit(false);
3149
- },
3150
- error: (error) => {
3151
- this.isLoading = false;
3152
- this.jobInformationServiceCharge = null;
3153
- this.isLoadingChanged.emit(false);
3154
- this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
3155
- }
3156
- });
3157
- }
3158
- get modeLabelKey() {
3159
- const mode = this.jobInformationServiceCharge?.ServiceChargeEntitlementMode;
3160
- switch (ServiceChargeEntitlementMode[mode]) {
3161
- case ServiceChargeEntitlementMode.Points:
3162
- return 'Points';
3163
- case ServiceChargeEntitlementMode.SalaryRatio:
3164
- return 'SalaryRatio';
3165
- case ServiceChargeEntitlementMode.FixedAmount:
3166
- return 'FixedAmount';
3167
- case ServiceChargeEntitlementMode.FixedRate:
3168
- return 'FixedRate';
3169
- default:
3170
- return 'ServiceCharge';
3171
- }
3172
- }
3173
- get value() {
3174
- const data = this.jobInformationServiceCharge;
3175
- if (!data || data.ServiceChargeValue == null) {
3176
- return '—';
3177
- }
3178
- if (ServiceChargeEntitlementMode[data.ServiceChargeEntitlementMode] ===
3179
- ServiceChargeEntitlementMode.FixedAmount) {
3180
- return `${this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 4)} (${this.currencyCode})`;
3181
- }
3182
- return this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 2) || '—';
3183
- }
3184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoServiceChargeWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRCommonMethodsService }], target: i0.ɵɵFactoryTarget.Component });
3185
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileJobInfoServiceChargeWidgetComponent, isStandalone: true, selector: "hr-profile-job-info-service-charge-widget", inputs: { baseUrl: "baseUrl", currencyCode: "currencyCode", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", columnClass: "columnClass", labelClass: "labelClass", valueClass: "valueClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", serviceChargeIcon: "serviceChargeIcon", sectionTitle: "sectionTitle" }, outputs: { isLoadingChanged: "isLoadingChanged", errorOccurred: "errorOccurred" }, ngImport: i0, template: "@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }] });
3186
- }
3187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileJobInfoServiceChargeWidgetComponent, decorators: [{
3188
- type: Component,
3189
- args: [{ selector: 'hr-profile-job-info-service-charge-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent], template: "@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | HRTranslate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n" }]
3190
- }], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRCommonMethodsService }], propDecorators: { baseUrl: [{
3191
- type: Input,
3192
- args: [{ required: true }]
3193
- }], currencyCode: [{
3194
- type: Input
3195
- }], headerIconClass: [{
3196
- type: Input
3197
- }], headerTextClass: [{
3198
- type: Input
3199
- }], headerDividerClass: [{
3200
- type: Input
3201
- }], rowClass: [{
3202
- type: Input
3203
- }], columnClass: [{
3204
- type: Input
3205
- }], labelClass: [{
3206
- type: Input
3207
- }], valueClass: [{
3208
- type: Input
3209
- }], emptyStateContainerClass: [{
3210
- type: Input
3211
- }], emptyStateTextClass: [{
3212
- type: Input
3213
- }], serviceChargeIcon: [{
3214
- type: Input
3215
- }], sectionTitle: [{
3216
- type: Input
3217
- }], isLoadingChanged: [{
3218
- type: Output
3219
- }], errorOccurred: [{
3220
- type: Output
3221
- }] } });
3222
-
3223
2915
  class HRVacationSubordinatesPopupComponent {
3224
2916
  http;
3225
2917
  dataGrid;
@@ -3426,5 +3118,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3426
3118
  * Generated bundle index. Do not edit.
3427
3119
  */
3428
3120
 
3429
- export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyUpcomingEventsWidgetComponent, MyVacationTeamWidgetComponent, ProfileBankInfoWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
3121
+ export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyUpcomingEventsWidgetComponent, MyVacationTeamWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
3430
3122
  //# sourceMappingURL=skysoftware-co-bayan-hr-widgets-ui.mjs.map