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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,9 +11,9 @@ import { SkyShortcutIconComponent, SkySectionDividerComponent, SkyEmptyDesignCar
11
11
  import * as i1 from '@angular/common/http';
12
12
  import { HttpParams } from '@angular/common/http';
13
13
  import { map, shareReplay, catchError, throwError, lastValueFrom } from 'rxjs';
14
- import { faCakeCandles, faTreePalm, faCalendarStar, faMoneyCheckDollarPen, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faFileSignature, faSackDollar, faEnvelopeOpenDollar, faXmark } from '@fortawesome/pro-light-svg-icons';
14
+ import { faCakeCandles, faTreePalm, faCalendarStar, faMoneyCheckDollarPen, faMemoCircleInfo, faPhone, faBolt, faLanguage, faEarthAfrica, faHouse, faFileSignature, faSackDollar, faEnvelopeOpenDollar, faXmark, faFolderArrowDown, faUsersRays, faFileCertificate } from '@fortawesome/pro-light-svg-icons';
15
15
  import * as i2 from 'devextreme-angular/core';
16
- import { faCircle, faCalendarDays } from '@fortawesome/pro-regular-svg-icons';
16
+ import { faCircle, faCalendarDays, faEye } from '@fortawesome/pro-regular-svg-icons';
17
17
  import moment from 'moment';
18
18
  import { faPlaneDeparture, faPlaneArrival } from '@fortawesome/pro-solid-svg-icons';
19
19
  import CustomStore from 'devextreme/data/custom_store';
@@ -177,17 +177,6 @@ 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";
191
180
  var en = {
192
181
  ReportingTo: ReportingTo$2,
193
182
  NotAnknown: NotAnknown$2,
@@ -297,19 +286,7 @@ var en = {
297
286
  EndDate: EndDate$2,
298
287
  ReturnDate: ReturnDate$2,
299
288
  "Search...": "Search...",
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
289
+ JobInformation: JobInformation$2
313
290
  };
314
291
 
315
292
  var ReportingTo$1 = "مفوض الى";
@@ -418,17 +395,6 @@ var StartDate$1 = "تاريخ البداية";
418
395
  var EndDate$1 = "تاريخ النهاية";
419
396
  var ReturnDate$1 = "تاريخ العودة";
420
397
  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 = "لا توجد خبرات بعد";
432
398
  var ar = {
433
399
  ReportingTo: ReportingTo$1,
434
400
  NotAnknown: NotAnknown$1,
@@ -537,19 +503,7 @@ var ar = {
537
503
  EndDate: EndDate$1,
538
504
  ReturnDate: ReturnDate$1,
539
505
  "Search...": "بحث...",
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
506
+ JobInformation: JobInformation$1
553
507
  };
554
508
 
555
509
  var ReportingTo = "Rapport à";
@@ -659,17 +613,6 @@ var StartDate = "Date de début";
659
613
  var EndDate = "Date de fin";
660
614
  var ReturnDate = "Date de retour";
661
615
  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";
673
616
  var fr = {
674
617
  ReportingTo: ReportingTo,
675
618
  NotAnknown: NotAnknown,
@@ -779,19 +722,7 @@ var fr = {
779
722
  EndDate: EndDate,
780
723
  ReturnDate: ReturnDate,
781
724
  "Search...": "Rechercher...",
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
725
+ JobInformation: JobInformation
795
726
  };
796
727
 
797
728
  const BUILT_IN_LEXICONS = { en, ar, fr };
@@ -1338,7 +1269,7 @@ class HRSelfWidgetsService {
1338
1269
  }
1339
1270
  getVacationSummary(baseUrl) {
1340
1271
  const params = new HttpParams().set('ShowDirectSubordinatesOnly', 'false');
1341
- return this.http.get(`${baseUrl}/hr/widgets/me/team/subordinates/vacations/summary`, {
1272
+ return this.http.get(`${baseUrl}/hr/widgets/me/team/next-week-vacation-insights/summary`, {
1342
1273
  params,
1343
1274
  headers: this.headers
1344
1275
  });
@@ -2317,7 +2248,6 @@ class MyCalendarWidgetComponent {
2317
2248
  selfWidgetsService;
2318
2249
  baseUrl = '';
2319
2250
  headerContainerClass = '';
2320
- datasource = null;
2321
2251
  isLoadingChanged = new EventEmitter();
2322
2252
  calendarIcon = faCalendarDays;
2323
2253
  legendContainerClass = 'row mb-2';
@@ -2340,29 +2270,17 @@ class MyCalendarWidgetComponent {
2340
2270
  eventsColor = this.constants.defaultEventsColor;
2341
2271
  hrCalendar;
2342
2272
  scheduleCalenderVacation = [];
2343
- minDate;
2273
+ minDate = new Date();
2344
2274
  maxDate;
2345
- baseCalendarData = [];
2346
- hrVacations = [];
2347
- calendarLoaded = false;
2348
2275
  constructor(selfWidgetsService) {
2349
2276
  this.selfWidgetsService = selfWidgetsService;
2350
- this.initDateRange();
2351
- }
2352
- ngOnInit() {
2353
- this.loadCalendar();
2354
- }
2355
- ngOnChanges(changes) {
2356
- if (changes['datasource'] && this.datasource && this.calendarLoaded) {
2357
- this.buildCalendarData();
2358
- this.refreshCalendar();
2359
- }
2360
- }
2361
- initDateRange() {
2362
2277
  const currentDate = moment().date(1).subtract(1, 'month');
2363
2278
  this.minDate = new Date(currentDate.year(), currentDate.month(), currentDate.date());
2364
2279
  this.maxDate = new Date(this.minDate.getFullYear() + 1, this.minDate.getMonth() + 1, 0);
2365
2280
  }
2281
+ ngOnInit() {
2282
+ this.loadCalendar();
2283
+ }
2366
2284
  getCalendar(month, year, monthsCount) {
2367
2285
  return this.selfWidgetsService.getCalendar(this.baseUrl, month, year, monthsCount);
2368
2286
  }
@@ -2376,54 +2294,46 @@ class MyCalendarWidgetComponent {
2376
2294
  this.isLoadingChanged.emit(false);
2377
2295
  this.mapCalendarData(response.ResponseData);
2378
2296
  },
2379
- error: () => {
2297
+ error: (error) => {
2380
2298
  this.isLoadingChanged.emit(false);
2381
2299
  },
2382
2300
  });
2383
2301
  }
2384
2302
  mapCalendarData(data) {
2385
- this.baseCalendarData = [
2386
- ...data.PublicHolidays.map(ph => ({
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({
2387
2314
  VacationType: ScheduleVacationTypes.PublicHoliday,
2388
2315
  Description: ph.Description,
2389
2316
  Color: this.publicHolidayColor,
2390
2317
  VacationDays: { StartDate: ph.StartDate, EndDate: ph.EndDate }
2391
- })),
2392
- ...data.OffDays.map(od => ({
2318
+ });
2319
+ }
2320
+ for (const od of data.OffDays) {
2321
+ result.push({
2393
2322
  VacationType: ScheduleVacationTypes.DaysOff,
2394
2323
  Description: this.translatePipe.transform('DayOff'),
2395
2324
  Color: this.dayOffColor,
2396
2325
  VacationDays: { StartDate: od, EndDate: od }
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() {
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;
2427
2337
  setTimeout(() => {
2428
2338
  if (this.hrCalendar?.calendar) {
2429
2339
  this.hrCalendar.calendar.instance._refresh();
@@ -2431,42 +2341,8 @@ class MyCalendarWidgetComponent {
2431
2341
  }
2432
2342
  }, 100);
2433
2343
  }
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
- }
2468
2344
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyCalendarWidgetComponent, deps: [{ token: HRSelfWidgetsService }], target: i0.ɵɵFactoryTarget.Component });
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" }] });
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" }] });
2470
2346
  }
2471
2347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyCalendarWidgetComponent, decorators: [{
2472
2348
  type: Component,
@@ -2475,8 +2351,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2475
2351
  type: Input
2476
2352
  }], headerContainerClass: [{
2477
2353
  type: Input
2478
- }], datasource: [{
2479
- type: Input
2480
2354
  }], isLoadingChanged: [{
2481
2355
  type: Output
2482
2356
  }], legendContainerClass: [{
@@ -2523,11 +2397,11 @@ class HRInfoFieldComponent {
2523
2397
  valueClass = 'fs-14 fw-medium';
2524
2398
  fallbackValue = '—';
2525
2399
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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" }] });
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" }] });
2527
2401
  }
2528
2402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRInfoFieldComponent, decorators: [{
2529
2403
  type: Component,
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" }]
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" }]
2531
2405
  }], propDecorators: { labelKey: [{
2532
2406
  type: Input,
2533
2407
  args: [{ required: true }]
@@ -3492,7 +3366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3492
3366
  type: Output
3493
3367
  }] } });
3494
3368
 
3495
- class HRVacationSubordinatesPopupComponent {
3369
+ class HRNextWeekVacationInsightsPopupComponent {
3496
3370
  http;
3497
3371
  dataGrid;
3498
3372
  popupVisible = false;
@@ -3564,13 +3438,13 @@ class HRVacationSubordinatesPopupComponent {
3564
3438
  handleEmployeePhotoError(employee) {
3565
3439
  employee.FailedToLoadPhoto = true;
3566
3440
  }
3567
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRVacationSubordinatesPopupComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
3568
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: HRVacationSubordinatesPopupComponent, isStandalone: true, selector: "hr-vacation-subordinates-popup", inputs: { popupVisible: "popupVisible", popupType: "popupType", baseUrl: "baseUrl", width: "width", height: "height", gridHeight: "gridHeight", pageSize: "pageSize", showProperty: "showProperty" }, outputs: { closePopupClickHandler: "closePopupClickHandler" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DxDataGridComponent, descendants: true }], ngImport: i0, template: "<dx-popup [visible]=\"popupVisible\"\r\n [height]=\"height\"\r\n [minHeight]=\"'40%'\"\r\n [maxHeight]=\"'70%'\"\r\n [width]=\"width\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"false\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n titleTemplate=\"title\"\r\n [showTitle]=\"true\"\r\n (onShown)=\"onShown()\"\r\n (onHidden)=\"onHidden()\">\r\n\r\n <div *dxTemplate=\"let data of 'title'\">\r\n <div class=\"d-flex justify-content-between align-items-center my-0\">\r\n <p class=\"mx-3 fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | HRTranslate) : ('NextWeekVacationInsights' | HRTranslate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | HRTranslate}})</span>\r\n </p>\r\n <div class=\"p-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 me-1 text-dark-gray cursor-pointer\"></fa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let d of 'popup-content'\">\r\n <div class=\"mb-2\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | HRTranslate\"\r\n (onValueChanged)=\"onSearchValueChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n @if(dataSource){\r\n <dx-data-grid class=\"popup-data-grid\"\r\n [dataSource]=\"dataSource\"\r\n [showBorders]=\"false\"\r\n [showRowLines]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [columnAutoWidth]=\"true\"\r\n [wordWrapEnabled]=\"true\"\r\n [height]=\"gridHeight\"\r\n [allowColumnReordering]=\"false\"\r\n [remoteOperations]=\"{paging: true}\">\r\n\r\n <dxo-sorting mode=\"none\"></dxo-sorting>\r\n\r\n <dxo-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-scrolling>\r\n\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-paging>\r\n\r\n <dxi-column caption=\"{{'Employee' | HRTranslate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-column caption=\"{{'StartDate' | HRTranslate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n <dxi-column caption=\"{{'EndDate' | HRTranslate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n }@else{\r\n <dxi-column caption=\"{{'ReturnDate' | HRTranslate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n }\r\n\r\n <div *dxTemplate=\"let cell of 'employeeCellTemplate'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bayan-employee-badge\r\n [badge]=\"getEmployeeBadge(cell.data)\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-6\"\r\n imageClass=\"rounded-circle m-1\"\r\n [width]=\"'40px'\"\r\n [height]=\"'40px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError(cell.data)\">\r\n </bayan-employee-badge>\r\n <div class=\"d-flex flex-column ms-1\">\r\n <div class=\"d-flex flex-row\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer mx-1\" [title]=\"cell.data.PropertyName\" [innerHTML]=\"cell.data.PropertySymbol\"></span>\r\n }\r\n <span class=\"text-ellipsis-one-line fs-14 text-dark-gray fw-normal\"\r\n [title]=\"cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName\">\r\n {{cell.data.EmployeeNumber}} | {{cell.data.EmployeeName}}\r\n </span>\r\n </div>\r\n <p class=\"mt-1 text-ellipsis-one-line fs-12 text-dark-gray fw-normal mb-0\">\r\n {{cell.data.EmployeeAdminUnitName}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-data-grid>\r\n }\r\n </div>\r\n</dx-popup>\r\n", dependencies: [{ kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: DxDataGridModule }, { kind: "component", type: i1$1.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i5.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i5.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: BayanEmployeeBadgeComponent, selector: "bayan-employee-badge", inputs: ["badge", "width", "height", "imageClass", "badgeClass"], outputs: ["employeePhotoError"] }, { kind: "ngmodule", type: DxTextBoxModule }, { kind: "component", type: i1$1.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
3441
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRNextWeekVacationInsightsPopupComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
3442
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: HRNextWeekVacationInsightsPopupComponent, isStandalone: true, selector: "hr-next-week-vacation-insights-popup", inputs: { popupVisible: "popupVisible", popupType: "popupType", baseUrl: "baseUrl", width: "width", height: "height", gridHeight: "gridHeight", pageSize: "pageSize", showProperty: "showProperty" }, outputs: { closePopupClickHandler: "closePopupClickHandler" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DxDataGridComponent, descendants: true }], ngImport: i0, template: "<dx-popup [visible]=\"popupVisible\"\r\n [height]=\"height\"\r\n [minHeight]=\"'40%'\"\r\n [maxHeight]=\"'70%'\"\r\n [width]=\"width\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"false\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n titleTemplate=\"title\"\r\n [showTitle]=\"true\"\r\n (onShown)=\"onShown()\"\r\n (onHidden)=\"onHidden()\">\r\n\r\n <div *dxTemplate=\"let data of 'title'\">\r\n <div class=\"d-flex justify-content-between align-items-center my-0\">\r\n <p class=\"mx-3 fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | HRTranslate) : ('NextWeekVacationInsights' | HRTranslate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | HRTranslate}})</span>\r\n </p>\r\n <div class=\"p-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 me-1 text-dark-gray cursor-pointer\"></fa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let d of 'popup-content'\">\r\n <div class=\"mb-2\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | HRTranslate\"\r\n (onValueChanged)=\"onSearchValueChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n @if(dataSource){\r\n <dx-data-grid class=\"popup-data-grid\"\r\n [dataSource]=\"dataSource\"\r\n [showBorders]=\"false\"\r\n [showRowLines]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [columnAutoWidth]=\"true\"\r\n [wordWrapEnabled]=\"true\"\r\n [height]=\"gridHeight\"\r\n [allowColumnReordering]=\"false\"\r\n [remoteOperations]=\"{paging: true}\">\r\n\r\n <dxo-sorting mode=\"none\"></dxo-sorting>\r\n\r\n <dxo-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-scrolling>\r\n\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-paging>\r\n\r\n <dxi-column caption=\"{{'Employee' | HRTranslate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-column caption=\"{{'StartDate' | HRTranslate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n <dxi-column caption=\"{{'EndDate' | HRTranslate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n }@else{\r\n <dxi-column caption=\"{{'ReturnDate' | HRTranslate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n }\r\n\r\n <div *dxTemplate=\"let cell of 'employeeCellTemplate'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bayan-employee-badge\r\n [badge]=\"getEmployeeBadge(cell.data)\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-6\"\r\n imageClass=\"rounded-circle m-1\"\r\n [width]=\"'40px'\"\r\n [height]=\"'40px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError(cell.data)\">\r\n </bayan-employee-badge>\r\n <div class=\"d-flex flex-column ms-1\">\r\n <div class=\"d-flex flex-row\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer mx-1\" [title]=\"cell.data.PropertyName\" [innerHTML]=\"cell.data.PropertySymbol\"></span>\r\n }\r\n <span class=\"text-ellipsis-one-line fs-14 text-dark-gray fw-normal\"\r\n [title]=\"cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName\">\r\n {{cell.data.EmployeeNumber}} | {{cell.data.EmployeeName}}\r\n </span>\r\n </div>\r\n <p class=\"ms-2 mt-1 text-ellipsis-one-line fs-12 text-dark-gray fw-normal mb-0\">\r\n {{cell.data.EmployeeAdminUnitName}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-data-grid>\r\n }\r\n </div>\r\n</dx-popup>\r\n", dependencies: [{ kind: "ngmodule", type: DxPopupModule }, { kind: "component", type: i1$1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "enableBodyScroll", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "enableBodyScrollChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "directive", type: i2.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "ngmodule", type: CommonModule }, { 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: "ngmodule", type: DxDataGridModule }, { kind: "component", type: i1$1.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i5.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i5.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: BayanEmployeeBadgeComponent, selector: "bayan-employee-badge", inputs: ["badge", "width", "height", "imageClass", "badgeClass"], outputs: ["employeePhotoError"] }, { kind: "ngmodule", type: DxTextBoxModule }, { kind: "component", type: i1$1.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isDirty", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isDirtyChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
3569
3443
  }
3570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRVacationSubordinatesPopupComponent, decorators: [{
3444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: HRNextWeekVacationInsightsPopupComponent, decorators: [{
3571
3445
  type: Component,
3572
- args: [{ selector: 'hr-vacation-subordinates-popup', standalone: true, imports: [DxPopupModule, HRTranslatePipe, CommonModule, FontAwesomeModule,
3573
- DxDataGridModule, BayanEmployeeBadgeComponent, DxTextBoxModule], template: "<dx-popup [visible]=\"popupVisible\"\r\n [height]=\"height\"\r\n [minHeight]=\"'40%'\"\r\n [maxHeight]=\"'70%'\"\r\n [width]=\"width\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"false\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n titleTemplate=\"title\"\r\n [showTitle]=\"true\"\r\n (onShown)=\"onShown()\"\r\n (onHidden)=\"onHidden()\">\r\n\r\n <div *dxTemplate=\"let data of 'title'\">\r\n <div class=\"d-flex justify-content-between align-items-center my-0\">\r\n <p class=\"mx-3 fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | HRTranslate) : ('NextWeekVacationInsights' | HRTranslate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | HRTranslate}})</span>\r\n </p>\r\n <div class=\"p-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 me-1 text-dark-gray cursor-pointer\"></fa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let d of 'popup-content'\">\r\n <div class=\"mb-2\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | HRTranslate\"\r\n (onValueChanged)=\"onSearchValueChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n @if(dataSource){\r\n <dx-data-grid class=\"popup-data-grid\"\r\n [dataSource]=\"dataSource\"\r\n [showBorders]=\"false\"\r\n [showRowLines]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [columnAutoWidth]=\"true\"\r\n [wordWrapEnabled]=\"true\"\r\n [height]=\"gridHeight\"\r\n [allowColumnReordering]=\"false\"\r\n [remoteOperations]=\"{paging: true}\">\r\n\r\n <dxo-sorting mode=\"none\"></dxo-sorting>\r\n\r\n <dxo-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-scrolling>\r\n\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-paging>\r\n\r\n <dxi-column caption=\"{{'Employee' | HRTranslate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-column caption=\"{{'StartDate' | HRTranslate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n <dxi-column caption=\"{{'EndDate' | HRTranslate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n }@else{\r\n <dxi-column caption=\"{{'ReturnDate' | HRTranslate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"center\">\r\n </dxi-column>\r\n }\r\n\r\n <div *dxTemplate=\"let cell of 'employeeCellTemplate'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bayan-employee-badge\r\n [badge]=\"getEmployeeBadge(cell.data)\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-6\"\r\n imageClass=\"rounded-circle m-1\"\r\n [width]=\"'40px'\"\r\n [height]=\"'40px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError(cell.data)\">\r\n </bayan-employee-badge>\r\n <div class=\"d-flex flex-column ms-1\">\r\n <div class=\"d-flex flex-row\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer mx-1\" [title]=\"cell.data.PropertyName\" [innerHTML]=\"cell.data.PropertySymbol\"></span>\r\n }\r\n <span class=\"text-ellipsis-one-line fs-14 text-dark-gray fw-normal\"\r\n [title]=\"cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName\">\r\n {{cell.data.EmployeeNumber}} | {{cell.data.EmployeeName}}\r\n </span>\r\n </div>\r\n <p class=\"mt-1 text-ellipsis-one-line fs-12 text-dark-gray fw-normal mb-0\">\r\n {{cell.data.EmployeeAdminUnitName}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-data-grid>\r\n }\r\n </div>\r\n</dx-popup>\r\n" }]
3446
+ args: [{ selector: 'hr-next-week-vacation-insights-popup', standalone: true, imports: [DxPopupModule, HRTranslatePipe, CommonModule, FontAwesomeModule,
3447
+ DxDataGridModule, BayanEmployeeBadgeComponent, DxTextBoxModule], template: "<dx-popup [visible]=\"popupVisible\"\r\n [height]=\"height\"\r\n [minHeight]=\"'40%'\"\r\n [maxHeight]=\"'70%'\"\r\n [width]=\"width\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"false\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n titleTemplate=\"title\"\r\n [showTitle]=\"true\"\r\n (onShown)=\"onShown()\"\r\n (onHidden)=\"onHidden()\">\r\n\r\n <div *dxTemplate=\"let data of 'title'\">\r\n <div class=\"d-flex justify-content-between align-items-center my-0\">\r\n <p class=\"mx-3 fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | HRTranslate) : ('NextWeekVacationInsights' | HRTranslate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | HRTranslate}})</span>\r\n </p>\r\n <div class=\"p-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 me-1 text-dark-gray cursor-pointer\"></fa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *dxTemplate=\"let d of 'popup-content'\">\r\n <div class=\"mb-2\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | HRTranslate\"\r\n (onValueChanged)=\"onSearchValueChanged($event)\">\r\n </dx-text-box>\r\n </div>\r\n @if(dataSource){\r\n <dx-data-grid class=\"popup-data-grid\"\r\n [dataSource]=\"dataSource\"\r\n [showBorders]=\"false\"\r\n [showRowLines]=\"false\"\r\n [showColumnLines]=\"false\"\r\n [columnAutoWidth]=\"true\"\r\n [wordWrapEnabled]=\"true\"\r\n [height]=\"gridHeight\"\r\n [allowColumnReordering]=\"false\"\r\n [remoteOperations]=\"{paging: true}\">\r\n\r\n <dxo-sorting mode=\"none\"></dxo-sorting>\r\n\r\n <dxo-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-scrolling>\r\n\r\n <dxo-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-paging>\r\n\r\n <dxi-column caption=\"{{'Employee' | HRTranslate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-column caption=\"{{'StartDate' | HRTranslate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n <dxi-column caption=\"{{'EndDate' | HRTranslate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n }@else{\r\n <dxi-column caption=\"{{'ReturnDate' | HRTranslate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"start\">\r\n </dxi-column>\r\n }\r\n\r\n <div *dxTemplate=\"let cell of 'employeeCellTemplate'\">\r\n <div class=\"d-flex align-items-center\">\r\n <bayan-employee-badge\r\n [badge]=\"getEmployeeBadge(cell.data)\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-6\"\r\n imageClass=\"rounded-circle m-1\"\r\n [width]=\"'40px'\"\r\n [height]=\"'40px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError(cell.data)\">\r\n </bayan-employee-badge>\r\n <div class=\"d-flex flex-column ms-1\">\r\n <div class=\"d-flex flex-row\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer mx-1\" [title]=\"cell.data.PropertyName\" [innerHTML]=\"cell.data.PropertySymbol\"></span>\r\n }\r\n <span class=\"text-ellipsis-one-line fs-14 text-dark-gray fw-normal\"\r\n [title]=\"cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName\">\r\n {{cell.data.EmployeeNumber}} | {{cell.data.EmployeeName}}\r\n </span>\r\n </div>\r\n <p class=\"ms-2 mt-1 text-ellipsis-one-line fs-12 text-dark-gray fw-normal mb-0\">\r\n {{cell.data.EmployeeAdminUnitName}}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </dx-data-grid>\r\n }\r\n </div>\r\n</dx-popup>\r\n" }]
3574
3448
  }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { dataGrid: [{
3575
3449
  type: ViewChild,
3576
3450
  args: [DxDataGridComponent, { static: false }]
@@ -3594,16 +3468,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3594
3468
  type: Output
3595
3469
  }] } });
3596
3470
 
3597
- class MyVacationTeamWidgetComponent {
3471
+ class MyNextWeekVacationInsightsWidgetComponent {
3598
3472
  selfWidgetsService;
3599
3473
  translatePipe;
3600
3474
  baseUrl = '';
3601
3475
  showProperty = false;
3602
- cardClass = 'card rounded rounded-4 card-shadow p-16 border-top-0 h-100 p-4';
3603
- titleClass = 'table-header-lg fw-meduim';
3476
+ cardClass = 'card rounded rounded-4 card-shadow border-top-0 h-100 p-4';
3477
+ titleClass = 'table-header-lg fw-meduim mb-3 mt-2';
3604
3478
  valueClass = 'fs-24 mt-1 link-dark hover-primary text-decoration-none';
3605
3479
  disabledValueClass = 'fs-24 mt-1 text-muted pe-none text-decoration-none';
3606
- upcomingContainerClass = 'border-start border-5 mb-3';
3480
+ upcomingContainerClass = 'border-start border-5 mb-4';
3607
3481
  expectedContainerClass = 'border-start border-5';
3608
3482
  isLoadingChanged = new EventEmitter();
3609
3483
  popupVisible = false;
@@ -3640,10 +3514,10 @@ class MyVacationTeamWidgetComponent {
3640
3514
  return;
3641
3515
  this.popupType = type;
3642
3516
  if (type === VacationPopupType.Upcoming) {
3643
- this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/subordinates/vacations/upcoming`;
3517
+ this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/upcoming-vacations`;
3644
3518
  }
3645
3519
  else {
3646
- this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/subordinates/vacations/expected-to-return`;
3520
+ this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/expected-to-return`;
3647
3521
  }
3648
3522
  this.popupVisible = true;
3649
3523
  }
@@ -3664,12 +3538,12 @@ class MyVacationTeamWidgetComponent {
3664
3538
  Icon: faPlaneArrival
3665
3539
  };
3666
3540
  }
3667
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyVacationTeamWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
3668
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MyVacationTeamWidgetComponent, isStandalone: true, selector: "hr-my-vacation-team-widget", inputs: { baseUrl: "baseUrl", showProperty: "showProperty", cardClass: "cardClass", titleClass: "titleClass", valueClass: "valueClass", disabledValueClass: "disabledValueClass", upcomingContainerClass: "upcomingContainerClass", expectedContainerClass: "expectedContainerClass" }, outputs: { isLoadingChanged: "isLoadingChanged" }, ngImport: i0, template: "<div [class]=\"cardClass\">\r\n <div class=\"card-body d-flex flex-column p-0\">\r\n <div [class]=\"titleClass\">\r\n {{'NextWeekVacationInsights' | HRTranslate}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-4\">\r\n <sky-widget-section-item\r\n [data]=\"upcomingVacationsBadge\"\r\n [containerClass]=\"upcomingContainerClass\"\r\n [valueClass]=\"upcomingVacationsBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': upcomingVacationsBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.Upcoming)\">\r\n </sky-widget-section-item>\r\n <sky-widget-section-item\r\n [data]=\"expectedToReturnBadge\"\r\n [containerClass]=\"expectedContainerClass\"\r\n [valueClass]=\"expectedToReturnBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': expectedToReturnBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.ExpectedToReturn)\">\r\n </sky-widget-section-item>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<hr-vacation-subordinates-popup\r\n [popupVisible]=\"popupVisible\"\r\n [popupType]=\"popupType\"\r\n [baseUrl]=\"popupBaseUrl\"\r\n [showProperty]=\"showProperty\"\r\n (closePopupClickHandler)=\"closePopup()\">\r\n</hr-vacation-subordinates-popup>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: SkyWidgetSectionItemComponent, selector: "sky-widget-section-item", inputs: ["data", "iconContainerClass", "iconClass", "iconSize", "iconWidth", "iconHeight", "buttonClass", "titleClass", "valueClass", "containerClass", "borderColorClass"], outputs: ["OnWidgetSectionClick"] }, { kind: "component", type: HRVacationSubordinatesPopupComponent, selector: "hr-vacation-subordinates-popup", inputs: ["popupVisible", "popupType", "baseUrl", "width", "height", "gridHeight", "pageSize", "showProperty"], outputs: ["closePopupClickHandler"] }] });
3541
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyNextWeekVacationInsightsWidgetComponent, deps: [{ token: HRSelfWidgetsService }, { token: HRTranslatePipe }], target: i0.ɵɵFactoryTarget.Component });
3542
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: MyNextWeekVacationInsightsWidgetComponent, isStandalone: true, selector: "hr-my-next-week-vacation-insights-widget", inputs: { baseUrl: "baseUrl", showProperty: "showProperty", cardClass: "cardClass", titleClass: "titleClass", valueClass: "valueClass", disabledValueClass: "disabledValueClass", upcomingContainerClass: "upcomingContainerClass", expectedContainerClass: "expectedContainerClass" }, outputs: { isLoadingChanged: "isLoadingChanged" }, ngImport: i0, template: "<div [class]=\"cardClass\">\r\n <div class=\"card-body d-flex flex-column p-0 mb-3\">\r\n <div [class]=\"titleClass\">\r\n {{'NextWeekVacationInsights' | HRTranslate}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-3\">\r\n <sky-widget-section-item\r\n [data]=\"upcomingVacationsBadge\"\r\n [containerClass]=\"upcomingContainerClass\"\r\n [valueClass]=\"upcomingVacationsBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': upcomingVacationsBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.Upcoming)\">\r\n </sky-widget-section-item>\r\n <sky-widget-section-item\r\n [data]=\"expectedToReturnBadge\"\r\n [containerClass]=\"expectedContainerClass\"\r\n [valueClass]=\"expectedToReturnBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': expectedToReturnBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.ExpectedToReturn)\">\r\n </sky-widget-section-item>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<hr-next-week-vacation-insights-popup\r\n [popupVisible]=\"popupVisible\"\r\n [popupType]=\"popupType\"\r\n [baseUrl]=\"popupBaseUrl\"\r\n [showProperty]=\"showProperty\"\r\n (closePopupClickHandler)=\"closePopup()\">\r\n</hr-next-week-vacation-insights-popup>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: SkyWidgetSectionItemComponent, selector: "sky-widget-section-item", inputs: ["data", "iconContainerClass", "iconClass", "iconSize", "iconWidth", "iconHeight", "buttonClass", "titleClass", "valueClass", "containerClass", "borderColorClass"], outputs: ["OnWidgetSectionClick"] }, { kind: "component", type: HRNextWeekVacationInsightsPopupComponent, selector: "hr-next-week-vacation-insights-popup", inputs: ["popupVisible", "popupType", "baseUrl", "width", "height", "gridHeight", "pageSize", "showProperty"], outputs: ["closePopupClickHandler"] }] });
3669
3543
  }
3670
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyVacationTeamWidgetComponent, decorators: [{
3544
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: MyNextWeekVacationInsightsWidgetComponent, decorators: [{
3671
3545
  type: Component,
3672
- args: [{ selector: 'hr-my-vacation-team-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, FontAwesomeModule, SkyWidgetSectionItemComponent, HRVacationSubordinatesPopupComponent], template: "<div [class]=\"cardClass\">\r\n <div class=\"card-body d-flex flex-column p-0\">\r\n <div [class]=\"titleClass\">\r\n {{'NextWeekVacationInsights' | HRTranslate}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-4\">\r\n <sky-widget-section-item\r\n [data]=\"upcomingVacationsBadge\"\r\n [containerClass]=\"upcomingContainerClass\"\r\n [valueClass]=\"upcomingVacationsBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': upcomingVacationsBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.Upcoming)\">\r\n </sky-widget-section-item>\r\n <sky-widget-section-item\r\n [data]=\"expectedToReturnBadge\"\r\n [containerClass]=\"expectedContainerClass\"\r\n [valueClass]=\"expectedToReturnBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': expectedToReturnBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.ExpectedToReturn)\">\r\n </sky-widget-section-item>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<hr-vacation-subordinates-popup\r\n [popupVisible]=\"popupVisible\"\r\n [popupType]=\"popupType\"\r\n [baseUrl]=\"popupBaseUrl\"\r\n [showProperty]=\"showProperty\"\r\n (closePopupClickHandler)=\"closePopup()\">\r\n</hr-vacation-subordinates-popup>\r\n" }]
3546
+ args: [{ selector: 'hr-my-next-week-vacation-insights-widget', standalone: true, imports: [CommonModule, HRTranslatePipe, FontAwesomeModule, SkyWidgetSectionItemComponent, HRNextWeekVacationInsightsPopupComponent], template: "<div [class]=\"cardClass\">\r\n <div class=\"card-body d-flex flex-column p-0 mb-3\">\r\n <div [class]=\"titleClass\">\r\n {{'NextWeekVacationInsights' | HRTranslate}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-3\">\r\n <sky-widget-section-item\r\n [data]=\"upcomingVacationsBadge\"\r\n [containerClass]=\"upcomingContainerClass\"\r\n [valueClass]=\"upcomingVacationsBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': upcomingVacationsBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.Upcoming)\">\r\n </sky-widget-section-item>\r\n <sky-widget-section-item\r\n [data]=\"expectedToReturnBadge\"\r\n [containerClass]=\"expectedContainerClass\"\r\n [valueClass]=\"expectedToReturnBadge?.Value === 0 ? disabledValueClass : valueClass\"\r\n [ngClass]=\"{'pe-none': expectedToReturnBadge?.Value === 0}\"\r\n (OnWidgetSectionClick)=\"openPopup(VacationPopupType.ExpectedToReturn)\">\r\n </sky-widget-section-item>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<hr-next-week-vacation-insights-popup\r\n [popupVisible]=\"popupVisible\"\r\n [popupType]=\"popupType\"\r\n [baseUrl]=\"popupBaseUrl\"\r\n [showProperty]=\"showProperty\"\r\n (closePopupClickHandler)=\"closePopup()\">\r\n</hr-next-week-vacation-insights-popup>\r\n" }]
3673
3547
  }], ctorParameters: () => [{ type: HRSelfWidgetsService }, { type: HRTranslatePipe }], propDecorators: { baseUrl: [{
3674
3548
  type: Input
3675
3549
  }], showProperty: [{
@@ -3690,6 +3564,249 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3690
3564
  type: Output
3691
3565
  }] } });
3692
3566
 
3567
+ class ProfileExperiencesWidgetComponent {
3568
+ service;
3569
+ experiences = [];
3570
+ isLoading = true;
3571
+ baseUrl = '';
3572
+ sectionTitle = 'experiences';
3573
+ viewIcon = faEye;
3574
+ downloadIcon = faFolderArrowDown;
3575
+ experienceIcon = faUsersRays;
3576
+ headerIconClass = 'primary-icon-xl';
3577
+ headerTextClass = 'fs-16 mt-2 text-secondary';
3578
+ headerDividerClass = 'flex-grow-1 ms-2';
3579
+ rowClass = 'mt-4';
3580
+ itemRowClass = 'row col-10 mt-3';
3581
+ itemColumnClass = 'col-3';
3582
+ labelClass = 'field-secondary-label-sm';
3583
+ valueClass = 'text-dark-gray fs-14 text-ellipsis-one-line cursor-pointer';
3584
+ actionsColumnClass = 'col-2 mt-3';
3585
+ viewIconClass = 'fs-15 text-dark cursor-pointer';
3586
+ downloadIconClass = 'fs-15 text-dark cursor-pointer mx-2';
3587
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
3588
+ emptyStateTextClass = 'field-secondary-label-md';
3589
+ isLoadingChanged = new EventEmitter();
3590
+ attachmentViewed = new EventEmitter();
3591
+ attachmentDownloaded = new EventEmitter();
3592
+ errorOccurred = new EventEmitter();
3593
+ constructor(service) {
3594
+ this.service = service;
3595
+ }
3596
+ ngOnInit() {
3597
+ if (!this.baseUrl) {
3598
+ this.isLoading = false;
3599
+ return;
3600
+ }
3601
+ this.isLoadingChanged.emit(true);
3602
+ this.service.getEmployeeExperiences(this.baseUrl).subscribe({
3603
+ next: (res) => {
3604
+ this.experiences = res ?? [];
3605
+ this.isLoading = false;
3606
+ this.isLoadingChanged.emit(false);
3607
+ },
3608
+ error: (error) => {
3609
+ this.experiences = [];
3610
+ this.isLoading = false;
3611
+ this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
3612
+ this.isLoadingChanged.emit(false);
3613
+ }
3614
+ });
3615
+ }
3616
+ onAttachmentView(file) {
3617
+ this.attachmentViewed.emit(file);
3618
+ }
3619
+ onAttachmentDownload(file) {
3620
+ this.attachmentDownloaded.emit(file);
3621
+ }
3622
+ 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"] }] });
3624
+ }
3625
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileExperiencesWidgetComponent, decorators: [{
3626
+ type: Component,
3627
+ 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" }]
3629
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
3630
+ type: Input
3631
+ }], sectionTitle: [{
3632
+ type: Input
3633
+ }], viewIcon: [{
3634
+ type: Input
3635
+ }], downloadIcon: [{
3636
+ type: Input
3637
+ }], experienceIcon: [{
3638
+ type: Input
3639
+ }], headerIconClass: [{
3640
+ type: Input
3641
+ }], headerTextClass: [{
3642
+ type: Input
3643
+ }], headerDividerClass: [{
3644
+ type: Input
3645
+ }], rowClass: [{
3646
+ type: Input
3647
+ }], itemRowClass: [{
3648
+ type: Input
3649
+ }], itemColumnClass: [{
3650
+ type: Input
3651
+ }], labelClass: [{
3652
+ type: Input
3653
+ }], valueClass: [{
3654
+ type: Input
3655
+ }], actionsColumnClass: [{
3656
+ type: Input
3657
+ }], viewIconClass: [{
3658
+ type: Input
3659
+ }], downloadIconClass: [{
3660
+ type: Input
3661
+ }], emptyStateContainerClass: [{
3662
+ type: Input
3663
+ }], emptyStateTextClass: [{
3664
+ type: Input
3665
+ }], isLoadingChanged: [{
3666
+ type: Output
3667
+ }], attachmentViewed: [{
3668
+ type: Output
3669
+ }], attachmentDownloaded: [{
3670
+ type: Output
3671
+ }], errorOccurred: [{
3672
+ type: Output
3673
+ }] } });
3674
+
3675
+ class ProfileDegreesWidgetComponent {
3676
+ service;
3677
+ degrees = [];
3678
+ isLoading = true;
3679
+ baseUrl = '';
3680
+ sectionTitle = 'Degrees';
3681
+ degreesIcon = faFileCertificate;
3682
+ viewIcon = faEye;
3683
+ downloadIcon = faFolderArrowDown;
3684
+ headerIconClass = 'primary-icon-xl';
3685
+ headerTextClass = 'fs-16 mt-2 text-secondary';
3686
+ headerDividerClass = 'flex-grow-1 ms-2';
3687
+ rowClass = 'mt-4';
3688
+ rowMarginBottomClass = 'mb-5';
3689
+ rowMarginBottomEmptyClass = 'mb-4';
3690
+ headerRowClass = 'row col-10';
3691
+ actionsSpacerClass = 'col-2';
3692
+ labelClass = 'field-secondary-label-sm';
3693
+ valueClass = 'text-dark-gray fs-14';
3694
+ valueEllipsisClass = 'text-dark-gray fs-14 text-ellipsis-one-line cursor-pointer';
3695
+ viewIconClass = 'fs-15 text-dark cursor-pointer';
3696
+ downloadIconClass = 'fs-15 mx-3 text-dark cursor-pointer';
3697
+ emptyStateContainerClass = 'd-flex flex-column justify-content-center align-items-center my-5';
3698
+ emptyStateTextClass = 'field-secondary-label-md';
3699
+ itemRowClass = 'row';
3700
+ itemColumnsWrapperClass = 'row col-10 mt-3';
3701
+ itemColumnClass = 'col-3';
3702
+ actionsColumnClass = 'col-2 align-items-end mt-3';
3703
+ isLoadingChanged = new EventEmitter();
3704
+ attachmentViewed = new EventEmitter();
3705
+ attachmentDownloaded = new EventEmitter();
3706
+ errorOccurred = new EventEmitter();
3707
+ constructor(service) {
3708
+ this.service = service;
3709
+ }
3710
+ ngOnInit() {
3711
+ if (!this.baseUrl) {
3712
+ this.isLoading = false;
3713
+ return;
3714
+ }
3715
+ this.isLoadingChanged.emit(true);
3716
+ this.service.getEmployeeDegrees(this.baseUrl).subscribe({
3717
+ next: (res) => {
3718
+ this.degrees = res ?? [];
3719
+ this.isLoading = false;
3720
+ this.isLoadingChanged.emit(false);
3721
+ },
3722
+ error: (error) => {
3723
+ this.degrees = [];
3724
+ this.isLoading = false;
3725
+ this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);
3726
+ this.isLoadingChanged.emit(false);
3727
+ }
3728
+ });
3729
+ }
3730
+ get wrapperClass() {
3731
+ const classes = [this.rowClass];
3732
+ if (this.degrees.length > 0) {
3733
+ classes.push(this.rowMarginBottomClass);
3734
+ }
3735
+ else {
3736
+ classes.push(this.rowMarginBottomEmptyClass);
3737
+ }
3738
+ return classes.join(' ');
3739
+ }
3740
+ onAttachmentView(file) {
3741
+ this.attachmentViewed.emit(file);
3742
+ }
3743
+ onAttachmentDownload(file) {
3744
+ this.attachmentDownloaded.emit(file);
3745
+ }
3746
+ 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"] }] });
3748
+ }
3749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ProfileDegreesWidgetComponent, decorators: [{
3750
+ 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>" }]
3752
+ }], ctorParameters: () => [{ type: HRSelfWidgetsService }], propDecorators: { baseUrl: [{
3753
+ type: Input
3754
+ }], sectionTitle: [{
3755
+ type: Input
3756
+ }], degreesIcon: [{
3757
+ type: Input
3758
+ }], viewIcon: [{
3759
+ type: Input
3760
+ }], downloadIcon: [{
3761
+ type: Input
3762
+ }], headerIconClass: [{
3763
+ type: Input
3764
+ }], headerTextClass: [{
3765
+ type: Input
3766
+ }], headerDividerClass: [{
3767
+ type: Input
3768
+ }], rowClass: [{
3769
+ type: Input
3770
+ }], rowMarginBottomClass: [{
3771
+ type: Input
3772
+ }], rowMarginBottomEmptyClass: [{
3773
+ type: Input
3774
+ }], headerRowClass: [{
3775
+ type: Input
3776
+ }], actionsSpacerClass: [{
3777
+ type: Input
3778
+ }], labelClass: [{
3779
+ type: Input
3780
+ }], valueClass: [{
3781
+ type: Input
3782
+ }], valueEllipsisClass: [{
3783
+ type: Input
3784
+ }], viewIconClass: [{
3785
+ type: Input
3786
+ }], downloadIconClass: [{
3787
+ type: Input
3788
+ }], emptyStateContainerClass: [{
3789
+ type: Input
3790
+ }], emptyStateTextClass: [{
3791
+ type: Input
3792
+ }], itemRowClass: [{
3793
+ type: Input
3794
+ }], itemColumnsWrapperClass: [{
3795
+ type: Input
3796
+ }], itemColumnClass: [{
3797
+ type: Input
3798
+ }], actionsColumnClass: [{
3799
+ type: Input
3800
+ }], isLoadingChanged: [{
3801
+ type: Output
3802
+ }], attachmentViewed: [{
3803
+ type: Output
3804
+ }], attachmentDownloaded: [{
3805
+ type: Output
3806
+ }], errorOccurred: [{
3807
+ type: Output
3808
+ }] } });
3809
+
3693
3810
  /*
3694
3811
  * Public API Surface of shared-ui
3695
3812
  */
@@ -3698,5 +3815,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3698
3815
  * Generated bundle index. Do not edit.
3699
3816
  */
3700
3817
 
3701
- export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyUpcomingEventsWidgetComponent, MyVacationTeamWidgetComponent, ProfileBankInfoWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
3818
+ export { EventOption, EventTypeEnum, HRCardHeaderComponent, HRConstantsService, HREmployeeCalendarComponent, HRTranslatePipe, HRTranslateService, MainWidgetShortcut, MyCalendarWidgetComponent, MyMainDetailsWidgetComponent, MyNextWeekVacationInsightsWidgetComponent, MyUpcomingEventsWidgetComponent, ProfileBankInfoWidgetComponent, ProfileDegreesWidgetComponent, ProfileExperiencesWidgetComponent, ProfileJobInfoContractWidgetComponent, ProfileJobInfoMainWidgetComponent, ProfileJobInfoSalaryWidgetComponent, ProfileJobInfoServiceChargeWidgetComponent, ProfilePersonalInfoAddressWidgetComponent, ProfilePersonalInfoContactWidgetComponent, ProfilePersonalInfoLanguagesWidgetComponent, ProfilePersonalInfoMainWidgetComponent, ProfilePersonalInfoOtherNationalitiesWidgetComponent, PublicHolidayWeekContext, RelativeDay, ScheduleVacationTypes, ServiceChargeEntitlementMode, VacationPopupType };
3702
3819
  //# sourceMappingURL=skysoftware-co-bayan-hr-widgets-ui.mjs.map