@skysoftware-co/bayan-hr-widgets-ui 1.0.26 → 1.0.28

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.
@@ -177,6 +177,17 @@ var StartDate$2 = "Start date";
177
177
  var EndDate$2 = "End date";
178
178
  var ReturnDate$2 = "Return date";
179
179
  var JobInformation$2 = "Job information";
180
+ var Degrees$2 = "Degrees";
181
+ var degrees$2 = "Degrees";
182
+ var experiences$2 = "Experiences";
183
+ var Country$2 = "Country";
184
+ var Specialty$2 = "Specialty";
185
+ var Institute$2 = "Institute";
186
+ var Period$2 = "Period";
187
+ var Employer$2 = "Employer";
188
+ var TerminationReason$2 = "Termination reason";
189
+ var ThereIsNoDegreesYet$2 = "There are no degrees yet";
190
+ var ThereIsNoExperiencesYet$2 = "There are no experiences yet";
180
191
  var en = {
181
192
  ReportingTo: ReportingTo$2,
182
193
  NotAnknown: NotAnknown$2,
@@ -286,7 +297,19 @@ var en = {
286
297
  EndDate: EndDate$2,
287
298
  ReturnDate: ReturnDate$2,
288
299
  "Search...": "Search...",
289
- JobInformation: JobInformation$2
300
+ JobInformation: JobInformation$2,
301
+ Degrees: Degrees$2,
302
+ degrees: degrees$2,
303
+ experiences: experiences$2,
304
+ "Degree/Year": "Degree/Year",
305
+ Country: Country$2,
306
+ Specialty: Specialty$2,
307
+ Institute: Institute$2,
308
+ Period: Period$2,
309
+ Employer: Employer$2,
310
+ TerminationReason: TerminationReason$2,
311
+ ThereIsNoDegreesYet: ThereIsNoDegreesYet$2,
312
+ ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$2
290
313
  };
291
314
 
292
315
  var ReportingTo$1 = "مفوض الى";
@@ -395,6 +418,17 @@ var StartDate$1 = "تاريخ البداية";
395
418
  var EndDate$1 = "تاريخ النهاية";
396
419
  var ReturnDate$1 = "تاريخ العودة";
397
420
  var JobInformation$1 = "معلومات الوظيفة";
421
+ var Degrees$1 = "المؤهلات العلمية";
422
+ var degrees$1 = "المؤهلات العلمية";
423
+ var experiences$1 = "الخبرات";
424
+ var Country$1 = "الدولة";
425
+ var Specialty$1 = "التخصص";
426
+ var Institute$1 = "المعهد";
427
+ var Period$1 = "الفترة";
428
+ var Employer$1 = "جهة العمل";
429
+ var TerminationReason$1 = "سبب إنهاء الخدمة";
430
+ var ThereIsNoDegreesYet$1 = "لا توجد مؤهلات علمية بعد";
431
+ var ThereIsNoExperiencesYet$1 = "لا توجد خبرات بعد";
398
432
  var ar = {
399
433
  ReportingTo: ReportingTo$1,
400
434
  NotAnknown: NotAnknown$1,
@@ -503,7 +537,19 @@ var ar = {
503
537
  EndDate: EndDate$1,
504
538
  ReturnDate: ReturnDate$1,
505
539
  "Search...": "بحث...",
506
- JobInformation: JobInformation$1
540
+ JobInformation: JobInformation$1,
541
+ Degrees: Degrees$1,
542
+ degrees: degrees$1,
543
+ experiences: experiences$1,
544
+ "Degree/Year": "الدرجة / السنة",
545
+ Country: Country$1,
546
+ Specialty: Specialty$1,
547
+ Institute: Institute$1,
548
+ Period: Period$1,
549
+ Employer: Employer$1,
550
+ TerminationReason: TerminationReason$1,
551
+ ThereIsNoDegreesYet: ThereIsNoDegreesYet$1,
552
+ ThereIsNoExperiencesYet: ThereIsNoExperiencesYet$1
507
553
  };
508
554
 
509
555
  var ReportingTo = "Rapport à";
@@ -613,6 +659,17 @@ var StartDate = "Date de début";
613
659
  var EndDate = "Date de fin";
614
660
  var ReturnDate = "Date de retour";
615
661
  var JobInformation = "Informations sur l'emploi";
662
+ var Degrees = "Diplomes";
663
+ var degrees = "Diplomes";
664
+ var experiences = "Experiences";
665
+ var Country = "Pays";
666
+ var Specialty = "Specialite";
667
+ var Institute = "Institut";
668
+ var Period = "Periode";
669
+ var Employer = "Employeur";
670
+ var TerminationReason = "Motif de fin de service";
671
+ var ThereIsNoDegreesYet = "Il n'y a pas encore de diplomes";
672
+ var ThereIsNoExperiencesYet = "Il n'y a pas encore d'experiences";
616
673
  var fr = {
617
674
  ReportingTo: ReportingTo,
618
675
  NotAnknown: NotAnknown,
@@ -722,7 +779,19 @@ var fr = {
722
779
  EndDate: EndDate,
723
780
  ReturnDate: ReturnDate,
724
781
  "Search...": "Rechercher...",
725
- JobInformation: JobInformation
782
+ JobInformation: JobInformation,
783
+ Degrees: Degrees,
784
+ degrees: degrees,
785
+ experiences: experiences,
786
+ "Degree/Year": "Diplome/Annee",
787
+ Country: Country,
788
+ Specialty: Specialty,
789
+ Institute: Institute,
790
+ Period: Period,
791
+ Employer: Employer,
792
+ TerminationReason: TerminationReason,
793
+ ThereIsNoDegreesYet: ThereIsNoDegreesYet,
794
+ ThereIsNoExperiencesYet: ThereIsNoExperiencesYet
726
795
  };
727
796
 
728
797
  const BUILT_IN_LEXICONS = { en, ar, fr };
@@ -1269,7 +1338,7 @@ class HRSelfWidgetsService {
1269
1338
  }
1270
1339
  getVacationSummary(baseUrl) {
1271
1340
  const params = new HttpParams().set('ShowDirectSubordinatesOnly', 'false');
1272
- return this.http.get(`${baseUrl}/hr/widgets/me/team/next-week-vacation-insights/summary`, {
1341
+ return this.http.get(`${baseUrl}/hr/widgets/me/team/subordinates/vacations/summary`, {
1273
1342
  params,
1274
1343
  headers: this.headers
1275
1344
  });
@@ -1354,7 +1423,7 @@ class HRSelfWidgetsService {
1354
1423
  }
1355
1424
  }
1356
1425
  const request$ = this.http
1357
- .get(`${baseUrl}/hr/widgets/me/profile/qualifications/degrees`, { headers: this.headers })
1426
+ .get(`${baseUrl}/hr/widgets/me/profile/personal-information/degrees`, { headers: this.headers })
1358
1427
  .pipe(map((response) => response?.ResponseData ?? []), shareReplay(1), catchError((error) => {
1359
1428
  this.qualificationsCacheService.clear();
1360
1429
  return throwError(() => error);
@@ -2248,6 +2317,7 @@ class MyCalendarWidgetComponent {
2248
2317
  selfWidgetsService;
2249
2318
  baseUrl = '';
2250
2319
  headerContainerClass = '';
2320
+ datasource = null;
2251
2321
  isLoadingChanged = new EventEmitter();
2252
2322
  calendarIcon = faCalendarDays;
2253
2323
  legendContainerClass = 'row mb-2';
@@ -2270,17 +2340,29 @@ class MyCalendarWidgetComponent {
2270
2340
  eventsColor = this.constants.defaultEventsColor;
2271
2341
  hrCalendar;
2272
2342
  scheduleCalenderVacation = [];
2273
- minDate = new Date();
2343
+ minDate;
2274
2344
  maxDate;
2345
+ baseCalendarData = [];
2346
+ hrVacations = [];
2347
+ calendarLoaded = false;
2275
2348
  constructor(selfWidgetsService) {
2276
2349
  this.selfWidgetsService = selfWidgetsService;
2277
- const currentDate = moment().date(1).subtract(1, 'month');
2278
- this.minDate = new Date(currentDate.year(), currentDate.month(), currentDate.date());
2279
- this.maxDate = new Date(this.minDate.getFullYear() + 1, this.minDate.getMonth() + 1, 0);
2350
+ this.initDateRange();
2280
2351
  }
2281
2352
  ngOnInit() {
2282
2353
  this.loadCalendar();
2283
2354
  }
2355
+ ngOnChanges(changes) {
2356
+ if (changes['datasource'] && this.datasource && this.calendarLoaded) {
2357
+ this.buildCalendarData();
2358
+ this.refreshCalendar();
2359
+ }
2360
+ }
2361
+ initDateRange() {
2362
+ const currentDate = moment().date(1).subtract(1, 'month');
2363
+ this.minDate = new Date(currentDate.year(), currentDate.month(), currentDate.date());
2364
+ this.maxDate = new Date(this.minDate.getFullYear() + 1, this.minDate.getMonth() + 1, 0);
2365
+ }
2284
2366
  getCalendar(month, year, monthsCount) {
2285
2367
  return this.selfWidgetsService.getCalendar(this.baseUrl, month, year, monthsCount);
2286
2368
  }
@@ -2294,46 +2376,54 @@ class MyCalendarWidgetComponent {
2294
2376
  this.isLoadingChanged.emit(false);
2295
2377
  this.mapCalendarData(response.ResponseData);
2296
2378
  },
2297
- error: (error) => {
2379
+ error: () => {
2298
2380
  this.isLoadingChanged.emit(false);
2299
2381
  },
2300
2382
  });
2301
2383
  }
2302
2384
  mapCalendarData(data) {
2303
- const result = [];
2304
- for (const v of data.Vacations) {
2305
- result.push({
2306
- VacationType: ScheduleVacationTypes.Vacations,
2307
- Description: v.VacationTypeName,
2308
- Color: v.Color,
2309
- VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }
2310
- });
2311
- }
2312
- for (const ph of data.PublicHolidays) {
2313
- result.push({
2385
+ this.baseCalendarData = [
2386
+ ...data.PublicHolidays.map(ph => ({
2314
2387
  VacationType: ScheduleVacationTypes.PublicHoliday,
2315
2388
  Description: ph.Description,
2316
2389
  Color: this.publicHolidayColor,
2317
2390
  VacationDays: { StartDate: ph.StartDate, EndDate: ph.EndDate }
2318
- });
2319
- }
2320
- for (const od of data.OffDays) {
2321
- result.push({
2391
+ })),
2392
+ ...data.OffDays.map(od => ({
2322
2393
  VacationType: ScheduleVacationTypes.DaysOff,
2323
2394
  Description: this.translatePipe.transform('DayOff'),
2324
2395
  Color: this.dayOffColor,
2325
2396
  VacationDays: { StartDate: od, EndDate: od }
2326
- });
2327
- }
2328
- for (const ev of data.Events) {
2329
- result.push({
2330
- VacationType: ScheduleVacationTypes.Events,
2331
- Description: ev.Description,
2332
- Color: this.eventsColor,
2333
- VacationDays: { StartDate: ev.StartDate, EndDate: ev.EndDate }
2334
- });
2335
- }
2336
- this.scheduleCalenderVacation = result;
2397
+ }))
2398
+ ];
2399
+ this.hrVacations = (data.Vacations ?? []).map(v => ({
2400
+ VacationType: ScheduleVacationTypes.Vacations,
2401
+ Description: v.VacationTypeName,
2402
+ Color: v.Color,
2403
+ VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }
2404
+ }));
2405
+ this.calendarLoaded = true;
2406
+ this.buildCalendarData();
2407
+ this.refreshCalendar();
2408
+ }
2409
+ buildCalendarData() {
2410
+ const pendingVacations = this.datasource?.PendingVacationRequests?.map(v => ({
2411
+ VacationType: ScheduleVacationTypes.Vacations,
2412
+ Description: v.VacationTypeName,
2413
+ Color: v.Color,
2414
+ VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }
2415
+ })) ?? [];
2416
+ const mergedVacations = this.mergeConsecutiveVacations([...this.hrVacations, ...pendingVacations]
2417
+ .sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime()));
2418
+ const events = this.datasource?.PendingEventRequests?.map(ev => ({
2419
+ VacationType: ScheduleVacationTypes.Events,
2420
+ Description: ev.Description,
2421
+ Color: this.eventsColor,
2422
+ VacationDays: { StartDate: ev.StartDate, EndDate: ev.EndDate }
2423
+ })) ?? [];
2424
+ this.scheduleCalenderVacation = [...mergedVacations, ...this.baseCalendarData, ...events];
2425
+ }
2426
+ refreshCalendar() {
2337
2427
  setTimeout(() => {
2338
2428
  if (this.hrCalendar?.calendar) {
2339
2429
  this.hrCalendar.calendar.instance._refresh();
@@ -2341,8 +2431,42 @@ class MyCalendarWidgetComponent {
2341
2431
  }
2342
2432
  }, 100);
2343
2433
  }
2434
+ mergeConsecutiveVacations(vacations) {
2435
+ if (vacations.length === 0)
2436
+ return [];
2437
+ const grouped = new Map();
2438
+ for (const v of vacations) {
2439
+ const key = `${v.Description}|${v.Color ?? ''}`;
2440
+ if (!grouped.has(key))
2441
+ grouped.set(key, []);
2442
+ grouped.get(key).push(v);
2443
+ }
2444
+ const result = [];
2445
+ grouped.forEach((items) => {
2446
+ items.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());
2447
+ let merged = { ...items[0], VacationDays: { ...items[0].VacationDays } };
2448
+ for (let i = 1; i < items.length; i++) {
2449
+ const current = items[i];
2450
+ const lastEnd = new Date(merged.VacationDays.EndDate);
2451
+ const currentStart = new Date(current.VacationDays.StartDate);
2452
+ const diffDays = (currentStart.getTime() - lastEnd.getTime()) / (1000 * 60 * 60 * 24);
2453
+ if (diffDays <= 1) {
2454
+ const currentEnd = new Date(current.VacationDays.EndDate);
2455
+ if (currentEnd.getTime() > lastEnd.getTime()) {
2456
+ merged.VacationDays.EndDate = current.VacationDays.EndDate;
2457
+ }
2458
+ }
2459
+ else {
2460
+ result.push(merged);
2461
+ merged = { ...current, VacationDays: { ...current.VacationDays } };
2462
+ }
2463
+ }
2464
+ result.push(merged);
2465
+ });
2466
+ return result.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());
2467
+ }
2344
2468
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyCalendarWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
2345
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MyCalendarWidgetComponent, isStandalone: true, selector: "hr-my-calendar-widget", inputs: { baseUrl: "baseUrl", headerContainerClass: "headerContainerClass", legendContainerClass: "legendContainerClass", legendRowClass: "legendRowClass", legendItemClass: "legendItemClass", legendDotClass: "legendDotClass", legendLabelClass: "legendLabelClass", publicHolidayDotClass: "publicHolidayDotClass", dayOffDotClass: "dayOffDotClass", eventsDotClass: "eventsDotClass", vacationsContainerClass: "vacationsContainerClass", vacationsItemClass: "vacationsItemClass", vacationsIconClass: "vacationsIconClass", calendarContainerClass: "calendarContainerClass", calendarClass: "calendarClass", publicHolidayColor: "publicHolidayColor", dayOffColor: "dayOffColor", eventsColor: "eventsColor" }, outputs: { isLoadingChanged: "isLoadingChanged" }, viewQueries: [{ propertyName: "hrCalendar", first: true, predicate: HREmployeeCalendarComponent, descendants: true }], ngImport: i0, template: "<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | HRTranslate\"\r\n [containerClass]=\"'d-flex align-items-center mb-3 ' + headerContainerClass\">\r\n</hr-card-header>\r\n<hr-employee-calendar\r\n [showEvents]=\"true\"\r\n [showUpComingVacations]=\"true\"\r\n [scheduleCalenderVacation]=\"scheduleCalenderVacation\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [legendContainerClass]=\"legendContainerClass\"\r\n [legendRowClass]=\"legendRowClass\"\r\n [legendItemClass]=\"legendItemClass\"\r\n [legendDotClass]=\"legendDotClass\"\r\n [legendLabelClass]=\"legendLabelClass\"\r\n [publicHolidayDotClass]=\"publicHolidayDotClass\"\r\n [dayOffDotClass]=\"dayOffDotClass\"\r\n [eventsDotClass]=\"eventsDotClass\"\r\n [vacationsContainerClass]=\"vacationsContainerClass\"\r\n [vacationsItemClass]=\"vacationsItemClass\"\r\n [vacationsIconClass]=\"vacationsIconClass\"\r\n [calendarContainerClass]=\"calendarContainerClass\"\r\n [calendarClass]=\"calendarClass\">\r\n</hr-employee-calendar>\r\n", dependencies: [{ kind: "component", type: HREmployeeCalendarComponent, selector: "hr-employee-calendar", inputs: ["showEvents", "showUpComingVacations", "scheduleCalenderVacation", "minDate", "maxDate", "legendContainerClass", "legendRowClass", "legendItemClass", "legendDotClass", "legendLabelClass", "publicHolidayDotClass", "dayOffDotClass", "eventsDotClass", "vacationsContainerClass", "vacationsItemClass", "vacationsIconClass", "calendarContainerClass", "calendarClass"] }, { kind: "component", type: HRCardHeaderComponent, selector: "hr-card-header", inputs: ["icon", "title", "containerClass", "iconClass", "titleClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
2469
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MyCalendarWidgetComponent, isStandalone: true, selector: "hr-my-calendar-widget", inputs: { baseUrl: "baseUrl", headerContainerClass: "headerContainerClass", datasource: "datasource", legendContainerClass: "legendContainerClass", legendRowClass: "legendRowClass", legendItemClass: "legendItemClass", legendDotClass: "legendDotClass", legendLabelClass: "legendLabelClass", publicHolidayDotClass: "publicHolidayDotClass", dayOffDotClass: "dayOffDotClass", eventsDotClass: "eventsDotClass", vacationsContainerClass: "vacationsContainerClass", vacationsItemClass: "vacationsItemClass", vacationsIconClass: "vacationsIconClass", calendarContainerClass: "calendarContainerClass", calendarClass: "calendarClass", publicHolidayColor: "publicHolidayColor", dayOffColor: "dayOffColor", eventsColor: "eventsColor" }, outputs: { isLoadingChanged: "isLoadingChanged" }, viewQueries: [{ propertyName: "hrCalendar", first: true, predicate: HREmployeeCalendarComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | HRTranslate\"\r\n [containerClass]=\"'d-flex align-items-center mb-3 ' + headerContainerClass\">\r\n</hr-card-header>\r\n<hr-employee-calendar\r\n [showEvents]=\"true\"\r\n [showUpComingVacations]=\"true\"\r\n [scheduleCalenderVacation]=\"scheduleCalenderVacation\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [legendContainerClass]=\"legendContainerClass\"\r\n [legendRowClass]=\"legendRowClass\"\r\n [legendItemClass]=\"legendItemClass\"\r\n [legendDotClass]=\"legendDotClass\"\r\n [legendLabelClass]=\"legendLabelClass\"\r\n [publicHolidayDotClass]=\"publicHolidayDotClass\"\r\n [dayOffDotClass]=\"dayOffDotClass\"\r\n [eventsDotClass]=\"eventsDotClass\"\r\n [vacationsContainerClass]=\"vacationsContainerClass\"\r\n [vacationsItemClass]=\"vacationsItemClass\"\r\n [vacationsIconClass]=\"vacationsIconClass\"\r\n [calendarContainerClass]=\"calendarContainerClass\"\r\n [calendarClass]=\"calendarClass\">\r\n</hr-employee-calendar>\r\n", dependencies: [{ kind: "component", type: HREmployeeCalendarComponent, selector: "hr-employee-calendar", inputs: ["showEvents", "showUpComingVacations", "scheduleCalenderVacation", "minDate", "maxDate", "legendContainerClass", "legendRowClass", "legendItemClass", "legendDotClass", "legendLabelClass", "publicHolidayDotClass", "dayOffDotClass", "eventsDotClass", "vacationsContainerClass", "vacationsItemClass", "vacationsIconClass", "calendarContainerClass", "calendarClass"] }, { kind: "component", type: HRCardHeaderComponent, selector: "hr-card-header", inputs: ["icon", "title", "containerClass", "iconClass", "titleClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
2346
2470
  }
2347
2471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyCalendarWidgetComponent, decorators: [{
2348
2472
  type: Component,
@@ -2351,6 +2475,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2351
2475
  type: Input
2352
2476
  }], headerContainerClass: [{
2353
2477
  type: Input
2478
+ }], datasource: [{
2479
+ type: Input
2354
2480
  }], isLoadingChanged: [{
2355
2481
  type: Output
2356
2482
  }], legendContainerClass: [{
@@ -2397,11 +2523,11 @@ class HRInfoFieldComponent {
2397
2523
  valueClass = 'fs-14 fw-medium';
2398
2524
  fallbackValue = '—';
2399
2525
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2400
- 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" }] });
2526
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: HRInfoFieldComponent, isStandalone: true, selector: "hr-info-field", inputs: { labelKey: "labelKey", value: "value", labelClass: "labelClass", valueClass: "valueClass", fallbackValue: "fallbackValue" }, ngImport: i0, template: "<div [ngClass]=\"labelClass\">{{labelKey | HRTranslate}}</div>\r\n<div [ngClass]=\"valueClass\" [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" }] });
2401
2527
  }
2402
2528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, decorators: [{
2403
2529
  type: Component,
2404
- 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" }]
2530
+ 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" }]
2405
2531
  }], propDecorators: { labelKey: [{
2406
2532
  type: Input,
2407
2533
  args: [{ required: true }]
@@ -3577,15 +3703,18 @@ class ProfileExperiencesWidgetComponent {
3577
3703
  headerTextClass = 'fs-16 mt-2 text-secondary';
3578
3704
  headerDividerClass = 'flex-grow-1 ms-2';
3579
3705
  rowClass = 'mt-4';
3580
- itemRowClass = 'row col-10 mt-3';
3581
- itemColumnClass = 'col-3';
3582
3706
  labelClass = 'field-secondary-label-sm';
3583
3707
  valueClass = 'text-dark-gray fs-14 text-ellipsis-one-line cursor-pointer';
3584
- actionsColumnClass = 'col-2 mt-3';
3585
3708
  viewIconClass = 'fs-15 text-dark cursor-pointer';
3586
3709
  downloadIconClass = 'fs-15 text-dark cursor-pointer mx-2';
3587
3710
  emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
3588
3711
  emptyStateTextClass = 'field-secondary-label-md';
3712
+ itemRowClass = 'row';
3713
+ itemColumnsWrapperClass = 'row col-10 mt-3';
3714
+ itemColumnClass = 'col-3';
3715
+ actionsColumnClass = 'align-items-end col-2 mt-4 pt-2';
3716
+ rowMarginBottomClass = 'mb-5';
3717
+ rowMarginBottomEmptyClass = 'mb-4';
3589
3718
  isLoadingChanged = new EventEmitter();
3590
3719
  attachmentViewed = new EventEmitter();
3591
3720
  attachmentDownloaded = new EventEmitter();
@@ -3619,13 +3748,23 @@ class ProfileExperiencesWidgetComponent {
3619
3748
  onAttachmentDownload(file) {
3620
3749
  this.attachmentDownloaded.emit(file);
3621
3750
  }
3751
+ get wrapperClass() {
3752
+ const classes = [this.rowClass];
3753
+ if (this.experiences.length > 0) {
3754
+ classes.push(this.rowMarginBottomClass);
3755
+ }
3756
+ else {
3757
+ classes.push(this.rowMarginBottomEmptyClass);
3758
+ }
3759
+ return classes.join(' ');
3760
+ }
3622
3761
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileExperiencesWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
3623
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileExperiencesWidgetComponent, isStandalone: true, selector: "hr-profile-experiences-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", viewIcon: "viewIcon", downloadIcon: "downloadIcon", experienceIcon: "experienceIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", itemRowClass: "itemRowClass", itemColumnClass: "itemColumnClass", labelClass: "labelClass", valueClass: "valueClass", actionsColumnClass: "actionsColumnClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(experiences.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(experience.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
3762
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileExperiencesWidgetComponent, isStandalone: true, selector: "hr-profile-experiences-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", viewIcon: "viewIcon", downloadIcon: "downloadIcon", experienceIcon: "experienceIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", labelClass: "labelClass", valueClass: "valueClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", itemRowClass: "itemRowClass", itemColumnsWrapperClass: "itemColumnsWrapperClass", itemColumnClass: "itemColumnClass", actionsColumnClass: "actionsColumnClass", rowMarginBottomClass: "rowMarginBottomClass", rowMarginBottomEmptyClass: "rowMarginBottomEmptyClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"wrapperClass\">\r\n\r\n @if(experiences.length > 0){\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n <div [class]=\"actionsColumnClass\">\r\n @if(experience.Document){\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i2$1.DatePipe, name: "date" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
3624
3763
  }
3625
3764
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileExperiencesWidgetComponent, decorators: [{
3626
3765
  type: Component,
3627
3766
  args: [{ selector: 'hr-profile-experiences-widget', standalone: true, imports: [CommonModule, SkySectionDividerComponent,
3628
- HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(experiences.length > 0){\r\n\r\n<div [class]=\"rowClass\">\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n\r\n @if(experience.Document){\r\n <div [class]=\"actionsColumnClass\">\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n </div>\r\n }\r\n\r\n }\r\n\r\n</div>\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n" }]
3767
+ HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"wrapperClass\">\r\n\r\n @if(experiences.length > 0){\r\n\r\n @for (experience of experiences; track experience){\r\n\r\n <div [class]=\"itemRowClass\">\r\n\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Period\"\r\n [value]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Employer\"\r\n [value]=\"experience.Employer\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"Position\"\r\n [value]=\"experience.Position\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <hr-info-field labelKey=\"TerminationReason\"\r\n [value]=\"experience.TerminationReason\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n </div>\r\n <div [class]=\"actionsColumnClass\">\r\n @if(experience.Document){\r\n <fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(experience.Document)\"></fa-icon>\r\n <fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(experience.Document)\"></fa-icon>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n\r\n\r\n}@else{\r\n\r\n\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoExperiencesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n\r\n}\r\n</div>\r\n" }]
3629
3768
  }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
3630
3769
  type: Input
3631
3770
  }], sectionTitle: [{
@@ -3644,16 +3783,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3644
3783
  type: Input
3645
3784
  }], rowClass: [{
3646
3785
  type: Input
3647
- }], itemRowClass: [{
3648
- type: Input
3649
- }], itemColumnClass: [{
3650
- type: Input
3651
3786
  }], labelClass: [{
3652
3787
  type: Input
3653
3788
  }], valueClass: [{
3654
3789
  type: Input
3655
- }], actionsColumnClass: [{
3656
- type: Input
3657
3790
  }], viewIconClass: [{
3658
3791
  type: Input
3659
3792
  }], downloadIconClass: [{
@@ -3662,6 +3795,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3662
3795
  type: Input
3663
3796
  }], emptyStateTextClass: [{
3664
3797
  type: Input
3798
+ }], itemRowClass: [{
3799
+ type: Input
3800
+ }], itemColumnsWrapperClass: [{
3801
+ type: Input
3802
+ }], itemColumnClass: [{
3803
+ type: Input
3804
+ }], actionsColumnClass: [{
3805
+ type: Input
3806
+ }], rowMarginBottomClass: [{
3807
+ type: Input
3808
+ }], rowMarginBottomEmptyClass: [{
3809
+ type: Input
3665
3810
  }], isLoadingChanged: [{
3666
3811
  type: Output
3667
3812
  }], attachmentViewed: [{
@@ -3699,7 +3844,7 @@ class ProfileDegreesWidgetComponent {
3699
3844
  itemRowClass = 'row';
3700
3845
  itemColumnsWrapperClass = 'row col-10 mt-3';
3701
3846
  itemColumnClass = 'col-3';
3702
- actionsColumnClass = 'col-2 align-items-end mt-3';
3847
+ actionsColumnClass = 'align-items-end col-2 mt-4 pt-2';
3703
3848
  isLoadingChanged = new EventEmitter();
3704
3849
  attachmentViewed = new EventEmitter();
3705
3850
  attachmentDownloaded = new EventEmitter();
@@ -3744,11 +3889,11 @@ class ProfileDegreesWidgetComponent {
3744
3889
  this.attachmentDownloaded.emit(file);
3745
3890
  }
3746
3891
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileDegreesWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
3747
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileDegreesWidgetComponent, isStandalone: true, selector: "hr-profile-degrees-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", degreesIcon: "degreesIcon", viewIcon: "viewIcon", downloadIcon: "downloadIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", rowMarginBottomClass: "rowMarginBottomClass", rowMarginBottomEmptyClass: "rowMarginBottomEmptyClass", headerRowClass: "headerRowClass", actionsSpacerClass: "actionsSpacerClass", labelClass: "labelClass", valueClass: "valueClass", valueEllipsisClass: "valueEllipsisClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", itemRowClass: "itemRowClass", itemColumnsWrapperClass: "itemColumnsWrapperClass", itemColumnClass: "itemColumnClass", actionsColumnClass: "actionsColumnClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n \r\n<div [class]=\"wrapperClass\">\r\n \r\n @if(degrees.length > 0){\r\n \r\n @for (qualification of degrees; track qualification){\r\n \r\n <div [class]=\"itemRowClass\">\r\n \r\n <div [class]=\"itemColumnsWrapperClass\">\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n</div>\r\n \r\n <div [class]=\"actionsColumnClass\">\r\n @if(qualification.Document){\r\n<fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n }\r\n</div>\r\n \r\n </div>\r\n \r\n }\r\n \r\n }@else{\r\n \r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n \r\n }\r\n \r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
3892
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ProfileDegreesWidgetComponent, isStandalone: true, selector: "hr-profile-degrees-widget", inputs: { baseUrl: "baseUrl", sectionTitle: "sectionTitle", degreesIcon: "degreesIcon", viewIcon: "viewIcon", downloadIcon: "downloadIcon", headerIconClass: "headerIconClass", headerTextClass: "headerTextClass", headerDividerClass: "headerDividerClass", rowClass: "rowClass", rowMarginBottomClass: "rowMarginBottomClass", rowMarginBottomEmptyClass: "rowMarginBottomEmptyClass", headerRowClass: "headerRowClass", actionsSpacerClass: "actionsSpacerClass", labelClass: "labelClass", valueClass: "valueClass", valueEllipsisClass: "valueEllipsisClass", viewIconClass: "viewIconClass", downloadIconClass: "downloadIconClass", emptyStateContainerClass: "emptyStateContainerClass", emptyStateTextClass: "emptyStateTextClass", itemRowClass: "itemRowClass", itemColumnsWrapperClass: "itemColumnsWrapperClass", itemColumnClass: "itemColumnClass", actionsColumnClass: "actionsColumnClass" }, outputs: { isLoadingChanged: "isLoadingChanged", attachmentViewed: "attachmentViewed", attachmentDownloaded: "attachmentDownloaded", errorOccurred: "errorOccurred" }, ngImport: i0, template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n \r\n<div [class]=\"wrapperClass\">\r\n \r\n @if(degrees.length > 0){\r\n \r\n @for (qualification of degrees; track qualification){\r\n \r\n <div [class]=\"itemRowClass\">\r\n \r\n <div [class]=\"itemColumnsWrapperClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n</div>\r\n \r\n <div [class]=\"actionsColumnClass\">\r\n @if(qualification.Document){\r\n<fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n }\r\n</div>\r\n \r\n </div>\r\n \r\n }\r\n \r\n }@else{\r\n \r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n \r\n }\r\n \r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2$1.UpperCasePipe, name: "uppercase" }, { kind: "component", type: SkySectionDividerComponent, selector: "sky-section-divider", inputs: ["text", "fontAwesomeIcon", "textClass", "dividerClass", "iconClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "component", type: SkyEmptyDesignCardComponent, selector: "sky-empty-design-card", inputs: ["emptyIcon", "emptyIconClass", "emptyText", "emptyTextClass", "actionTitle", "actionIcon", "actionDisabled", "textColor", "disabledTitleClass", "activeTitleClass", "disabledIconClass", "activeIconClass", "actionClass", "containerClass", "cardBodyClass", "cardBodyContainerClass", "visibleIcon", "visibleQuickAction"], outputs: ["onActionClick"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: HRInfoFieldComponent, selector: "hr-info-field", inputs: ["labelKey", "value", "labelClass", "valueClass", "fallbackValue"] }] });
3748
3893
  }
3749
3894
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileDegreesWidgetComponent, decorators: [{
3750
3895
  type: Component,
3751
- args: [{ selector: 'hr-profile-degrees-widget', standalone: true, imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n \r\n<div [class]=\"wrapperClass\">\r\n \r\n @if(degrees.length > 0){\r\n \r\n @for (qualification of degrees; track qualification){\r\n \r\n <div [class]=\"itemRowClass\">\r\n \r\n <div [class]=\"itemColumnsWrapperClass\">\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n</div>\r\n \r\n <div [class]=\"actionsColumnClass\">\r\n @if(qualification.Document){\r\n<fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n }\r\n</div>\r\n \r\n </div>\r\n \r\n }\r\n \r\n }@else{\r\n \r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n \r\n }\r\n \r\n</div>" }]
3896
+ args: [{ selector: 'hr-profile-degrees-widget', standalone: true, imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRInfoFieldComponent], template: "<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | HRTranslate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n \r\n<div [class]=\"wrapperClass\">\r\n \r\n @if(degrees.length > 0){\r\n \r\n @for (qualification of degrees; track qualification){\r\n \r\n <div [class]=\"itemRowClass\">\r\n \r\n <div [class]=\"itemColumnsWrapperClass\">\r\n\r\n <div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Degree/Year\"\r\n [value]=\"(qualification.DegreeName + ' / ' + qualification.DegreeYear)\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Country\"\r\n [value]=\"qualification.CountryName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Specialty\"\r\n [value]=\"qualification.Specialty\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n<div [class]=\"itemColumnClass\">\r\n<hr-info-field labelKey=\"Institute\"\r\n [value]=\"qualification.Institute\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueEllipsisClass\">\r\n</hr-info-field>\r\n</div>\r\n</div>\r\n \r\n <div [class]=\"actionsColumnClass\">\r\n @if(qualification.Document){\r\n<fa-icon [icon]=\"viewIcon\" [class]=\"viewIconClass\" (click)=\"onAttachmentView(qualification.Document)\"></fa-icon>\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\" (click)=\"onAttachmentDownload(qualification.Document)\"></fa-icon>\r\n }\r\n</div>\r\n \r\n </div>\r\n \r\n }\r\n \r\n }@else{\r\n \r\n <sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | HRTranslate) + ' ' + ('IsLoading' | HRTranslate)) : ('ThereIsNoDegreesYet' | HRTranslate)\">\r\n</sky-empty-design-card>\r\n \r\n }\r\n \r\n</div>" }]
3752
3897
  }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
3753
3898
  type: Input
3754
3899
  }], sectionTitle: [{