@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.
- package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs +210 -518
- package/fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs.map +1 -1
- package/lib/services/hr-self-widgets.service.d.ts +12 -2
- package/lib/shared/services/entitlements-cache.service.d.ts +22 -0
- package/lib/shared/services/qualifications-cache.service.d.ts +16 -0
- package/lib/shared/types/common.d.ts +64 -0
- package/package.json +1 -1
- package/public-api.d.ts +0 -5
- package/lib/profile-bank-info-widget/profile-bank-info-widget.component.d.ts +0 -44
- package/lib/profile-job-info-contract-widget/profile-job-info-contract-widget.component.d.ts +0 -30
- package/lib/profile-job-info-main-widget/profile-job-info-main-widget.component.d.ts +0 -30
- package/lib/profile-job-info-salary-widget/profile-job-info-salary-widget.component.d.ts +0 -36
- package/lib/profile-job-info-service-charge-widget/profile-job-info-service-charge-widget.component.d.ts +0 -32
|
@@ -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,
|
|
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
|
-
|
|
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,
|
|
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
|