@skysoftware-co/bayan-hr-widgets-ui 2.0.6 → 2.0.8
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skysoftware-co-bayan-hr-widgets-ui.mjs","sources":["../../../projects/shared-ui/src/lib/shared/types/common.ts","../../../projects/shared-ui/src/lib/shared/services/translate.service.ts","../../../projects/shared-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/shared-ui/src/lib/shared/services/bank-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/entitlements-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/job-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/personal-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/qualifications-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/profile-employee-dependents-cach.ts","../../../projects/shared-ui/src/lib/shared/services/profile-documents-cache-service.ts","../../../projects/shared-ui/src/lib/services/hr-self-widgets.service.ts","../../../projects/shared-ui/src/lib/shared/services/constants.service.ts","../../../projects/shared-ui/src/lib/my-main-details-widget/my-main-details-widget.component.ts","../../../projects/shared-ui/src/lib/my-main-details-widget/my-main-details-widget.component.html","../../../projects/shared-ui/src/lib/shared/components/card-header/card-header.component.ts","../../../projects/shared-ui/src/lib/shared/components/card-header/card-header.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-item/event-item.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-item/event-item.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-tab-bar/event-tab-bar.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-tab-bar/event-tab-bar.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/events-popup/events-popup.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/events-popup/events-popup.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/my-upcoming-events-widget.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/my-upcoming-events-widget.component.html","../../../projects/shared-ui/src/lib/shared/services/common-methods.service.ts","../../../projects/shared-ui/src/lib/shared/components/hr-employee-calendar/hr-employee-calendar.component.ts","../../../projects/shared-ui/src/lib/shared/components/hr-employee-calendar/hr-employee-calendar.component.html","../../../projects/shared-ui/src/lib/my-calendar-widget/my-calendar-widget.component.ts","../../../projects/shared-ui/src/lib/my-calendar-widget/my-calendar-widget.component.html","../../../projects/shared-ui/src/lib/shared/components/info-field/info-field.component.ts","../../../projects/shared-ui/src/lib/shared/components/info-field/info-field.component.html","../../../projects/shared-ui/src/lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/contact-widget/my-profile-contact-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/contact-widget/my-profile-contact-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/languages-widget/my-profile-languages-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/languages-widget/my-profile-languages-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/address-widget/my-profile-address-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/address-widget/my-profile-address-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/job-info-widget/my-profile-job-info-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/job-info-widget/my-profile-job-info-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/contract-widget/my-profile-contract-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/contract-widget/my-profile-contract-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/salary-widget/my-profile-salary-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/salary-widget/my-profile-salary-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component.html","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component.ts","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component.html","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component.ts","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/experiences-widget/my-profile-experiences-widget-component.ts","../../../projects/shared-ui/src/lib/my-profile/experiences-widget/my-profile-experiences-widget-component.html","../../../projects/shared-ui/src/lib/my-profile/degrees-widget/my-profile-degrees-widget-component.ts","../../../projects/shared-ui/src/lib/my-profile/degrees-widget/my-profile-degrees-widget-component.html","../../../projects/shared-ui/src/lib/shared/components/widget-card/widget-card-component.ts","../../../projects/shared-ui/src/lib/shared/components/widget-card/widget-card-component.html","../../../projects/shared-ui/src/lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component.ts","../../../projects/shared-ui/src/lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component.html","../../../projects/shared-ui/src/lib/my-profile/vacations-widget/my-profile-vacations-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/vacations-widget/my-profile-vacations-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/components/ticket-card/ticket-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/components/ticket-card/ticket-card.component.html","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/my-profile-ticket-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/my-profile-ticket-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/components/medical-insurance-card/medical-insurance-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/components/medical-insurance-card/medical-insurance-card.component.html","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-row/document-row.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-row/document-row.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-card/document-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-card/document-card.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-tablet-card/document-tablet-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-tablet-card/document-tablet-card.component.html","../../../projects/shared-ui/src/lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget.ts","../../../projects/shared-ui/src/lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget.html","../../../projects/shared-ui/src/lib/my-profile/official-documents-widget/my-profile-official-documents-widget.ts","../../../projects/shared-ui/src/lib/my-profile/official-documents-widget/my-profile-official-documents-widget.html","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/employee-main-info-card/employee-information-card.component.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/employee-main-info-card/employee-main-info-card.component.html","../../../projects/shared-ui/src/lib/shared/services/my-team-subordinates-popup.service.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-subordinates-popup.component.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-subordinates-popup.component.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/skysoftware-co-bayan-hr-widgets-ui.ts"],"sourcesContent":["export type MyMainDetailsWidgetDetails = {\r\n EmployeeNumber: string;\r\n EmployeeName: string;\r\n EmployeeNameInitials: string;\r\n PositionName: string;\r\n GradeName: string | null;\r\n PhotoPath: string | null;\r\n ReportingTo: string | null;\r\n ServiceYears: string;\r\n VacationBalances: VacationBalance[];\r\n AttendanceUrl: string | null;\r\n VacationStatementUrl: string | null;\r\n}\r\n\r\nexport type VacationBalance = {\r\n VacationTypeName: string,\r\n VacationTypeColor: string,\r\n CurrentBalance: number | null\r\n}\r\n\r\nexport enum MainWidgetShortcut {\r\n Profile,\r\n PaySlip,\r\n Attendance,\r\n VacationStatement,\r\n Loans\r\n} \r\n\r\nexport enum EventOption {\r\n Birthday = 1,\r\n PublicHoliday = 2,\r\n All = 3\r\n}\r\n\r\nexport enum RelativeDay {\r\n Today = 0,\r\n Tomorrow = 1,\r\n TwoDays = 2\r\n}\r\n\r\nexport enum PublicHolidayWeekContext {\r\n ThisWeek = 0,\r\n NextWeek = 1\r\n}\r\n\r\nexport type Birthday = {\r\n EmployeePropertySymbol: string;\r\n EmployeePropertyName: string;\r\n EmployeeShortName: string;\r\n Birthdate: Date;\r\n RelativeDay: RelativeDay;\r\n}\r\n\r\nexport type PublicHoliday = {\r\n StartDate: Date;\r\n EndDate: Date;\r\n Description: string;\r\n WeekContext: PublicHolidayWeekContext;\r\n}\r\n\r\nexport type UpcomingEventsV2 = {\r\n Birthdays: Birthday[];\r\n PublicHolidays: PublicHoliday[];\r\n IsWeekendConfigured: boolean;\r\n}\r\n\r\n\r\nexport enum EventTypeEnum {\r\n Birthdays = 1,\r\n PublicHolidays = 2\r\n}\r\n\r\nexport type FilteredUpcomingEvent = {\r\n EventDate: Date;\r\n Name: string;\r\n EventType: EventTypeEnum;\r\n Description: string;\r\n StartDate?: Date;\r\n EndDate?: Date;\r\n IsIn2Days?: boolean;\r\n PropertyName?: string;\r\n PropertySymbol?: string;\r\n}\r\n\r\n// Calendar types\r\n\r\nexport type DatePeriod = {\r\n StartDate: Date;\r\n EndDate: Date;\r\n}\r\n\r\nexport type CalendarResponse = {\r\n OffDays: Date[];\r\n PublicHolidays: { Description: string; StartDate: Date; EndDate: Date }[];\r\n Vacations: { VacationTypeName: string; Color: string; StartDate: Date; EndDate: Date }[];\r\n Events: { Description: string; StartDate: Date; EndDate: Date }[];\r\n}\r\n\r\nexport type ScheduleCalenderVacation = {\r\n Color: string | null;\r\n VacationType: ScheduleVacationTypes;\r\n Description: string;\r\n VacationDays: DatePeriod;\r\n}\r\n\r\nexport enum ScheduleVacationTypes {\r\n DaysOff = 1,\r\n PublicHoliday = 2,\r\n Vacations = 3,\r\n AddedVacations = 4,\r\n Events = 5\r\n}\r\n\r\nexport type PersonalInfoMainDetails = {\r\nEmployeeName: string | null;\r\nEmployeeNameAlternate: string | null;\r\nNationalityName: string | null;\r\nNationalNumber: string | null;\r\nSocialSecurityNumber: string | null;\r\nMaritalStateName: string | null;\r\nBirthDate: string | Date | null;\r\nBirthPlace: string | null;\r\nBloodTypeCode: string | null;\r\nReligionName: string | null;\r\nMinistryOfLaborNumber: string | null;\r\n};\r\n\r\nexport type PersonalInfoContactEmergencyContact = {\r\nName: string | null;\r\nRelation: string | null;\r\nPhoneNumber: string | null;\r\n};\r\n\r\nexport type PersonalInfoContactDetails = {\r\nMobileNumber: string | null;\r\nHomePhone: string | null;\r\nBusinessEmail: string | null;\r\nEmail: string | null;\r\nEmergencyContactLegacy: string | null;\r\nEmergencyContact: PersonalInfoContactEmergencyContact | null;\r\n};\r\n\r\nexport type PersonalInfoAddressDetails = {\r\nAddress: string | null;\r\nCity: string | null;\r\nPOBox: string | null;\r\nPostalCode: string | null;\r\n};\r\n\r\nexport type MyBankInfo = {\r\nIsMainBank: boolean;\r\nBankName: string | null;\r\nBranchName: string | null;\r\nIBAN: string | null;\r\nAccountNumber: string | null;\r\nBeneficiary: string | null;\r\nTransferAmount: number | null;\r\n};\r\n\r\nexport type JobInformationMain = {\r\n AdminUnitName: string | null;\r\n PositionName: string | null;\r\n GradeName: string | null;\r\n JoiningDate: Date | null;\r\n CorporateJoiningDate: Date | null;\r\n SponsorName: string | null;\r\n}\r\n\r\n\r\nexport type JobInformationContract = {\r\n ContractTypeName: string | null;\r\n ContractStartDate: Date | null;\r\n ContractEndDate: Date | null;\r\n ContractMaritalStateName: string | null;\r\n ContractDependentsCount: number | null;\r\n}\r\n\r\nexport type JobInformationSalary = {\r\n GrossSalary: number | null;\r\n BasicSalary: number | null;\r\n CurrentBasicSalary?: number | null;\r\n Allowances: Allowances[] | null;\r\n}\r\nexport type Allowances = {\r\n AllowanceName: string | null;\r\n AllowanceAmount: number | null;\r\n\r\n}\r\n\r\nexport enum ServiceChargeEntitlementMode {\r\n Points = 1,\r\n SalaryRatio = 2,\r\n FixedAmount = 3,\r\n FixedRate = 4\r\n}\r\n\r\n\r\nexport type JobInformationServiceCharge = {\r\n ServiceChargeEntitlementMode: ServiceChargeEntitlementMode;\r\n ServiceChargeValue: number | null;\r\n}\r\n\r\n export enum VacationPopupType {\r\n Upcoming = 1,\r\n ExpectedToReturn = 2\r\n}\r\nexport type ScheduleRequestsResponse = {\r\n PendingVacationRequests: { VacationTypeName: string; Color: string; StartDate: Date; EndDate: Date }[];\r\n PendingEventRequests: { Description: string; StartDate: Date; EndDate: Date }[];\r\n}\r\n\r\nexport type EntitlementsVacation = {\r\n VacationTypeName: string | null;\r\n EntitlementDays: number | null;\r\n};\r\n\r\nexport type EntitlementsIndemnity = {\r\n IsEligibleForIndemnity: boolean | null;\r\n IndemnityServiceYears: number | null;\r\n IndemnityStartDate: string | Date | null;\r\n IndemnitySalary: number | null;\r\n};\r\n\r\nexport type EmployeeTicketDetails = {\r\n EmployeeFirstName: string | null;\r\n TicketSectorName: string | null;\r\n TicketClassName: string | null;\r\n MonthsPerTicketEntitlement: number | null;\r\n};\r\n\r\nexport type DependentTicketDetails = {\r\n DependentName: string | null;\r\n DependentTypeName: string | null;\r\n MonthsPerTicketEntitlement: number | null;\r\n};\r\n\r\nexport type EntitlementsTicket = {\r\n EmployeeTicketDetails: EmployeeTicketDetails | null;\r\n DependentTicketDetails: DependentTicketDetails[] | null;\r\n};\r\n\r\nexport type EmployeeMedicalInsurance = {\r\n EmployeeFirstName: string | null;\r\n MedicalInsuranceClassName: string | null;\r\n MedicalInsuranceNumber: string | null;\r\n CoverageDate: Date | null;\r\n};\r\n\r\nexport type DependentsMedicalInsurance = {\r\n DependentName: string | null;\r\n DependentTypeName: string | null;\r\n MedicalInsuranceClassName: string | null;\r\n MedicalInsuranceNumber: string | null;\r\n CoverageDate: Date | null;\r\n};\r\n\r\nexport type EntitlementsMedicalInsurance = {\r\n EmployeeMedicalInsurance: EmployeeMedicalInsurance | null;\r\n DependentsMedicalInsurance: DependentsMedicalInsurance[] | null;\r\n TotalEmployeeShare: number | null;\r\n TotalEmployerShare: number | null;\r\n};\r\n\r\nexport type Degree = {\r\n DegreeName: string;\r\n DegreeYear: string;\r\n CountryName: string;\r\n Specialty: string | null;\r\n Institute: string | null;\r\n Document: DocumentModel | null;\r\n};\r\n \r\nexport type Experience = {\r\n StartDate: string | Date;\r\n EndDate: string | Date;\r\n Employer: string;\r\n Position: string;\r\n TerminationReason: string;\r\n Document: DocumentModel | null;\r\n};\r\n\r\nexport type DocumentModel = {\r\n Key: string;\r\n ContentType: string;\r\n};\r\n\r\n\r\nexport type Dependent = {\r\n DependentName: string;\r\n DependentTypeName: string;\r\n BirthDate: string | Date;\r\n NationalNumber: string | null;\r\n};\r\n\r\nexport interface DependentDocumentsResponse {\r\n ResponseData: DependentDocumentGroup[];\r\n ApiVersion: string;\r\n}\r\n\r\nexport interface DependentDocumentGroup {\r\n DependentName: string;\r\n DependentTypeName: string;\r\n Documents: DocumentRow[];\r\n}\r\n\r\nexport interface DocumentRow {\r\n DocumentTypeName: string;\r\n DocumentNumber: string;\r\n IssueDate: string;\r\n ExpiryDate: string;\r\n Attachments: Attachment[];\r\n}\r\n\r\nexport interface Attachment {\r\n Key: string;\r\n ContentType: string;\r\n}\r\n\r\nexport interface PersonalDocument {\r\n DocumentTypeName: string;\r\n DocumentNumber: string;\r\n IssueDate: string;\r\n ExpiryDate: string;\r\n Attachments: Attachment[];\r\n}\r\n\r\nexport type SubordinateDTO = {\r\n EmployeeNumber: string;\r\n EmployeeName: string;\r\n EmployeeNameInitials: string;\r\n PositionName: string;\r\n GradeName: string;\r\n PhotoPath: string;\r\n PropertyName?: string;\r\n PropertySymbol?: string;\r\n AdminUnitName?: string;\r\n MobileNumber?: string;\r\n PersonalEmail?: string;\r\n BusinessEmail?: string;\r\n};\r\n\r\nexport type SubordinatesPaginationDTO = {\r\n PageIndex: number;\r\n PageSize: number;\r\n TotalPages: number;\r\n TotalCount: number;\r\n};\r\n\r\nexport type SubordinatesApiResponse = {\r\n Data: SubordinateDTO[];\r\n Pagination: SubordinatesPaginationDTO;\r\n};\r\n\r\nexport type EmployeeMainInfo = {\r\n EmployeeNumber: string,\r\n EmployeeName: string,\r\n PhotoKey: string,\r\n PositionName: string,\r\n AdminUnitName: string,\r\n GradeName: string | null,\r\n PropertyName: string,\r\n PropertySymbol: string,\r\n EmployeeNameInitials: string\r\n}","import { Injectable } from '@angular/core';\r\nimport en from '../../../assets/i18n/en.json';\r\nimport ar from '../../../assets/i18n/ar.json';\r\nimport fr from '../../../assets/i18n/fr.json';\r\n\r\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar, fr };\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HRTranslateService {\r\n private currentLanguage: string = 'en';\r\n private lexicon: Record<string, string> = {};\r\n\r\n setLanguage(language: string): void {\r\n this.currentLanguage = language;\r\n }\r\n\r\n getLanguage(): string {\r\n return this.currentLanguage;\r\n }\r\n\r\n setLexicon(lexicon: Record<string, string>): void {\r\n this.lexicon = lexicon;\r\n }\r\n\r\n getLexicon(): Record<string, string> {\r\n return this.lexicon;\r\n }\r\n\r\n translateBuiltIn(key: string): string {\r\n if (!key) return '';\r\n const builtIn = BUILT_IN_LEXICONS[this.currentLanguage] || {};\r\n const foundKey = Object.keys(builtIn).find(k => k.toLowerCase() === key.toLowerCase());\r\n return foundKey ? builtIn[foundKey] : key;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HRTranslateService } from '../services/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class HRTranslatePipe implements PipeTransform {\r\n constructor(private readonly payrollTranslateService: HRTranslateService) {}\r\n\r\n transform(key?: string): string {\r\n if (!key) return '';\r\n\r\n key = this.payrollTranslateService.translateBuiltIn(key);\r\n\r\n const lexicon = this.payrollTranslateService.getLexicon();\r\n let foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === key!.toLowerCase());\r\n if (foundKey) return lexicon[foundKey];\r\n\r\n const arrKey = key.split(' ');\r\n let keyValue = '';\r\n for (let i = 0; i < arrKey.length; i++) {\r\n if (i !== 0) keyValue += ' ';\r\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\r\n if (foundKey) {\r\n keyValue += lexicon[foundKey];\r\n } else {\r\n keyValue += arrKey[i];\r\n }\r\n }\r\n\r\n return keyValue;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { MyBankInfo } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BankInformationCacheService {\r\n private bankInformationCache$: Observable<MyBankInfo[]> | null = null;\r\n private bankInformationCacheBaseUrl = '';\r\n\r\n get(baseUrl: string): Observable<MyBankInfo[]> | null {\r\n if (this.bankInformationCacheBaseUrl !== baseUrl) {\r\n return null;\r\n }\r\n\r\n return this.bankInformationCache$;\r\n }\r\n\r\n set(baseUrl: string, value: Observable<MyBankInfo[]>): void {\r\n this.bankInformationCacheBaseUrl = baseUrl;\r\n this.bankInformationCache$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.bankInformationCache$ = null;\r\n this.bankInformationCacheBaseUrl = '';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n EntitlementsIndemnity,\r\n EntitlementsMedicalInsurance,\r\n EntitlementsTicket,\r\n EntitlementsVacation\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntitlementsCacheService {\r\n private baseUrl = '';\r\n\r\n private vacationDetails$: Observable<EntitlementsVacation[]| null> | null = null;\r\n private indemnityDetails$: Observable<EntitlementsIndemnity | null> | null = null;\r\n private ticketDetails$: Observable<EntitlementsTicket | null> | null = null;\r\n private medicalInsuranceDetails$: Observable<EntitlementsMedicalInsurance | null> | null = null;\r\n private overtimeDetails$: Observable<any> | null = null;\r\n private socialSecurityDetails$: Observable<any> | null = null;\r\n\r\n getVacationDetails(baseUrl: string): Observable<EntitlementsVacation[] | null> | null {\r\n return this.baseUrl === baseUrl ? this.vacationDetails$ : null;\r\n }\r\n\r\n setVacationDetails(baseUrl: string, value: Observable<EntitlementsVacation[] | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.vacationDetails$ = value;\r\n }\r\n\r\n getIndemnityDetails(baseUrl: string): Observable<EntitlementsIndemnity | null> | null {\r\n return this.baseUrl === baseUrl ? this.indemnityDetails$ : null;\r\n }\r\n\r\n setIndemnityDetails(baseUrl: string, value: Observable<EntitlementsIndemnity | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.indemnityDetails$ = value;\r\n }\r\n\r\n getTicketDetails(baseUrl: string): Observable<EntitlementsTicket | null> | null {\r\n return this.baseUrl === baseUrl ? this.ticketDetails$ : null;\r\n }\r\n\r\n setTicketDetails(baseUrl: string, value: Observable<EntitlementsTicket | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.ticketDetails$ = value;\r\n }\r\n\r\n getMedicalInsuranceDetails(baseUrl: string): Observable<EntitlementsMedicalInsurance | null> | null {\r\n return this.baseUrl === baseUrl ? this.medicalInsuranceDetails$ : null;\r\n }\r\n\r\n setMedicalInsuranceDetails(baseUrl: string, value: Observable<EntitlementsMedicalInsurance | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.medicalInsuranceDetails$ = value;\r\n }\r\n\r\n getOvertimeDetails(baseUrl: string): Observable<any> | null {\r\n return this.baseUrl === baseUrl ? this.overtimeDetails$ : null;\r\n }\r\n\r\n setOvertimeDetails(baseUrl: string, value: Observable<any>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.overtimeDetails$ = value;\r\n }\r\n\r\n getSocialSecurityDetails(baseUrl: string): Observable<any> | null {\r\n return this.baseUrl === baseUrl ? this.socialSecurityDetails$ : null;\r\n }\r\n\r\n setSocialSecurityDetails(baseUrl: string, value: Observable<any>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.socialSecurityDetails$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.vacationDetails$ = null;\r\n this.indemnityDetails$ = null;\r\n this.ticketDetails$ = null;\r\n this.medicalInsuranceDetails$ = null;\r\n this.overtimeDetails$ = null;\r\n this.socialSecurityDetails$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n JobInformationContract,\r\n JobInformationMain,\r\n JobInformationSalary,\r\n JobInformationServiceCharge\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JobInformationCacheService {\r\n private baseUrl = '';\r\n\r\n private mainDetails$: Observable<JobInformationMain | null> | null = null;\r\n private contractDetails$: Observable<JobInformationContract | null> | null = null;\r\n private salaryDetails$: Observable<JobInformationSalary | null> | null = null;\r\n private serviceChargeDetails$: Observable<JobInformationServiceCharge | null> | null = null;\r\n\r\n getMainDetails(baseUrl: string): Observable<JobInformationMain | null> | null {\r\n return this.baseUrl === baseUrl ? this.mainDetails$ : null;\r\n }\r\n\r\n setMainDetails(baseUrl: string, value: Observable<JobInformationMain | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.mainDetails$ = value;\r\n }\r\n\r\n getContractDetails(baseUrl: string): Observable<JobInformationContract | null> | null {\r\n return this.baseUrl === baseUrl ? this.contractDetails$ : null;\r\n }\r\n\r\n setContractDetails(baseUrl: string, value: Observable<JobInformationContract | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.contractDetails$ = value;\r\n }\r\n\r\n getSalaryDetails(baseUrl: string): Observable<JobInformationSalary | null> | null {\r\n return this.baseUrl === baseUrl ? this.salaryDetails$ : null;\r\n }\r\n\r\n setSalaryDetails(baseUrl: string, value: Observable<JobInformationSalary | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.salaryDetails$ = value;\r\n }\r\n\r\n getServiceChargeDetails(baseUrl: string): Observable<JobInformationServiceCharge | null> | null {\r\n return this.baseUrl === baseUrl ? this.serviceChargeDetails$ : null;\r\n }\r\n\r\n setServiceChargeDetails(baseUrl: string, value: Observable<JobInformationServiceCharge | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.serviceChargeDetails$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.mainDetails$ = null;\r\n this.contractDetails$ = null;\r\n this.salaryDetails$ = null;\r\n this.serviceChargeDetails$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PersonalInformationCacheService {\r\n private baseUrl = '';\r\n\r\n private mainDetails$: Observable<PersonalInfoMainDetails> | null = null;\r\n private contactDetails$: Observable<PersonalInfoContactDetails> | null = null;\r\n private addressDetails$: Observable<PersonalInfoAddressDetails> | null = null;\r\n private languages$: Observable<string[]> | null = null;\r\n private otherNationalities$: Observable<string[]> | null = null;\r\n\r\n getMainDetails(baseUrl: string): Observable<PersonalInfoMainDetails> | null {\r\n return this.baseUrl === baseUrl ? this.mainDetails$ : null;\r\n }\r\n\r\n setMainDetails(baseUrl: string, value: Observable<PersonalInfoMainDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.mainDetails$ = value;\r\n }\r\n\r\n getContactDetails(baseUrl: string): Observable<PersonalInfoContactDetails> | null {\r\n return this.baseUrl === baseUrl ? this.contactDetails$ : null;\r\n }\r\n\r\n setContactDetails(baseUrl: string, value: Observable<PersonalInfoContactDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.contactDetails$ = value;\r\n }\r\n\r\n getAddressDetails(baseUrl: string): Observable<PersonalInfoAddressDetails> | null {\r\n return this.baseUrl === baseUrl ? this.addressDetails$ : null;\r\n }\r\n\r\n setAddressDetails(baseUrl: string, value: Observable<PersonalInfoAddressDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.addressDetails$ = value;\r\n }\r\n\r\n getLanguages(baseUrl: string): Observable<string[]> | null {\r\n return this.baseUrl === baseUrl ? this.languages$ : null;\r\n }\r\n\r\n setLanguages(baseUrl: string, value: Observable<string[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.languages$ = value;\r\n }\r\n\r\n getOtherNationalities(baseUrl: string): Observable<string[]> | null {\r\n return this.baseUrl === baseUrl ? this.otherNationalities$ : null;\r\n }\r\n\r\n setOtherNationalities(baseUrl: string, value: Observable<string[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.otherNationalities$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.mainDetails$ = null;\r\n this.contactDetails$ = null;\r\n this.addressDetails$ = null;\r\n this.languages$ = null;\r\n this.otherNationalities$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Degree, Experience } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QualificationsCacheService {\r\n private baseUrl = '';\r\n\r\n private degrees$: Observable<Degree[]> | null = null;\r\n private experiences$: Observable<Experience[]> | null = null;\r\n\r\n getDegrees(baseUrl: string): Observable<Degree[]> | null {\r\n return this.baseUrl === baseUrl ? this.degrees$ : null;\r\n }\r\n\r\n setDegrees(baseUrl: string, value: Observable<Degree[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.degrees$ = value;\r\n }\r\n\r\n getExperiences(baseUrl: string): Observable<Experience[]> | null {\r\n return this.baseUrl === baseUrl ? this.experiences$ : null;\r\n }\r\n\r\n setExperiences(baseUrl: string, value: Observable<Experience[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.experiences$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.degrees$ = null;\r\n this.experiences$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n Dependent,\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileEmployeeDependentsCach {\r\n private baseUrl = '';\r\n\r\n private dependents$: Observable<Dependent[]> | null = null;\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n }\r\n\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n setDependents(baseUrl: string, value: Observable<Dependent[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.dependents$ = value;\r\n }\r\n\r\n getDependents(baseUrl: string): Observable<Dependent[]> | null {\r\n return this.baseUrl === baseUrl ? this.dependents$ : null;\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DependentDocumentGroup, PersonalDocument } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileDocumentsCacheService {\r\n private baseUrl = '';\r\n\r\n private dependentDocuments$: Observable<DependentDocumentGroup[]> | null = null;\r\n private personalDocuments$: Observable<PersonalDocument[]> | null = null;\r\n\r\n\r\n getDependentDocuments(baseUrl: string): Observable<DependentDocumentGroup[]> | null {\r\n return this.baseUrl === baseUrl ? this.dependentDocuments$ : null;\r\n }\r\n\r\n setDependentDocuments(baseUrl: string, value: Observable<DependentDocumentGroup[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.dependentDocuments$ = value;\r\n }\r\n\r\n getPersonalDocuments(baseUrl: string): Observable<PersonalDocument[]> | null {\r\n return this.baseUrl === baseUrl ? this.personalDocuments$ : null;\r\n }\r\n\r\n setPersonalDocuments(baseUrl: string, value: Observable<PersonalDocument[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.personalDocuments$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.dependentDocuments$ = null;\r\n this.personalDocuments$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, catchError, map, shareReplay, throwError } from 'rxjs';\r\nimport {\r\n Degree,\r\n Dependent,\r\n DependentDocumentGroup,\r\n DocumentRow,\r\n EntitlementsIndemnity,\r\n EntitlementsMedicalInsurance,\r\n EntitlementsTicket,\r\n EntitlementsVacation,\r\n EventOption,\r\n Experience,\r\n JobInformationContract,\r\n JobInformationMain,\r\n JobInformationSalary,\r\n JobInformationServiceCharge,\r\n MyBankInfo,\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../shared/types/common';\r\nimport { BankInformationCacheService } from '../shared/services/bank-information-cache.service';\r\nimport { EntitlementsCacheService } from '../shared/services/entitlements-cache.service';\r\nimport { JobInformationCacheService } from '../shared/services/job-information-cache.service';\r\nimport { PersonalInformationCacheService } from '../shared/services/personal-information-cache.service';\r\nimport { QualificationsCacheService } from '../shared/services/qualifications-cache.service';\r\nimport { ProfileEmployeeDependentsCach } from '../shared/services/profile-employee-dependents-cach';\r\nimport { ProfileDocumentsCacheService } from '../shared/services/profile-documents-cache-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HRSelfWidgetsService {\r\n\r\n private readonly headers = { 'api-version': '1' };\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private readonly bankInformationCacheService: BankInformationCacheService,\r\n private readonly entitlementsCacheService: EntitlementsCacheService,\r\n private readonly jobInformationCacheService: JobInformationCacheService,\r\n private readonly personalInformationCacheService: PersonalInformationCacheService,\r\n private readonly qualificationsCacheService: QualificationsCacheService,\r\n private readonly profileEmployeeDependentsCachService: ProfileEmployeeDependentsCach,\r\n private readonly profileDocumentsCacheService: ProfileDocumentsCacheService\r\n\r\n\r\n ) { }\r\n\r\n getMainDetails(baseUrl: string): Observable<any> {\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/main-details`, {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getUpcomingEvents(baseUrl: string, eventOption: EventOption): Observable<any> {\r\n const params = new HttpParams().set('EventOption', eventOption);\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/upcoming-events`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getCalendar(baseUrl: string, month: number, year: number, monthsCount: number): Observable<any> {\r\n const params = new HttpParams()\r\n .set('Month', month)\r\n .set('Year', year)\r\n .set('MonthsCount', monthsCount);\r\n\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/calendar`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getBankInformation(baseUrl: string, forceRefresh = false): Observable<MyBankInfo[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.bankInformationCacheService.get(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: MyBankInfo[] }>(`${baseUrl}/hr/widgets/me/profile/banks`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.bankInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.bankInformationCacheService.set(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoMainDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoMainDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getMainDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoMainDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/main`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoMainDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setMainDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoContactDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoContactDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getContactDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoContactDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/contact`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoContactDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setContactDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoAddressDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoAddressDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getAddressDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoAddressDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/address`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoAddressDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setAddressDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoLanguages(baseUrl: string, forceRefresh = false): Observable<string[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getLanguages(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: string[] }>(`${baseUrl}/hr/widgets/me/profile/personal-information/languages`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as string[]) ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setLanguages(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoOtherNationalities(baseUrl: string, forceRefresh = false): Observable<string[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getOtherNationalities(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: string[] }>(`${baseUrl}/hr/widgets/me/profile/personal-information/other-nationalities`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as string[]) ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setOtherNationalities(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationMain(baseUrl: string, forceRefresh = false): Observable<JobInformationMain | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getMainDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationMain }>(`${baseUrl}/hr/widgets/me/profile/job-information/main`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setMainDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationContract(baseUrl: string, forceRefresh = false): Observable<JobInformationContract | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getContractDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationContract }>(`${baseUrl}/hr/widgets/me/profile/job-information/contract`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setContractDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationSalary(baseUrl: string, forceRefresh = false): Observable<JobInformationSalary | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getSalaryDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationSalary }>(`${baseUrl}/hr/widgets/me/profile/job-information/salary`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setSalaryDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationServiceCharge(baseUrl: string, forceRefresh = false): Observable<JobInformationServiceCharge | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getServiceChargeDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationServiceCharge }>(`${baseUrl}/hr/widgets/me/profile/job-information/service-charge`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setServiceChargeDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n clearPersonalInformationCache(): void {\r\n this.personalInformationCacheService.clear();\r\n }\r\n\r\n clearJobInformationCache(): void {\r\n this.jobInformationCacheService.clear();\r\n }\r\n\r\n getVacationSummary(baseUrl: string): Observable<any> {\r\n const params = new HttpParams().set('ShowDirectSubordinatesOnly', 'false');\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/team/next-week-vacation-insights/summary`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getEntitlementsVacations(baseUrl: string, forceRefresh = false): Observable<EntitlementsVacation[] | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getVacationDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsVacation[] | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/vacations`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setVacationDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsIndemnity(baseUrl: string, forceRefresh = false): Observable<EntitlementsIndemnity | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getIndemnityDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsIndemnity | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/indemnity`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setIndemnityDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsTicket(baseUrl: string, forceRefresh = false): Observable<EntitlementsTicket | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getTicketDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsTicket | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/ticket`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setTicketDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsMedicalInsurance(baseUrl: string, forceRefresh = false): Observable<EntitlementsMedicalInsurance | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getMedicalInsuranceDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsMedicalInsurance | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/medical-insurance`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setMedicalInsuranceDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsOvertime(baseUrl: string, forceRefresh = false): Observable<any> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getOvertimeDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<any>(`${baseUrl}/hr/widgets/me/profile/entitlements/overtime`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setOvertimeDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsSocialSecurity(baseUrl: string, forceRefresh = false): Observable<any> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getSocialSecurityDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<any>(`${baseUrl}/hr/widgets/me/profile/entitlements/social-security`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setSocialSecurityDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEmployeeDegrees(baseUrl: string, forceRefresh = false): Observable<Degree[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.qualificationsCacheService.getDegrees(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Degree[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/qualifications/degrees`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.qualificationsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.qualificationsCacheService.setDegrees(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n getEmployeeDependents(baseUrl: string, forceRefresh = false): Observable<Dependent[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.profileEmployeeDependentsCachService.getDependents(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Dependent[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/dependents`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.profileEmployeeDependentsCachService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileEmployeeDependentsCachService.setDependents(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n\r\n getEmployeeExperiences(baseUrl: string, forceRefresh = false): Observable<Experience[]> {\r\n\r\n\r\n\r\n if (!forceRefresh) {\r\n const cached = this.qualificationsCacheService.getExperiences(baseUrl);\r\n if (cached) return cached;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Experience[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/qualifications/experiences`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.qualificationsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n\r\n\r\n this.qualificationsCacheService.setExperiences(baseUrl, request$);\r\n\r\n\r\n\r\n return request$;\r\n }\r\n\r\n getDependentDocuments(baseUrl: string, forceRefresh = false): Observable<DependentDocumentGroup[]> {\r\n\r\n if (!forceRefresh) {\r\n const cached$ = this.profileDocumentsCacheService.getDependentDocuments(baseUrl);\r\n if (cached$) return cached$;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: DependentDocumentGroup[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/documents/dependents`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError(error => {\r\n this.profileDocumentsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileDocumentsCacheService.setDependentDocuments(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n getPersonalDocuments(baseUrl: string, forceRefresh = false): Observable<DocumentRow[]> {\r\n if (!forceRefresh) {\r\n const cached$ = this.profileDocumentsCacheService.getPersonalDocuments(baseUrl);\r\n if (cached$) return cached$;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: DocumentRow[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/documents/personal`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError(error => {\r\n this.profileDocumentsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileDocumentsCacheService.setPersonalDocuments(baseUrl, request$);\r\n return request$;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRConstantsService {\r\n defaultVacationBalanceColor: string = '#727070';\r\n defaultVacationColor: string = '#DCDCDC';\r\n defaultPublicHolidayColor: string = '#249EA0';\r\n defaultDayOffColor: string = '#FCCF5A';\r\n defaultEventsColor: string = '#e67e0f';\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular';\r\nimport { DecimalPipe, NgClass } from '@angular/common';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { SkyShortcutIconComponent, ShortcutIconDTO } from '@skysoftware-co/sky-components-ui';\r\nimport { MyMainDetailsWidgetDetails, MainWidgetShortcut } from '../shared/types/common';\r\nimport { HRConstantsService } from '../shared/services/constants.service';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-main-details-widget',\r\n standalone: true,\r\n imports: [DxTooltipModule, NgClass, FontAwesomeModule, DecimalPipe, BayanEmployeeBadgeComponent, SkyShortcutIconComponent, HRTranslatePipe],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-main-details-widget.component.html',\r\n})\r\nexport class MyMainDetailsWidgetComponent implements OnInit, OnChanges {\r\n employeeMainInfo: MyMainDetailsWidgetDetails | null = null;\r\n\r\n @Output() onShortcutClicked = new EventEmitter<ShortcutIconDTO>();\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n @Input() badgeClass: string = 'badge employee-rounded-badge-xl fs-5';\r\n @Input() badgeImageClass: string = 'rounded-circle shadow-lg';\r\n @Input() badgeWidth: string = '50px';\r\n @Input() badgeHeight: string = '50px';\r\n @Input() employeeInfoContainerClass: string = 'd-flex align-content-center';\r\n @Input() employeeDetailsClass: string = 'ms-3';\r\n @Input() employeeNameContainerClass: string = 'd-flex align-items-center';\r\n @Input() employeeNameClass: string = 'fs-14 text-dark-gray fw-medium text-ellipsis-one-line';\r\n @Input() employeePositionClass: string = 'fs-12 fw-normal text-dark-gray text-ellipsis-one-line mb-1';\r\n @Input() employeeGradeClass: string = 'fs-12 text-dark-gray';\r\n\r\n @Input() containerClass: string = 'card rounded rounded-4 card-shadow p-16 border-top-0 mb-4';\r\n @Input() cardBodyClass: string = 'card-body p-4';\r\n @Input() headerRowClass: string = 'd-md-flex justify-content-between align-items-center mt-2 mb-3';\r\n\r\n @Input() shortcutsContainerClass: string = 'd-flex justify-content-md-end justify-content-sm-start fs-12 fw-normal text-secondary mt-3 mt-md-0';\r\n @Input() shortcutItemClass: string = 'd-flex flex-column align-items-center mx-2 wp-60';\r\n @Input() shortcutIconContainerClass: string = 'd-flex justify-content-center align-items-center rounded-circle-40 cursor-pointer';\r\n @Input() shortcutIconClass: string = 'fs-4';\r\n @Input() shortcutTextClass: string = 'text-center mt-1';\r\n\r\n @Input() detailsRowClass: string = 'd-flex mt-4';\r\n\r\n @Input() reportingBlockClass: string = 'd-flex text-secondary align-items-center mb-2 mx-2';\r\n @Input() captionLabelClasses: string = 'd-flex flex-column align-self-start fs-14 text-dark-gray';\r\n @Input() captionLabelValueClass: string = 'fw-medium mt-2';\r\n\r\n @Input() vacationBalancesContainerClass: string = 'd-flex text-secondary align-items-center mb-2';\r\n @Input() vacationBalanceItemClass: string = 'd-flex flex-column me-4';\r\n @Input() vacationBalanceHeaderClass: string = 'd-flex align-items-center';\r\n @Input() vacationColorDotClass: string = 'vacation-color-container-sm';\r\n @Input() vacationTypeNameClass: string = 'mx-2 fs-14 fw-normal text-dark-gray';\r\n @Input() vacationBalanceValueRowClass: string = 'd-flex mt-2';\r\n @Input() vacationBalanceValueClass: string = 'mx-2 fw-medium fs-14 text-dark-gray';\r\n\r\n @Input() tooltipTriggerLinkClass: string = 'd-flex align-items-center cursor-pointer';\r\n @Input() tooltipTriggerTextClass: string = 'mx-2 fs-14 text-dark-gray';\r\n\r\n @Input() tooltipVacationRowClass: string = 'd-flex align-items-center justify-content-around fs-12 mb-2';\r\n @Input() tooltipVacationNameContainerClass: string = 'd-flex flex-grow-1 align-items-center me-5';\r\n @Input() tooltipVacationNameClass: string = 'mx-2';\r\n\r\n @Input() defaultVacationBalanceColor: string;\r\n\r\n @Input() defaultVacationColor: string;\r\n\r\n @Input() baseUrl: string = '';\r\n\r\n employeeBadge: BayanEmployeeBadgeDTO = {\r\n EmployeePhotoKey: null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: ''\r\n }\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n @Input() shortcuts: ShortcutIconDTO[] = [];\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private constants: HRConstantsService,\r\n private translatePipe: HRTranslatePipe) {\r\n this.defaultVacationBalanceColor = this.constants.defaultVacationBalanceColor;\r\n this.defaultVacationColor = this.constants.defaultVacationColor;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadEmployeeMainInfo();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['shortcuts']) {\r\n this.shortcuts = this.shortcuts.map(s => ({\r\n ...s,\r\n title: this.translatePipe.transform(s.title)\r\n }));\r\n if (this.employeeMainInfo) {\r\n this.applyShortcutUrls();\r\n }\r\n }\r\n }\r\n\r\n loadEmployeeMainInfo() {\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.getEmployeeMainDetails().subscribe({\r\n next: (data: any) => {\r\n const responses = data.ResponseData;\r\n this.employeeMainInfo = {\r\n EmployeeNumber: responses.EmployeeNumber,\r\n EmployeeName: responses.EmployeeName,\r\n EmployeeNameInitials: responses.EmployeeNameInitials,\r\n PositionName: responses.PositionName,\r\n GradeName: responses.GradeName,\r\n PhotoPath: responses.PhotoPath,\r\n ReportingTo: responses.ReportingToEmployeeName,\r\n ServiceYears: `${responses.ServicePeriod.Years} ${this.translatePipe.transform('Years')} ${responses.ServicePeriod.Months} ${this.translatePipe.transform('Months')}`,\r\n VacationBalances: responses.VacationBalances,\r\n AttendanceUrl: responses.AttendanceReportUrl,\r\n VacationStatementUrl: responses.VacationStatementReportUrl,\r\n };\r\n\r\n this.employeeBadge.EmployeePhotoKey = this.employeeMainInfo.PhotoPath || null;\r\n this.employeeBadge.EmployeeNameInitials = this.employeeMainInfo.EmployeeNameInitials || '';\r\n this.employeeBadge.EmployeePhotoFailed = false;\r\n\r\n this.employeeMainInfo.VacationBalances.forEach(v => {\r\n if (v.VacationTypeColor == null)\r\n v.VacationTypeColor = this.defaultVacationColor;\r\n });\r\n\r\n this.applyShortcutUrls();\r\n\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n if (error.status == 401)\r\n return;\r\n },\r\n });\r\n }\r\n\r\n private applyShortcutUrls(): void {\r\n this.shortcuts.forEach(item => {\r\n if (item.shortcutId == MainWidgetShortcut.Attendance && this.employeeMainInfo?.AttendanceUrl != null)\r\n item.navigateUrl = [this.employeeMainInfo!.AttendanceUrl];\r\n if (item.shortcutId == MainWidgetShortcut.VacationStatement && this.employeeMainInfo?.VacationStatementUrl != null)\r\n item.navigateUrl = [this.employeeMainInfo!.VacationStatementUrl];\r\n });\r\n }\r\n\r\n shortcutClicked(icon: ShortcutIconDTO) {\r\n this.onShortcutClicked.emit(icon);\r\n }\r\n\r\n handleEmployeePhotoError() {\r\n this.employeeBadge.EmployeePhotoFailed = true;\r\n }\r\n\r\n getEmployeeMainDetails() {\r\n return this.selfWidgetsService.getMainDetails(this.baseUrl);\r\n }\r\n}\r\n","<div [class]=\"containerClass\">\r\n <div [class]=\"cardBodyClass\">\r\n <div [class]=\"headerRowClass\">\r\n <div>\r\n @if(employeeMainInfo!=null){\r\n <div [class]=\"employeeInfoContainerClass\">\r\n <bayan-employee-badge [badge]=\"employeeBadge\"\r\n [badgeClass]=\"badgeClass\"\r\n [imageClass]=\"badgeImageClass\"\r\n [width]=\"badgeWidth\"\r\n [height]=\"badgeHeight\"\r\n (employeePhotoError)=\"handleEmployeePhotoError()\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeDetailsClass\">\r\n <div [class]=\"employeeNameContainerClass\">\r\n <div [class]=\"employeeNameClass\"\r\n data-bs-toggle=\"tooltip\" [title]=\"employeeMainInfo.EmployeeNumber+' | '+ employeeMainInfo.EmployeeName\">\r\n {{employeeMainInfo.EmployeeNumber + ' | ' + employeeMainInfo.EmployeeName}}\r\n </div>\r\n </div>\r\n @if(employeeMainInfo.PositionName != null && employeeMainInfo.PositionName != ''){\r\n <div [class]=\"employeePositionClass\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"employeeMainInfo.PositionName\">\r\n {{employeeMainInfo.PositionName}}\r\n </div>\r\n }\r\n @if(employeeMainInfo.GradeName !=null){\r\n <div [class]=\"employeeGradeClass\" [title]=\"employeeMainInfo.GradeName\">\r\n {{employeeMainInfo.GradeName}}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div [class]=\"shortcutsContainerClass\">\r\n @for(Icon of shortcuts ; track Icon ; let i = $index;){\r\n <sky-shortcut-icon [shortcut]=\"Icon\"\r\n [itemClass]=\"shortcutItemClass\"\r\n [iconContainerClass]=\"shortcutIconContainerClass\"\r\n [iconClass]=\"shortcutIconClass\"\r\n [textClass]=\"shortcutTextClass\"\r\n (onClicked)=\"shortcutClicked($event)\"></sky-shortcut-icon>\r\n }\r\n </div>\r\n </div>\r\n <div [class]=\"detailsRowClass\" [ngClass]=\"{'flex-wrap': isMobile || isTablet}\">\r\n <div [class]=\"reportingBlockClass\" [ngClass]=\"{'mb-3': isMobile}\">\r\n <div [class]=\"captionLabelClasses + ' me-5'\">\r\n <div>\r\n {{'ReportingTo' | translate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n @if(employeeMainInfo?.ReportingTo){\r\n {{employeeMainInfo?.ReportingTo}}\r\n }@else{\r\n {{'NotAnknown' | translate}}\r\n }\r\n </div>\r\n </div>\r\n <div [class]=\"captionLabelClasses\" [ngClass]=\"{'border-end border-1 pe-4': !isMobile}\">\r\n <div>\r\n {{'ServiceYears' | translate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n {{employeeMainInfo?.ServiceYears}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-grow-1\" [ngClass]=\"{' ms-4': !isMobile && !isTablet, 'w-100': isTablet}\">\r\n <div [class]=\"vacationBalancesContainerClass\" [ngClass]=\"{'flex-wrap': isMobile,'w-100': isTablet}\">\r\n @for(vacationBalance of employeeMainInfo?.VacationBalances ; track vacationBalance ; let i = $index;){\r\n @if(i <= 2 || employeeMainInfo?.VacationBalances?.length == 4) {\r\n <div [class]=\"vacationBalanceItemClass\" [ngClass]=\"{'mb-2 w-40': isMobile}\">\r\n <div [class]=\"vacationBalanceHeaderClass\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"vacationBalance.VacationTypeColor\"></div>\r\n </div>\r\n <div [class]=\"vacationTypeNameClass\">\r\n {{vacationBalance.VacationTypeName}}\r\n </div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueRowClass\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle invisible\" style=\"height: 11px; width: 11px;\"></div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueClass\">{{vacationBalance.CurrentBalance | number:'1.2-2'}} {{(vacationBalance.CurrentBalance! == 1 ? 'day' : 'days') | translate}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if(employeeMainInfo?.VacationBalances && employeeMainInfo!.VacationBalances!.length > 4){\r\n <div [class]=\"vacationBalanceItemClass\">\r\n <div [class]=\"tooltipTriggerLinkClass\" id=\"otherVacationBalances\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"defaultVacationBalanceColor\"></div>\r\n </div>\r\n <div [class]=\"tooltipTriggerTextClass\">\r\n +{{(employeeMainInfo!.VacationBalances!.length - 3)}} {{'More' | translate}}\r\n </div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueRowClass\" style=\"visibility: hidden\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\"></div>\r\n </div>\r\n <div class=\"mx-1 fw-medium fs-14 text-dark-gray\">{{'More' | translate}}</div>\r\n </div>\r\n <dx-tooltip [target]=\"'#otherVacationBalances'\"\r\n [showEvent]=\"'mouseenter'\"\r\n [hideEvent]=\"'mouseleave'\">\r\n @for (vacationBalance of employeeMainInfo!.VacationBalances! ; track vacationBalance; let i = $index;){\r\n @if(i > 2){\r\n <div [class]=\"tooltipVacationRowClass\">\r\n <div [class]=\"tooltipVacationNameContainerClass\">\r\n\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"vacationBalance.VacationTypeColor\"></div>\r\n </div>\r\n <div [class]=\"tooltipVacationNameClass\">\r\n {{vacationBalance.VacationTypeName}}\r\n </div>\r\n </div>\r\n <div>{{vacationBalance.CurrentBalance | number:'1.2-2'}} {{(vacationBalance.CurrentBalance! == 1 ? 'day' : 'days') | translate}}</div>\r\n </div>\r\n }\r\n }\r\n </dx-tooltip>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\n\r\n@Component({\r\n selector: 'hr-card-header',\r\n standalone: true,\r\n imports: [FontAwesomeModule],\r\n templateUrl: './card-header.component.html'\r\n})\r\nexport class HRCardHeaderComponent {\r\n @Input() icon!: IconDefinition;\r\n @Input() title!: string;\r\n @Input() containerClass: string = 'd-flex align-items-center mb-2';\r\n @Input() iconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() titleClass: string = 'text-center table-header-lg fw-medium';\r\n}\r\n","<div [class]=\"containerClass\">\r\n <fa-icon [icon]=\"icon\" [class]=\"iconClass\"></fa-icon>\r\n <span [class]=\"titleClass\">{{ title }}</span>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCakeCandles, faTreePalm } from '@fortawesome/pro-light-svg-icons';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { EventTypeEnum, FilteredUpcomingEvent } from '../../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-event-item',\r\n standalone: true,\r\n imports: [FontAwesomeModule, DatePipe, LowerCasePipe, HRTranslatePipe],\r\n templateUrl: './event-item.component.html'\r\n})\r\nexport class HREventItemComponent {\r\n @Input() events: FilteredUpcomingEvent[] = [];\r\n @Input() showDates: boolean = false;\r\n @Input() showProperty: boolean = true;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() selectedEventType: EventTypeEnum | null = null;\r\n @Input() weekendWarningDescription: string | null = null;\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() noEventsTextClass: string = 'text-center my-4 text-light-gray';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n eventTypeEnum = EventTypeEnum;\r\n cakeCandles = faCakeCandles;\r\n treePalm = faTreePalm;\r\n\r\n get isArabic(): boolean { return this.selectedLanguage === 'ar'; }\r\n\r\n isBirthday(event: FilteredUpcomingEvent): boolean { return event.EventType === EventTypeEnum.Birthdays; }\r\n hasPropertyBadge(event: FilteredUpcomingEvent): boolean { return this.showProperty && !!event.PropertySymbol; }\r\n}\r\n","@if (events.length > 0) {\r\n<div>\r\n @for (event of events; track event) {\r\n <div [class]=\"'d-flex lh-base ' + (showDates ? 'my-3' : 'my-1')\">\r\n <fa-icon [icon]=\"isBirthday(event) ? cakeCandles : treePalm\"\r\n [class]=\"eventIconClass\"\r\n [title]=\"isBirthday(event) ? ('Birthday' | translate) : ('PublicHoliday' | translate)\">\r\n </fa-icon>\r\n\r\n <div>\r\n @if (isBirthday(event)) {\r\n @if (hasPropertyBadge(event)) {\r\n <span [class]=\"propertyBadgeClass\" [title]=\"event.PropertyName!\">{{ event.PropertySymbol }}</span>\r\n }\r\n @if (isArabic) {\r\n <span>{{ 'Birthday' | translate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | translate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | translate) + ' ' + ((event.IsIn2Days ? ('isIn' | translate) : ('is' | translate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | translate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | translate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | translate }}</span>\r\n\r\n @if (!isBirthday(event) && showDates && event.StartDate && event.EndDate) {\r\n <span>{{ ' (' + (event.StartDate | date:dateFormat) + ' - ' + (event.EndDate | date:dateFormat) + ')' }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n} @else {\r\n@if (weekendWarningDescription) {\r\n<div [class]=\"warningTextClass + (showDates ? ' pt-5 my-5' : '')\">{{ weekendWarningDescription | translate }}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass + (showDates ? ' pt-5 my-5' : '')\">{{ 'NoEvents' | translate }}</div>\r\n}\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { NgClass } from '@angular/common';\r\nimport { EventTypeEnum } from '../../../shared/types/common';\r\nimport { faCakeCandles, faTreePalm } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-event-tab-bar',\r\n standalone: true,\r\n imports: [FontAwesomeModule, NgClass],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './event-tab-bar.component.html'\r\n})\r\nexport class HREventTabBarComponent {\r\n @Input() selectedType: EventTypeEnum | null = null;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() containerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Output() tabSelected = new EventEmitter<EventTypeEnum | null>();\r\n\r\n constructor(private translatePipe: HRTranslatePipe) {}\r\n\r\n tabList = [\r\n { id: null, icon: null },\r\n { id: EventTypeEnum.Birthdays, icon: faCakeCandles },\r\n { id: EventTypeEnum.PublicHolidays, icon: faTreePalm }\r\n ];\r\n\r\n getTabText(tab: { id: EventTypeEnum | null }): string {\r\n if (tab.id === null) return this.translatePipe.transform('All');\r\n if (tab.id === EventTypeEnum.Birthdays) return this.translatePipe.transform('Birthday');\r\n return this.translatePipe.transform('PublicHoliday');\r\n }\r\n}\r\n","<div [class]=\"containerClass\">\r\n @for (tab of tabList; track tab) {\r\n <div [class]=\"tabItemClass + ' ' + (selectedType == tab.id ? tabSelectedClass : tabNotSelectedClass)\"\r\n [ngClass]=\"{'w-25': (selectedLanguage == 'fr' && !tab?.icon)}\"\r\n (click)=\"tabSelected.emit(tab.id)\">\r\n @if (!tab?.icon) {\r\n <span [class]=\"tabTextClass + ' ' + (selectedType == tab.id ? tabTextSelectedClass : tabTextNotSelectedClass)\">{{ getTabText(tab) }}</span>\r\n } @else {\r\n <fa-icon [icon]=\"tab.icon!\" [class]=\"tabIconClass + ' ' + (selectedType == tab.id ? tabTextSelectedClass : tabTextNotSelectedClass)\" [title]=\"getTabText(tab)\"></fa-icon>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxLoadPanelModule, DxPopupModule, DxScrollViewModule } from 'devextreme-angular';\r\nimport { EventTypeEnum, FilteredUpcomingEvent } from '../../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { HREventItemComponent } from '../event-item/event-item.component';\r\nimport { HREventTabBarComponent } from '../event-tab-bar/event-tab-bar.component';\r\n\r\n@Component({\r\n selector: 'hr-upcoming-events-popup',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, DxScrollViewModule, DxLoadPanelModule, HREventItemComponent, HREventTabBarComponent, HRTranslatePipe],\r\n templateUrl: './events-popup.component.html'\r\n})\r\nexport class HREventsPopupComponent {\r\n @Input() visible: boolean = false;\r\n @Input() events: FilteredUpcomingEvent[] = [];\r\n @Input() hasBirthdays: boolean = false;\r\n @Input() hasHolidays: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() showProperty: boolean = true;\r\n @Input() weekendWarningDescription: string | null = null;\r\n @Input() popupTitle: string = '';\r\n @Input() selectedEventType: EventTypeEnum | null = null;\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() tabContainerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() noEventsTextClass: string = 'text-center my-4 text-light-gray';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() tabSelected = new EventEmitter<EventTypeEnum | null>();\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n onTabSelected(eventType: EventTypeEnum | null) {\r\n this.tabSelected.emit(eventType);\r\n }\r\n\r\n onPopupClose() {\r\n this.closed.emit();\r\n }\r\n}\r\n","<dx-popup id=\"popup\"\r\n [(visible)]=\"visible\"\r\n [height]=\"'400'\"\r\n [maxHeight]=\"400\"\r\n [width]=\"'650'\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"true\"\r\n [title]=\"popupTitle\"\r\n (onHiding)=\"onPopupClose()\"\r\n (visibleChange)=\"visibleChange.emit($event)\">\r\n\r\n <div class=\"text-dark\" *dxTemplate=\"let data of 'popup-content'\">\r\n <dx-scroll-view #upcomingEventsScrollView\r\n id=\"upcomingEventsScrollView\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n [showScrollbar]=\"'onScroll'\"\r\n [bounceEnabled]=\"false\">\r\n\r\n @if (hasBirthdays || hasHolidays) {\r\n <hr-event-tab-bar [selectedType]=\"selectedEventType\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [containerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n (tabSelected)=\"onTabSelected($event)\">\r\n </hr-event-tab-bar>\r\n\r\n <hr-event-item [events]=\"events\"\r\n [showDates]=\"true\"\r\n [showProperty]=\"showProperty\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [selectedEventType]=\"selectedEventType\"\r\n [weekendWarningDescription]=\"weekendWarningDescription\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\">\r\n </hr-event-item>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | translate }}</div>\r\n }\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-load-panel shadingColor=\"rgba(0,0,0,0.4)\"\r\n [visible]=\"isLoading\"\r\n [showIndicator]=\"true\" [showPane]=\"true\"\r\n [shading]=\"true\" [hideOnOutsideClick]=\"false\">\r\n</dx-load-panel>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { faCalendarStar } from '@fortawesome/pro-light-svg-icons';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRCardHeaderComponent } from '../shared/components/card-header/card-header.component';\r\nimport { HREventItemComponent } from './components/event-item/event-item.component';\r\nimport { HREventTabBarComponent } from './components/event-tab-bar/event-tab-bar.component';\r\nimport { HREventsPopupComponent } from './components/events-popup/events-popup.component';\r\nimport {\r\n EventOption, RelativeDay, Birthday, PublicHoliday, UpcomingEventsV2,\r\n EventTypeEnum, FilteredUpcomingEvent\r\n} from '../shared/types/common';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-upcoming-events-widget',\r\n standalone: true,\r\n imports: [FontAwesomeModule, HRCardHeaderComponent, HREventItemComponent, HREventTabBarComponent, HREventsPopupComponent, HRTranslatePipe],\r\n templateUrl: './my-upcoming-events-widget.component.html'\r\n})\r\nexport class MyUpcomingEventsWidgetComponent implements OnInit {\r\n @Input() baseUrl: string = '';\r\n @Input() weekendWarningDescription: string = 'WeekendDayNotDefined';\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() showProperty: boolean = true;\r\n\r\n @Input() cardClass: string = 'bg-light-gray border-0 card p-3 card-shadow rounded rounded-4 mt-3';\r\n @Input() noEventsTextClass: string = 'text-center my-3 text-light-gray';\r\n @Input() viewAllLinkClass: string = 'fs-14 mt-2';\r\n @Input() viewAllContainerClass: string = 'd-flex justify-content-end cursor-pointer';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() tabContainerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() viewAllClicked = new EventEmitter<void>();\r\n\r\n @Input() externalViewAll: boolean = false;\r\n\r\n selectedEventType: EventTypeEnum | null = null;\r\n selectedPopupEventType: EventTypeEnum | null = null;\r\n\r\n calendarStar = faCalendarStar;\r\n\r\n filteredEvents: FilteredUpcomingEvent[] = [];\r\n birthdays: Birthday[] = [];\r\n holidays: PublicHoliday[] = [];\r\n\r\n popupEvents: FilteredUpcomingEvent[] = [];\r\n popupVisible: boolean = false;\r\n\r\n weekendWarning: string | null = null;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadEvents(EventOption.All);\r\n }\r\n\r\n onTabClick(eventType: EventTypeEnum | null) {\r\n this.selectedEventType = eventType;\r\n this.filteredEvents = this.buildEvents(this.cardData, eventType, 2);\r\n }\r\n\r\n onPopupTabClick(eventType: EventTypeEnum | null) {\r\n this.selectedPopupEventType = eventType;\r\n this.popupEvents = this.buildEvents(this.cardData, eventType);\r\n }\r\n\r\n showPopup() {\r\n if (this.externalViewAll) {\r\n this.viewAllClicked.emit();\r\n return;\r\n }\r\n this.popupEvents = this.buildEvents(this.cardData, this.selectedPopupEventType);\r\n this.popupVisible = true;\r\n }\r\n\r\n onPopupClose() {\r\n this.popupVisible = false;\r\n this.selectedPopupEventType = null;\r\n }\r\n\r\n // --- Private ---\r\n\r\n private cardData!: UpcomingEventsV2;\r\n\r\n private getUpcomingEvents(eventOption: EventOption) {\r\n return this.selfWidgetsService.getUpcomingEvents(this.baseUrl, eventOption);\r\n }\r\n\r\n private loadEvents(eventOption: EventOption) {\r\n this.isLoadingChanged.emit(true);\r\n this.getUpcomingEvents(eventOption).subscribe({\r\n next: (response: any) => {\r\n this.cardData = response.ResponseData;\r\n this.birthdays = this.cardData?.Birthdays || [];\r\n this.holidays = this.cardData?.PublicHolidays || [];\r\n this.weekendWarning = this.cardData?.IsWeekendConfigured === false\r\n ? this.weekendWarningDescription\r\n : null;\r\n this.filteredEvents = this.buildEvents(this.cardData, null, 2);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private buildEvents(source: UpcomingEventsV2, eventType: EventTypeEnum | null, limit?: number): FilteredUpcomingEvent[] {\r\n const birthdays = source?.Birthdays || [];\r\n const holidays = source?.PublicHolidays || [];\r\n\r\n let filtered: FilteredUpcomingEvent[];\r\n\r\n if (eventType === EventTypeEnum.Birthdays) {\r\n\r\n filtered = birthdays.map(b => this.mapBirthday(b)).sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n } else if (eventType === EventTypeEnum.PublicHolidays) {\r\n filtered = holidays.map(h => this.mapHoliday(h)).sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n } else {\r\n if (limit) {\r\n filtered = [\r\n ...birthdays.map(b => this.mapBirthday(b)),\r\n ...holidays.map(h => this.mapHoliday(h))\r\n ].sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime()).slice(0, 2);\r\n } else {\r\n filtered = [\r\n ...birthdays.map(b => this.mapBirthday(b)),\r\n ...holidays.map(h => this.mapHoliday(h))\r\n ];\r\n }\r\n }\r\n\r\n if (limit) {\r\n filtered = filtered.slice(0, limit);\r\n }\r\n\r\n return filtered.sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n }\r\n\r\n private mapBirthday(b: Birthday): FilteredUpcomingEvent {\r\n const birthdate = new Date(b.Birthdate);\r\n const eventDate = new Date(new Date().getFullYear(), birthdate.getMonth(), birthdate.getDate());\r\n return {\r\n EventDate: eventDate,\r\n Name: b.EmployeeShortName,\r\n EventType: EventTypeEnum.Birthdays,\r\n Description: b.RelativeDay.toString(),\r\n IsIn2Days: RelativeDay[b.RelativeDay as unknown as keyof typeof RelativeDay] === RelativeDay.TwoDays,\r\n PropertyName: b.EmployeePropertyName,\r\n PropertySymbol: b.EmployeePropertySymbol\r\n };\r\n }\r\n\r\n private mapHoliday(h: PublicHoliday): FilteredUpcomingEvent {\r\n return {\r\n EventDate: new Date(h.StartDate),\r\n StartDate: new Date(h.StartDate),\r\n EndDate: new Date(h.EndDate),\r\n Name: h.Description,\r\n EventType: EventTypeEnum.PublicHolidays,\r\n Description: h.WeekContext.toString()\r\n };\r\n }\r\n}\r\n","<!-- Card View -->\r\n<div [class]=\"cardClass\">\r\n <hr-card-header [icon]=\"calendarStar\" [title]=\"'UpcomingEvents' | translate\"></hr-card-header>\r\n\r\n @if (birthdays.length > 0 || holidays.length > 0) {\r\n <hr-event-tab-bar\r\n [selectedType]=\"selectedEventType\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [containerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n (tabSelected)=\"onTabClick($event)\">\r\n </hr-event-tab-bar>\r\n\r\n <hr-event-item\r\n [events]=\"filteredEvents\"\r\n [showDates]=\"false\"\r\n [showProperty]=\"showProperty\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [selectedEventType]=\"selectedEventType\"\r\n [weekendWarningDescription]=\"weekendWarning\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\">\r\n </hr-event-item>\r\n\r\n <div [class]=\"viewAllContainerClass\">\r\n <a [class]=\"viewAllLinkClass\" (click)=\"showPopup()\">{{ 'ViewAll' | translate }}</a>\r\n </div>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | translate }}</div>\r\n }\r\n</div>\r\n\r\n<!-- Popup -->\r\n<hr-upcoming-events-popup\r\n [visible]=\"popupVisible\"\r\n [events]=\"popupEvents\"\r\n [hasBirthdays]=\"birthdays.length > 0\"\r\n [hasHolidays]=\"holidays.length > 0\"\r\n [isLoading]=\"false\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [showProperty]=\"showProperty\"\r\n [weekendWarningDescription]=\"weekendWarning\"\r\n [popupTitle]=\"'UpcomingEvents' | translate\"\r\n [selectedEventType]=\"selectedPopupEventType\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [tabContainerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\"\r\n (visibleChange)=\"popupVisible = $event\"\r\n (tabSelected)=\"onPopupTabClick($event)\"\r\n (closed)=\"onPopupClose()\">\r\n</hr-upcoming-events-popup>\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { HRTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRCommonMethodsService {\r\n\r\n constructor(private readonly translateService: HRTranslateService) {}\r\n\r\n calculateDaysDifference(dateOne: string | Date, dateTwo: string | Date): number {\r\n const resetTime = (inputDate: Date): Date => {\r\n const newDate = new Date(inputDate);\r\n newDate.setHours(0, 0, 0, 0);\r\n return newDate;\r\n };\r\n const firstDate = resetTime(new Date(dateOne));\r\n const secondDate = resetTime(new Date(dateTwo));\r\n return (firstDate.getTime() - secondDate.getTime()) / (1000 * 60 * 60 * 24);\r\n }\r\n\r\n currencyDecimalFormat(\r\n value: number,\r\n currencyDecimalsNumber: number\r\n ): string | null {\r\n const currencyDecimalsString = `1.${currencyDecimalsNumber}-${currencyDecimalsNumber}`;\r\n const languageCode = this.translateService.getLanguage() || 'en';\r\n const decimalPipe = new DecimalPipe(languageCode === 'fr' ? 'fr-FR' : 'en-US');\r\n\r\n if (languageCode === 'fr') {\r\n return decimalPipe.transform(value, currencyDecimalsString, 'fr-FR');\r\n }\r\n\r\n return decimalPipe.transform(value, currencyDecimalsString);\r\n }\r\n}\r\n","import { Component, Input, ViewChild, inject } from '@angular/core';\r\nimport { DxCalendarComponent, DxCalendarModule } from 'devextreme-angular';\r\nimport { ScheduleCalenderVacation, ScheduleVacationTypes, DatePeriod } from '../../types/common';\r\nimport { HRCommonMethodsService } from '../../services/common-methods.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCircle } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'hr-employee-calendar',\r\n templateUrl: './hr-employee-calendar.component.html',\r\n imports: [DxCalendarModule, HRTranslatePipe, FontAwesomeModule]\r\n})\r\nexport class HREmployeeCalendarComponent {\r\n\r\n @ViewChild('calendar') calendar!: DxCalendarComponent;\r\n @Input() showEvents: boolean = false;\r\n @Input() showUpComingVacations: boolean = false;\r\n @Input() scheduleCalenderVacation: ScheduleCalenderVacation[] = [];\r\n @Input() minDate: Date = new Date();\r\n @Input() maxDate: Date = new Date();\r\n\r\n @Input() legendContainerClass: string = 'row mb-2';\r\n @Input() legendRowClass: string = 'd-flex';\r\n @Input() legendItemClass: string = 'd-flex align-items-center';\r\n @Input() legendDotClass: string = 'me-1 circle-sm';\r\n @Input() legendLabelClass: string = 'me-1 fs-12';\r\n @Input() publicHolidayDotClass: string = 'bg-accent';\r\n @Input() dayOffDotClass: string = 'bg-yellow';\r\n @Input() eventsDotClass: string = 'bg-primary';\r\n @Input() vacationsContainerClass: string = 'd-flex mt-3';\r\n @Input() vacationsItemClass: string = 'd-flex align-items-center';\r\n @Input() vacationsIconClass: string = 'fs-8 me-1';\r\n @Input() calendarContainerClass: string = 'row mt-2 col-12';\r\n @Input() calendarClass: string = 'button-boeder-none';\r\n\r\n squreCheckIcon = faCircle;\r\n DaysOffVacationTypes = ScheduleVacationTypes.DaysOff;\r\n PublicHolidaysVacationTypes = ScheduleVacationTypes.PublicHoliday;\r\n private commonMethods = inject(HRCommonMethodsService);\r\n\r\n customCellTemplate = (cellData: any): string | HTMLElement => {\r\n if (cellData.view != 'month') {\r\n return this.createDateSpan(cellData);\r\n }\r\n\r\n const cellDate = cellData.date;\r\n\r\n let matchedVacation = this.scheduleCalenderVacation.find((vacation) =>\r\n this.isDateInPeriod(cellDate, vacation.VacationDays)\r\n );\r\n\r\n let matchedOffOrPublicHolidayBullet: ScheduleCalenderVacation | undefined = this.scheduleCalenderVacation.find((vacation) =>\r\n this.isDateInPeriod(cellDate, vacation.VacationDays) && vacation.VacationType != ScheduleVacationTypes.Vacations && vacation.VacationType != ScheduleVacationTypes.AddedVacations\r\n );\r\n\r\n if (matchedVacation) {\r\n if (this.commonMethods.calculateDaysDifference(matchedVacation.VacationDays.EndDate, matchedVacation.VacationDays.StartDate) === 0) {\r\n return this.createDateSpan(cellData, matchedVacation, matchedOffOrPublicHolidayBullet, false, false, false);\r\n }\r\n\r\n let isStartRange = this.commonMethods.calculateDaysDifference(cellDate, matchedVacation.VacationDays.StartDate) === 0;\r\n let isEndRange = this.commonMethods.calculateDaysDifference(matchedVacation.VacationDays.EndDate, cellDate) === 0;\r\n\r\n return this.createDateSpan(cellData, matchedVacation, matchedOffOrPublicHolidayBullet, true, isStartRange, isEndRange);\r\n }\r\n\r\n return this.createDateSpan(cellData);\r\n };\r\n\r\n private createDateSpan = (\r\n cellData: any,\r\n matchedVacation: ScheduleCalenderVacation | undefined = undefined,\r\n matchedOffOrPublicHolidayBullet: ScheduleCalenderVacation | undefined = undefined,\r\n isInRange: boolean = false,\r\n isStartRange: boolean = false,\r\n isEndRange: boolean = false) => {\r\n\r\n const offDayOrPublicHolidaySpan = document.createElement('span');\r\n const cellElement = document.createElement('span');\r\n cellElement.textContent = cellData.text;\r\n cellElement.style.backgroundColor = '';\r\n cellElement.style.borderRadius = '15px';\r\n cellElement.style.borderWidth = '0';\r\n cellElement.style.fontSize = '10px';\r\n cellElement.style.margin = '0';\r\n cellElement.style.padding = '0';\r\n cellElement.style.alignContent = 'center';\r\n cellElement.style.position = 'relative';\r\n\r\n if (matchedVacation) {\r\n cellElement.title = matchedVacation.Description;\r\n\r\n if (matchedVacation.VacationType != ScheduleVacationTypes.DaysOff && matchedVacation.VacationType != ScheduleVacationTypes.PublicHoliday && matchedVacation.VacationType != ScheduleVacationTypes.Events) {\r\n if (matchedVacation.Color) {\r\n cellElement.style.backgroundColor = (matchedVacation.Color + '99');\r\n cellElement.style.color = '#FFFFFF';\r\n } else {\r\n cellElement.style.backgroundColor = '#DCDCDC';\r\n cellElement.style.color = '#000000';\r\n }\r\n\r\n if (isInRange) {\r\n cellElement.style.width = '100%';\r\n cellElement.style.alignContent = 'start';\r\n\r\n if (isStartRange) {\r\n cellElement.style.borderEndEndRadius = '0px';\r\n cellElement.style.borderStartEndRadius = '0px';\r\n }\r\n\r\n if (isEndRange) {\r\n cellElement.style.borderStartStartRadius = '0px';\r\n cellElement.style.borderEndStartRadius = '0px';\r\n }\r\n\r\n if (!isStartRange && !isEndRange)\r\n cellElement.style.borderRadius = '0px';\r\n }\r\n }\r\n }\r\n\r\n if (matchedOffOrPublicHolidayBullet) {\r\n offDayOrPublicHolidaySpan.style.width = '8px';\r\n offDayOrPublicHolidaySpan.style.height = '8px';\r\n offDayOrPublicHolidaySpan.className = 'rounded rounded-circle';\r\n offDayOrPublicHolidaySpan.style.position = 'absolute';\r\n offDayOrPublicHolidaySpan.style.opacity = '1';\r\n offDayOrPublicHolidaySpan.style.top = '-5px';\r\n offDayOrPublicHolidaySpan.style.right = '0';\r\n offDayOrPublicHolidaySpan.title = matchedOffOrPublicHolidayBullet.Description;\r\n\r\n if (matchedVacation) {\r\n if (matchedVacation.VacationType != ScheduleVacationTypes.DaysOff && matchedVacation.VacationType != ScheduleVacationTypes.PublicHoliday && matchedVacation.VacationType != ScheduleVacationTypes.Events) {\r\n if (isInRange) {\r\n offDayOrPublicHolidaySpan.style.right = '8px';\r\n }\r\n }\r\n }\r\n\r\n offDayOrPublicHolidaySpan.style.background = matchedOffOrPublicHolidayBullet.Color || '';\r\n offDayOrPublicHolidaySpan.style.marginTop = '2px';\r\n cellElement.appendChild(offDayOrPublicHolidaySpan);\r\n }\r\n\r\n return cellElement;\r\n };\r\n\r\n isDateInPeriod(date: Date, period: DatePeriod) {\r\n if (this.commonMethods.calculateDaysDifference(date, period.StartDate) == 0)\r\n return true;\r\n\r\n if (this.commonMethods.calculateDaysDifference(date, period.EndDate) == 0)\r\n return true;\r\n\r\n let daysDifferenceWithStartDate = this.commonMethods.calculateDaysDifference(date, period.StartDate);\r\n let daysDifferenceWithEndDate = this.commonMethods.calculateDaysDifference(period.EndDate, date);\r\n\r\n if (daysDifferenceWithStartDate < 0 || daysDifferenceWithEndDate < 0)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n resetCalenderCurrentDate(currentDate: Date = new Date()) {\r\n this.calendar.instance.option('currentDate', currentDate);\r\n }\r\n\r\n preventInteraction(event: any): void {\r\n event.component.option('value', null);\r\n }\r\n}\r\n","<div [class]=\"legendContainerClass\">\r\n <div [class]=\"legendRowClass\">\r\n <div [class]=\"legendItemClass + ' me-4'\">\r\n <div [class]=\"legendDotClass + ' ' + publicHolidayDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'PublicHoliday' | translate}}</p></div>\r\n </div>\r\n <div [class]=\"legendItemClass\">\r\n <div [class]=\"legendDotClass + ' ' + dayOffDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'DayOff' | translate}}</p></div>\r\n </div>\r\n @if(showEvents){\r\n <div [class]=\"legendItemClass + ' ms-4'\">\r\n <div [class]=\"legendDotClass + ' ' + eventsDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'Events' | translate}}</p></div>\r\n </div>\r\n }\r\n </div>\r\n @if(showUpComingVacations){\r\n <div [class]=\"vacationsContainerClass\">\r\n <div [class]=\"vacationsItemClass\">\r\n <fa-icon [icon]=\"squreCheckIcon\" [class]=\"vacationsIconClass\"></fa-icon>\r\n <div [class]=\"legendLabelClass\"><p>{{'ScheduledVacations' | translate}}</p></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n <div [class]=\"calendarContainerClass\">\r\n <dx-calendar #calendar [class]=\"calendarClass\" [selectionMode]=\"'multiple'\"\r\n [cellTemplate]=\"customCellTemplate\"\r\n [showWeekNumbers]=\"false\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (onValueChanged)=\"preventInteraction($event)\">\r\n </dx-calendar>\r\n </div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, inject } from '@angular/core';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { CalendarResponse, ScheduleCalenderVacation, ScheduleRequestsResponse, ScheduleVacationTypes } from '../shared/types/common';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { HRConstantsService } from '../shared/services/constants.service';\r\nimport { HREmployeeCalendarComponent } from '../shared/components/hr-employee-calendar/hr-employee-calendar.component';\r\nimport { faCalendarDays } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRCardHeaderComponent } from '../shared/components/card-header/card-header.component';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'hr-my-calendar-widget',\r\n templateUrl: './my-calendar-widget.component.html',\r\n imports: [HREmployeeCalendarComponent, HRCardHeaderComponent, HRTranslatePipe]\r\n})\r\nexport class MyCalendarWidgetComponent implements OnInit, OnChanges {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() headerContainerClass: string = '';\r\n @Input() datasource: ScheduleRequestsResponse | null = null;\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n readonly calendarIcon = faCalendarDays;\r\n\r\n @Input() legendContainerClass: string = 'row mb-2';\r\n @Input() legendRowClass: string = 'd-flex';\r\n @Input() legendItemClass: string = 'd-flex align-items-center';\r\n @Input() legendDotClass: string = 'me-1 circle-sm';\r\n @Input() legendLabelClass: string = 'me-1 fs-12';\r\n @Input() publicHolidayDotClass: string = 'bg-accent';\r\n @Input() dayOffDotClass: string = 'bg-yellow';\r\n @Input() eventsDotClass: string = 'bg-primary';\r\n @Input() vacationsContainerClass: string = 'd-flex mt-3';\r\n @Input() vacationsItemClass: string = 'd-flex align-items-center';\r\n @Input() vacationsIconClass: string = 'fs-8 me-1';\r\n @Input() calendarContainerClass: string = 'row mt-2 col-12';\r\n @Input() calendarClass: string = 'button-boeder-none';\r\n\r\n private readonly constants = inject(HRConstantsService);\r\n private readonly translatePipe = inject(HRTranslatePipe);\r\n\r\n @Input() publicHolidayColor: string = this.constants.defaultPublicHolidayColor;\r\n @Input() dayOffColor: string = this.constants.defaultDayOffColor;\r\n @Input() eventsColor: string = this.constants.defaultEventsColor;\r\n\r\n @ViewChild(HREmployeeCalendarComponent) hrCalendar!: HREmployeeCalendarComponent;\r\n\r\n scheduleCalenderVacation: ScheduleCalenderVacation[] = [];\r\n minDate!: Date;\r\n maxDate!: Date;\r\n\r\n private baseCalendarData: ScheduleCalenderVacation[] = [];\r\n private hrVacations: ScheduleCalenderVacation[] = [];\r\n private calendarLoaded = false;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService\r\n ) {\r\n this.initDateRange();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadCalendar();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['datasource'] && this.datasource && this.calendarLoaded) {\r\n this.buildCalendarData();\r\n this.refreshCalendar();\r\n }\r\n }\r\n\r\n private initDateRange(): void {\r\n const currentDate = moment().date(1).subtract(1, 'month');\r\n this.minDate = new Date(currentDate.year(), currentDate.month(), currentDate.date());\r\n this.maxDate = new Date(this.minDate.getFullYear() + 1, this.minDate.getMonth() + 1, 0);\r\n }\r\n\r\n private getCalendar(month: number, year: number, monthsCount: number) {\r\n return this.selfWidgetsService.getCalendar(this.baseUrl, month, year, monthsCount);\r\n }\r\n\r\n private loadCalendar(): void {\r\n const currentDate = moment().date(1).subtract(1, 'month');\r\n const month = currentDate.month() === 0 ? 1 : currentDate.month() + 1;\r\n const year = currentDate.year();\r\n\r\n this.isLoadingChanged.emit(true);\r\n this.getCalendar(month, year, 12).subscribe({\r\n next: (response: any) => {\r\n this.isLoadingChanged.emit(false);\r\n this.mapCalendarData(response.ResponseData as CalendarResponse);\r\n },\r\n error: () => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private mapCalendarData(data: CalendarResponse): void {\r\n this.baseCalendarData = [\r\n ...data.PublicHolidays.map(ph => ({\r\n VacationType: ScheduleVacationTypes.PublicHoliday,\r\n Description: ph.Description,\r\n Color: this.publicHolidayColor,\r\n VacationDays: { StartDate: ph.StartDate, EndDate: ph.EndDate }\r\n })),\r\n ...data.OffDays.map(od => ({\r\n VacationType: ScheduleVacationTypes.DaysOff,\r\n Description: this.translatePipe.transform('DayOff'),\r\n Color: this.dayOffColor,\r\n VacationDays: { StartDate: od, EndDate: od }\r\n }))\r\n ];\r\n\r\n this.hrVacations = (data.Vacations ?? []).map(v => ({\r\n VacationType: ScheduleVacationTypes.Vacations,\r\n Description: v.VacationTypeName,\r\n Color: v.Color,\r\n VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }\r\n }));\r\n\r\n this.calendarLoaded = true;\r\n this.buildCalendarData();\r\n this.refreshCalendar();\r\n }\r\n\r\n private buildCalendarData(): void {\r\n const pendingVacations: ScheduleCalenderVacation[] = this.datasource?.PendingVacationRequests?.map(v => ({\r\n VacationType: ScheduleVacationTypes.Vacations,\r\n Description: v.VacationTypeName,\r\n Color: v.Color,\r\n VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }\r\n })) ?? [];\r\n\r\n const mergedVacations = this.mergeConsecutiveVacations(\r\n [...this.hrVacations, ...pendingVacations]\r\n .sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime())\r\n );\r\n\r\n const events: ScheduleCalenderVacation[] = this.datasource?.PendingEventRequests?.map(ev => ({\r\n VacationType: ScheduleVacationTypes.Events,\r\n Description: ev.Description,\r\n Color: this.eventsColor,\r\n VacationDays: { StartDate: ev.StartDate, EndDate: ev.EndDate }\r\n })) ?? [];\r\n\r\n this.scheduleCalenderVacation = [...mergedVacations, ...this.baseCalendarData, ...events];\r\n }\r\n\r\n private refreshCalendar(): void {\r\n setTimeout(() => {\r\n if (this.hrCalendar?.calendar) {\r\n this.hrCalendar.calendar.instance._refresh();\r\n this.hrCalendar.resetCalenderCurrentDate();\r\n }\r\n }, 100);\r\n }\r\n\r\n private mergeConsecutiveVacations(vacations: ScheduleCalenderVacation[]): ScheduleCalenderVacation[] {\r\n if (vacations.length === 0) return [];\r\n\r\n const grouped = new Map<string, ScheduleCalenderVacation[]>();\r\n for (const v of vacations) {\r\n const key = `${v.Description}|${v.Color ?? ''}`;\r\n if (!grouped.has(key)) grouped.set(key, []);\r\n grouped.get(key)!.push(v);\r\n }\r\n\r\n const result: ScheduleCalenderVacation[] = [];\r\n\r\n grouped.forEach((items) => {\r\n items.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());\r\n\r\n let merged = { ...items[0], VacationDays: { ...items[0].VacationDays } };\r\n\r\n for (let i = 1; i < items.length; i++) {\r\n const current = items[i];\r\n const lastEnd = new Date(merged.VacationDays.EndDate);\r\n const currentStart = new Date(current.VacationDays.StartDate);\r\n const diffDays = (currentStart.getTime() - lastEnd.getTime()) / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays <= 1) {\r\n const currentEnd = new Date(current.VacationDays.EndDate);\r\n if (currentEnd.getTime() > lastEnd.getTime()) {\r\n merged.VacationDays.EndDate = current.VacationDays.EndDate;\r\n }\r\n } else {\r\n result.push(merged);\r\n merged = { ...current, VacationDays: { ...current.VacationDays } };\r\n }\r\n }\r\n result.push(merged);\r\n });\r\n\r\n return result.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());\r\n }\r\n}\r\n","<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | translate\"\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","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-info-field',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe],\r\n templateUrl: './info-field.component.html'\r\n})\r\nexport class HRInfoFieldComponent {\r\n @Input({ required: true }) labelKey!: string;\r\n @Input() value: string | null | undefined = null;\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium';\r\n @Input() fallbackValue: string = '—';\r\n}\r\n","<div [ngClass]=\"labelClass\">{{labelKey | translate}}</div>\r\n<div [ngClass]=\"valueClass\" [title]=\"value|| fallbackValue\">{{value || fallbackValue}}</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { faMoneyCheckDollarPen } from '@fortawesome/pro-light-svg-icons';\r\nimport { MyBankInfo } from '../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-bank-info-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-bank-info-widget.component.html'\r\n})\r\nexport class MyProfileBankInfoWidgetComponent implements OnInit, OnChanges {\r\n isLoading = true;\r\n\r\n constructor(private readonly commonMethodsService: HRCommonMethodsService, private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n ngOnInit(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.hrSelfWidgetsService.getBankInformation(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.employeeBankInformation = response ?? [];\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.employeeBankInformation = [];\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n});\r\n }\r\n employeeBankInformation: MyBankInfo[] = [];\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 2;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative';\r\n @Input() mainBadgeClass: string = 'position-absolute text-center top-0 mt-3 start-0 bg-primary status-badge';\r\n @Input() mainBadgeTextClass: string = 'mx-1 fs-12 text-white';\r\n @Input() triangleClass: string = 'position-absolute start-0 top-0';\r\n @Input() rowClass: string = 'row px-4 pb-3';\r\n @Input() rowMainPtClass: string = 'pt-5';\r\n @Input() rowNormalPtClass: string = 'pt-3';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingColClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'table-cell-md text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() bankInformationIcon = faMoneyCheckDollarPen;\r\n @Input() sectionHeaderVisibility = true;\r\n @Input() sectionTitle = 'BankInformation';\r\n @Input() language = 'en';\r\n @Input({required:true}) baseUrl =''\r\n\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n isRTL = this.language === 'ar';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['language']) {\r\n this.isRTL = this.language === 'ar';\r\n }\r\n }\r\n formatAmount(value: number | null | undefined): string {\r\n if (value == null) {\r\n return '-';\r\n }\r\n return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '-';\r\n }\r\n}\r\n","@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | translate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | translate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoBankYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faMemoCircleInfo } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoMainDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-personal-info-main-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-personal-info-main-widget.component.html'\r\n})\r\nexport class ProfilePersonalInfoMainWidgetComponent implements OnInit {\r\n\r\n employeePersonalInformation: PersonalInfoMainDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() alternateLanguage: string = 'English';\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() hiddenSpacerColClass: string = 'col-md-4 col-6 d-md-block d-none';\r\n @Input() topSpacingColumnClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() mainIcon = faMemoCircleInfo;\r\n @Input() sectionTitle = 'main';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoMainDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInformation = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInformation = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(employeePersonalInformation){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInformation.EmployeeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'Name' | translate}} ({{alternateLanguage}})</div>\r\n @if(employeePersonalInformation.EmployeeNameAlternate){\r\n <div [ngClass]=\"valueClass\">{{employeePersonalInformation.EmployeeNameAlternate}}</div>\r\n }@else{\r\n <div [ngClass]=\"valueClass\">{{'—'}}</div>\r\n }\r\n </div>\r\n\r\n <div [ngClass]=\"hiddenSpacerColClass\"></div>\r\n\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Nationality'\"\r\n [value]=\"employeePersonalInformation.NationalityName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'NationalNumber'\"\r\n [value]=\"employeePersonalInformation.NationalNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'SocialSecurityNumber'\"\r\n [value]=\"employeePersonalInformation.SocialSecurityNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'MaritalStatus'\"\r\n [value]=\"employeePersonalInformation.MaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BirthDate'\"\r\n [value]=\"employeePersonalInformation.BirthDate ? (employeePersonalInformation.BirthDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BirthPlace'\"\r\n [value]=\"employeePersonalInformation.BirthPlace\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BloodType'\"\r\n [value]=\"employeePersonalInformation.BloodTypeCode\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Religion'\"\r\n [value]=\"employeePersonalInformation.ReligionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'MinistryOfLaborNumber'\"\r\n [value]=\"employeePersonalInformation.MinistryOfLaborNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n\r\n}\r\n@else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoMainYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, OnInit, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faBolt, faPhone } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoContactDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-contact-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-contact-widget.component.html'\r\n})\r\nexport class MyProfileContactWidgetComponent implements OnInit {\r\n employeePersonalInfoContactDetails: PersonalInfoContactDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-4';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-6 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emergencyContactLabelClass: string = 'fs-14 fw-semibold';\r\n @Input() emergencyContactColumnClass: string = 'col-md-4 col-6';\r\n @Input() emergencyContactResponsiveColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n \r\n @Input() contactIcon = faPhone;\r\n @Input() emergencyContactIcon = faBolt;\r\n @Input() sectionTitle =\"contact\" \r\n @Input() showEmergencyContact = true;\r\n @Input() emergencyContactRowClass = 'row mt-3 mb-4';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoContactDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInfoContactDetails = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInfoContactDetails = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\r\n [text]=\"(sectionTitle | translate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n <div class=\"mt-4\">\r\n <hr-info-field [labelKey]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n <div class=\"mt-4\">\r\n <hr-info-field [labelKey]=\"'BusinessEmail'\"\r\n [value]=\"employeePersonalInfoContactDetails.BusinessEmail\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n • {{'EmergencyContact' | translate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"emergencyContactColumnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"emergencyContactColumnClass\">\r\n <hr-info-field [labelKey]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"emergencyContactResponsiveColumnClass\">\r\n <hr-info-field [labelKey]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoContactYet' | translate)\">\r\n</sky-empty-design-card>\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faLanguage } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-languages-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-languages-widget.component.html'\r\n})\r\nexport class MyProfileLanguagesWidgetComponent implements OnInit {\r\n languages: string[] | null = null;\r\n isLoading = true;\r\n @Input() baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() contentTextClass: string = 'text-dark-gray fs-14 fw-medium mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Output() hasDataChange = new EventEmitter<boolean>();\r\n\r\n @Input() languagesIcon = faLanguage;\r\n @Input() sectionTitle=\"languages\"\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if ( !this.baseUrl) {\r\n this.isLoading = false;\r\n this.emitHasData();\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoLanguages(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.languages = response ?? [];\r\n this.emitHasData();\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.languages = [];\r\n this.emitHasData();\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n\r\n private emitHasData(): void {\r\n this.hasDataChange.emit((this.languages?.length ?? 0) > 0);\r\n }\r\n\r\n getLanguages(): string {\r\n return this.languages?.join(', ') || '-';\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"languagesIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if((languages?.length ?? 0) > 0){\r\n<div [ngClass]=\"contentTextClass\">\r\n {{getLanguages()}}\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoLanguagesYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faEarthAfrica } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-other-nationalities-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-other-nationalities-widget.component.html'\r\n})\r\nexport class MyProfileOtherNationalitiesWidgetComponent implements OnInit {\r\n personalInfo: string[] | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() contentTextClass: string = 'text-dark-gray fs-14 fw-medium mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() emptyStateTextKey: string = 'ThereIsNoOtherNationalitiesYet';\r\n @Output() hasDataChange = new EventEmitter<boolean>();\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n @Input() otherNationalitiesIcon = faEarthAfrica;\r\n @Input() sectionTitle = 'otherNationalities';\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n this.emitHasData();\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoOtherNationalities(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfo = response ?? [];\r\n this.emitHasData();\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfo = [];\r\n this.emitHasData();\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n\r\n private emitHasData(): void {\r\n this.hasDataChange.emit((this.personalInfo?.length ?? 0) > 0);\r\n }\r\n\r\n getOtherNationalities(): string {\r\n return this.personalInfo?.join(', ') || '-';\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"otherNationalitiesIcon\"\r\n [text]=\"( sectionTitle | translate |uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if((personalInfo?.length ?? 0) > 0){\r\n<div [ngClass]=\"contentTextClass\">\r\n {{getOtherNationalities()}}\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : (emptyStateTextKey | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faHouse } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoAddressDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-address-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-address-widget.component.html'\r\n})\r\nexport class MyProfileAddressWidgetComponent implements OnInit {\r\n personalInfoAddressDetails: PersonalInfoAddressDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() addressIcon = faHouse;\r\n@Input() sectionTitle = 'address';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoAddressDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfoAddressDetails = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfoAddressDetails = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"addressIcon\"\r\n [text]=\"( sectionTitle | translate | uppercase )\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(personalInfoAddressDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Address'\"\r\n [value]=\"personalInfoAddressDetails.Address\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'City'\"\r\n [value]=\"personalInfoAddressDetails.City\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'P.OBox'\"\r\n [value]=\"personalInfoAddressDetails.POBox\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'PostalCode'\"\r\n [value]=\"personalInfoAddressDetails.PostalCode\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoAddressYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { JobInformationMain } from '../../shared/types/common';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-job-info-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-job-info-widget.component.html'\r\n})\r\nexport class MyProfileJobInfoWidgetComponent implements OnInit {\r\n jobInformationMain: JobInformationMain | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() mainIcon = faFileSignature;\r\n @Input() sectionTitle = 'JobInformation';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationMain(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationMain = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationMain = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoJobMainYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { JobInformationContract } from '../../shared/types/common';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-contract-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-contract-widget.component.html'\r\n})\r\nexport class MyProfileContractWidgetComponent implements OnInit {\r\n jobInformationContract: JobInformationContract | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() contractIcon = faFileSignature;\r\n @Input() sectionTitle = 'Contract';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationContract(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationContract = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationContract = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoJobContractYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faSackDollar } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { Allowances, JobInformationSalary } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-salary-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent],\r\n templateUrl: './my-profile-salary-widget.component.html'\r\n})\r\nexport class MyProfileSalaryWidgetComponent implements OnInit {\r\n jobInformationSalary: JobInformationSalary | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 2;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() grossSalaryColumnClass: string = 'col-md-4 col-6 my-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() currencyClass: string = 'fs-10 text-secondary fw-light';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() salaryIcon = faSackDollar;\r\n @Input() sectionTitle = 'Salary';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n\r\n constructor(\r\n private readonly hrSelfWidgetsService: HRSelfWidgetsService,\r\n private readonly commonMethodsService: HRCommonMethodsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationSalary(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationSalary = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationSalary = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n\r\n get basicSalary(): number | null {\r\n return this.jobInformationSalary?.BasicSalary ?? this.jobInformationSalary?.CurrentBasicSalary ?? null;\r\n }\r\n\r\n get allowances(): Allowances[] {\r\n return this.jobInformationSalary?.Allowances ?? [];\r\n }\r\n\r\n formatAmount(value: number | null | undefined): string {\r\n if (value == null) {\r\n return '�';\r\n }\r\n\r\n return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '�';\r\n }\r\n}\r\n","@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faEnvelopeOpenDollar } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { JobInformationServiceCharge, ServiceChargeEntitlementMode } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-charge-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent],\r\n templateUrl: './my-profile-service-charge-widget.component.html'\r\n})\r\nexport class MyProfileServiceChargeWidgetComponent implements OnInit {\r\n jobInformationServiceCharge: JobInformationServiceCharge | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4 mb-5';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() serviceChargeIcon = faEnvelopeOpenDollar;\r\n @Input() sectionTitle = 'ServiceCharge';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(\r\n private readonly hrSelfWidgetsService: HRSelfWidgetsService,\r\n private readonly commonMethodsService: HRCommonMethodsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationServiceCharge(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationServiceCharge = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationServiceCharge = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n\r\n get modeLabelKey(): string {\r\n const mode = this.jobInformationServiceCharge?.ServiceChargeEntitlementMode as unknown as string;\r\n\r\n switch (ServiceChargeEntitlementMode[mode as keyof typeof ServiceChargeEntitlementMode]) {\r\n case ServiceChargeEntitlementMode.Points:\r\n return 'Points';\r\n case ServiceChargeEntitlementMode.SalaryRatio:\r\n return 'SalaryRatio';\r\n case ServiceChargeEntitlementMode.FixedAmount:\r\n return 'FixedAmount';\r\n case ServiceChargeEntitlementMode.FixedRate:\r\n return 'FixedRate';\r\n default:\r\n return 'ServiceCharge';\r\n }\r\n}\r\n\r\n get value(): string {\r\n const data = this.jobInformationServiceCharge;\r\n if (!data || data.ServiceChargeValue == null) {\r\n return '—';\r\n }\r\n\r\n if (\r\n ServiceChargeEntitlementMode[data.ServiceChargeEntitlementMode as unknown as keyof typeof ServiceChargeEntitlementMode] ===\r\n ServiceChargeEntitlementMode.FixedAmount\r\n ) {\r\n return `${this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 4)} (${this.currencyCode})`;\r\n }\r\n\r\n return this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 2) || '—';\r\n}\r\n\r\n}\r\n","@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { DxDataGridComponent, DxDataGridModule, DxPopupModule, DxTextBoxModule } from 'devextreme-angular';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faXmark } from '@fortawesome/pro-light-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { VacationPopupType } from '../../../shared/types/common';\r\nimport { HighlightPipe } from '@skysoftware-co/sky-components-ui';\r\n\r\n@Component({\r\n selector: 'hr-next-week-vacation-insights-popup',\r\n standalone: true,\r\n imports: [DxPopupModule, HRTranslatePipe, CommonModule, FontAwesomeModule,\r\n DxDataGridModule, BayanEmployeeBadgeComponent, DxTextBoxModule, HighlightPipe],\r\n templateUrl: './next-week-vacation-insights-popup.component.html'\r\n})\r\nexport class HRNextWeekVacationInsightsPopupComponent implements OnChanges {\r\n @ViewChild(DxDataGridComponent, { static: false }) dataGrid!: DxDataGridComponent;\r\n\r\n @Input() popupVisible: boolean = false;\r\n @Input() popupType: VacationPopupType = VacationPopupType.Upcoming;\r\n @Input() baseUrl: string = '';\r\n @Input() width = '700px';\r\n @Input() height = '480px';\r\n @Input() gridHeight = '320px';\r\n @Input() pageSize = 20;\r\n @Input() showProperty: boolean = false;\r\n\r\n @Output() closePopupClickHandler = new EventEmitter();\r\n\r\n popupTitle: string = '';\r\n popupSubTitle: string = '';\r\n keyExpr = 'EmployeeNumber';\r\n VacationPopupType = VacationPopupType;\r\n dataSource: CustomStore | null = null;\r\n xMarkIcon = faXmark;\r\n searchValue = '';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['popupVisible']?.currentValue === true) {\r\n this.initDataSource();\r\n }\r\n }\r\n\r\n private initDataSource(): void {\r\n this.dataSource = new CustomStore({\r\n key: this.keyExpr,\r\n load: (loadOptions) => {\r\n const skip = loadOptions.skip ?? 0;\r\n const pageIndex = Math.floor(skip / this.pageSize) + 1;\r\n\r\n let params = new HttpParams()\r\n .set('ShowDirectSubordinatesOnly', 'false')\r\n .set('LoadOptions.PageIndex', pageIndex.toString())\r\n .set('LoadOptions.PageSize', this.pageSize.toString());\r\n\r\n if (this.searchValue) {\r\n params = params.set('LoadOptions.SearchValue', this.searchValue);\r\n }\r\n\r\n return lastValueFrom(this.http.get<any>(this.baseUrl, { params }))\r\n .then((response: any) => {\r\n const items = response.ResponseData?.Data ?? [];\r\n const totalCount = response.ResponseData?.TotalCount ?? 0;\r\n return { data: items, totalCount };\r\n });\r\n }\r\n });\r\n }\r\n\r\n onSearchValueChanged(e: any): void {\r\n this.searchValue = e.value ?? '';\r\n this.initDataSource();\r\n }\r\n\r\n getPopupTitle(): string {\r\n return this.popupSubTitle || (this.popupType === VacationPopupType.Upcoming ? 'UpcomingVacations' : 'ExpectedToReturn');\r\n }\r\n\r\n onPopupClose() {\r\n this.searchValue = '';\r\n this.dataSource = null!;\r\n this.closePopupClickHandler.emit();\r\n }\r\n\r\n onHidden() {\r\n this.onPopupClose();\r\n }\r\n\r\n getEmployeeBadge(item: any): BayanEmployeeBadgeDTO {\r\n return {\r\n EmployeePhotoKey: item.PhotoPath || null,\r\n EmployeePhotoFailed: item.FailedToLoadPhoto || false,\r\n EmployeeNameInitials: item.EmployeeNameInitials || ''\r\n };\r\n }\r\n\r\n handleEmployeePhotoError(employee: any) {\r\n employee.FailedToLoadPhoto = true;\r\n }\r\n}\r\n","<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 (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=\"fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | translate) : ('NextWeekVacationInsights' | translate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | translate}})</span>\r\n </p>\r\n <div class=\"py-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 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 d-flex justify-content-end\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | translate\"\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-data-grid-sorting mode=\"none\"></dxo-data-grid-sorting>\r\n\r\n <dxo-data-grid-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-data-grid-scrolling>\r\n\r\n <dxo-data-grid-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-data-grid-paging>\r\n\r\n <dxi-data-grid-column caption=\"{{'Employee' | translate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-data-grid-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-data-grid-column caption=\"{{'StartDate' | translate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-column>\r\n <dxi-data-grid-column caption=\"{{'EndDate' | translate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-column>\r\n }@else{\r\n <dxi-data-grid-column caption=\"{{'ReturnDate' | translate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-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\"\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 ms-2\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer me-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 [innerHTML]=\"(cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName) | highlight:searchValue\">\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 [innerHTML]=\"cell.data.EmployeeAdminUnitName | highlight:searchValue\">\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { SkyWidgetSectionItemComponent, SkyWidgetSectionItem } from '@skysoftware-co/sky-components-ui';\r\nimport { faPlaneDeparture, faPlaneArrival } from '@fortawesome/pro-solid-svg-icons';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { HRNextWeekVacationInsightsPopupComponent } from './components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component';\r\nimport { VacationPopupType } from '../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-next-week-vacation-insights-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, FontAwesomeModule, SkyWidgetSectionItemComponent, HRNextWeekVacationInsightsPopupComponent],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-next-week-vacation-insights-widget.component.html',\r\n})\r\nexport class MyNextWeekVacationInsightsWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() showProperty: boolean = false;\r\n @Input() cardClass: string = 'card rounded rounded-4 card-shadow border-top-0 h-100 p-4';\r\n @Input() titleClass: string = 'table-header-lg fw-meduim mb-3 mt-2';\r\n @Input() valueClass: string = 'fs-24 mt-1 link-dark hover-primary text-decoration-none';\r\n @Input() disabledValueClass: string = 'fs-24 mt-1 text-muted pe-none text-decoration-none';\r\n @Input() upcomingContainerClass: string = 'border-start border-5 mb-4';\r\n @Input() expectedContainerClass: string = 'border-start border-5';\r\n @Input() firstRowClass: string = 'mb-4';\r\n @Input() secondRowClass: string = 'mt-3';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n popupVisible: boolean = false;\r\n popupType: VacationPopupType = VacationPopupType.Upcoming;\r\n popupBaseUrl: string = '';\r\n VacationPopupType = VacationPopupType;\r\n\r\n upcomingVacationsBadge!: SkyWidgetSectionItem;\r\n expectedToReturnBadge!: SkyWidgetSectionItem;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private translatePipe: HRTranslatePipe\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.initBadges(0, 0);\r\n this.loadVacationSummary();\r\n }\r\n\r\n private loadVacationSummary(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getVacationSummary(this.baseUrl).subscribe({\r\n next: (response) => {\r\n const data = response.ResponseData;\r\n this.initBadges(data.UpcomingVacationsCount, data.ExpectedToReturnCount);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: () => {\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n openPopup(type: VacationPopupType): void {\r\n if (type === VacationPopupType.Upcoming && this.upcomingVacationsBadge?.Value === 0) return;\r\n if (type === VacationPopupType.ExpectedToReturn && this.expectedToReturnBadge?.Value === 0) return;\r\n\r\n this.popupType = type;\r\n if (type === VacationPopupType.Upcoming) {\r\n this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/upcoming-vacations`;\r\n } else {\r\n this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/expected-to-return`;\r\n }\r\n this.popupVisible = true;\r\n }\r\n\r\n closePopup(): void {\r\n this.popupVisible = false;\r\n }\r\n\r\n private initBadges(upcomingVacations: number, expectedToReturn: number): void {\r\n this.upcomingVacationsBadge = {\r\n Id: 1,\r\n Title: this.translatePipe.transform('UpcomingVacations'),\r\n Value: upcomingVacations,\r\n Icon: faPlaneDeparture\r\n };\r\n this.expectedToReturnBadge = {\r\n Id: 2,\r\n Title: this.translatePipe.transform('ExpectedToReturn'),\r\n Value: expectedToReturn,\r\n Icon: faPlaneArrival\r\n };\r\n }\r\n}\r\n","<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' | translate | uppercase}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-3\">\r\n <div [ngClass]=\"firstRowClass\">\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 </div>\r\n <div [ngClass]=\"secondRowClass\">\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</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","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { faUsersRays, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { Experience } from '../../shared/types/common';\r\n\r\n\r\n@Component({\r\n selector: 'hr-my-profile-experiences-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent,\r\n HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule],\r\n templateUrl: './my-profile-experiences-widget-component.html'\r\n})\r\nexport class MyProfileExperiencesWidgetComponent implements OnInit {\r\n\r\n experiences: Experience[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'experiences';\r\n\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() experienceIcon = faUsersRays;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'mt-4';\r\n @Input() headerRowClass: string = 'row col-10';\r\n @Input() actionsSpacerClass: string = 'col-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm text-ellipsis-one-line';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-ellipsis-one-line';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 mx-3 text-dark cursor-pointer';\r\n\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() itemRowClass: string = 'row';\r\n @Input() itemColumnsWrapperClass: string = 'row col-10 mt-3';\r\n @Input() itemColumnClass: string = 'col-3';\r\n @Input() actionsColumnClass: string = 'col-2 align-items-end mt-3';\r\n\r\n @Input() rowMarginBottomClass: string = 'mb-5';\r\n @Input() rowMarginBottomEmptyClass: string = 'mb-4';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeExperiences(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.experiences = res ?? [];\r\n this.isLoading = false;\r\n\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.experiences = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(file: any) {\r\n this.attachmentViewed.emit(file);\r\n }\r\n\r\n onAttachmentDownload(file: any) {\r\n this.attachmentDownloaded.emit(file);\r\n }\r\n\r\n get wrapperClass(): string {\r\n const classes = [this.rowClass];\r\n if (this.experiences.length > 0) {\r\n classes.push(this.rowMarginBottomClass);\r\n } else {\r\n classes.push(this.rowMarginBottomEmptyClass);\r\n }\r\n return classes.join(' ');\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"wrapperClass\">\r\n\r\n @if(experiences.length > 0){\r\n\r\n <div class=\"row\">\r\n <div [class]=\"headerRowClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Period' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Employer' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Position' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'TerminationReason' | translate}}</p>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsSpacerClass\"></div>\r\n\r\n @for (experience of experiences; track experience){\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\">{{(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.Employer ? experience.Employer : ''\">\r\n @if(experience.Employer){\r\n {{experience.Employer}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.Position ? experience.Position : ''\">\r\n @if(experience.Position){\r\n {{experience.Position}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.TerminationReason ? experience.TerminationReason : ''\">\r\n @if(experience.TerminationReason){\r\n {{experience.TerminationReason}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\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 }@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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoExperiencesYet' | translate)\">\r\n</sky-empty-design-card>\r\n\r\n }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileCertificate, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { Degree } from '../../shared/types/common';\r\n\r\n\r\n@Component({\r\n selector: 'hr-my-profile-degrees-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule],\r\n templateUrl: './my-profile-degrees-widget-component.html'\r\n})\r\nexport class MyProfileDegreesWidgetComponent implements OnInit {\r\n\r\n degrees: Degree[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Degrees';\r\n\r\n @Input() degreesIcon = faFileCertificate;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'mt-4';\r\n @Input() rowMarginBottomClass: string = 'mb-5';\r\n @Input() rowMarginBottomEmptyClass: string = 'mb-4';\r\n @Input() headerRowClass: string = 'row col-10';\r\n @Input() actionsSpacerClass: string = 'col-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm text-ellipsis-one-line';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-ellipsis-one-line';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 mx-3 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() itemRowClass: string = 'row';\r\n @Input() itemColumnsWrapperClass: string = 'row col-10 mt-3';\r\n @Input() itemColumnClass: string = 'col-3';\r\n @Input() actionsColumnClass: string = 'col-2 align-items-end mt-3';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeDegrees(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.degrees = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.degrees = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n get wrapperClass(): string {\r\n const classes = [this.rowClass];\r\n if (this.degrees.length > 0) {\r\n classes.push(this.rowMarginBottomClass);\r\n } else {\r\n classes.push(this.rowMarginBottomEmptyClass);\r\n }\r\n return classes.join(' ');\r\n }\r\n\r\n onAttachmentView(file: any) {\r\n this.attachmentViewed.emit(file);\r\n }\r\n\r\n onAttachmentDownload(file: any) {\r\n this.attachmentDownloaded.emit(file);\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | translate | 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 <div class=\"row\">\r\n <div [class]=\"headerRowClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Degree/Year' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Country' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Specialty' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Institute' | translate}}</p>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsSpacerClass\"></div>\r\n\r\n @for (qualification of degrees; track qualification){\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.DegreeName + ' / ' + qualification.DegreeYear\">{{qualification.DegreeName + ' / ' + qualification.DegreeYear}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.CountryName ? qualification.CountryName : ''\">{{qualification.CountryName}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.Specialty ? qualification.Specialty : ''\">\r\n @if(qualification.Specialty){\r\n {{qualification.Specialty}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.Institute ? qualification.Institute : ''\">\r\n @if(qualification.Institute){\r\n {{qualification.Institute}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n </div>\r\n\r\n @if(qualification.Document){\r\n <div [class]=\"actionsColumnClass\">\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 </div>\r\n }\r\n }\r\n </div>\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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoDegreesYet' | translate)\">\r\n</sky-empty-design-card>\r\n\r\n }\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'hr-widget-card',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './widget-card-component.html',\n})\nexport class WidgetCardComponent {\n @Input() cardClass: string = 'bg-white shadow-sm p-3 border-1 border';\n @Input() height: number = 110;\n\n @Input() contentTemplate!: TemplateRef<any>;\n @Input() context: any;\n}\n","<div [class]=\"cardClass\" [style.height.px]=\"height\" style=\"overflow: hidden;\">\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: context\">\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Dependent } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../shared/components/widget-card/widget-card-component';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faUsersLine } from '@fortawesome/pro-light-svg-icons';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-dependents-widget',\r\n standalone: true,\r\n imports: [CommonModule, WidgetCardComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, SkySectionDividerComponent],\r\n templateUrl: './my-profile-employee-dependents-component.html',\r\n})\r\nexport class MyDependentsWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Dependents';\r\n @Input() icon = faUsersLine;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n dependents: Dependent[] = [];\r\n isLoading = true;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeDependents(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.dependents = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: () => {\r\n this.dependents = [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n <div class=\"row mb-5\">\r\n @if(dependents.length){\r\n @for(d of dependents; track d){\r\n <div class=\"col-lg-4 col-6 mt-4\">\r\n\r\n <hr-widget-card [contentTemplate]=\"dependentTemplate\"\r\n [context]=\"{ d: d }\"\r\n [height]=\"110\">\r\n </hr-widget-card>\r\n\r\n </div>\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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoDependentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n\r\n\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #dependentTemplate let-d=\"d\">\r\n <p class=\"text-dark fs-16 mb-2 d-flex\">\r\n <span class=\"text-truncate cursor-pointer\" [title]=\"d.DependentName\">\r\n {{ d.DependentName }}\r\n </span>\r\n <span class=\"mx-1\">({{ d.DependentTypeName }})</span>\r\n </p>\r\n <p class=\"mb-2 fs-12\">\r\n <span class=\"text-muted\">{{'BirthDate'| translate}}: </span>\r\n <span class=\"text-secondary mx-1\">{{ d.BirthDate | date:'dd/MM/yyyy' }}</span>\r\n </p>\r\n <p class=\"mb-0 fs-12\">\r\n <span class=\"text-muted\">{{'NationalNumber'| translate }}: </span>\r\n @if(d.NationalNumber){\r\n <span class=\"text-secondary mx-1\">{{ d.NationalNumber }}</span>\r\n } @else {\r\n <span class=\"text-secondary mx-1\">—</span>\r\n }\r\n </p>\r\n</ng-template>\r\n\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faIslandTropical } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { EntitlementsVacation } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-vacations-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-vacations-widget.component.html'\r\n})\r\nexport class MyProfileVacationsWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Vacations';\r\n @Input() vacationsIcon = faIslandTropical;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim mt-2';\r\n @Input() labelColumnClass: string = 'col-6';\r\n @Input() valueColumnClass: string = 'col-6';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n vacationEntitlements: EntitlementsVacation[] = [];\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsVacations(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.vacationEntitlements = data ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.vacationEntitlements = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"vacationsIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(vacationEntitlements.length > 0){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"labelClass\" [ngClass]=\"labelColumnClass\">{{'Type' | translate}}</div>\r\n <div [class]=\"labelClass\" [ngClass]=\"valueColumnClass\">{{'Entitlement' | translate}}</div>\r\n @for (vacationEntitlement of vacationEntitlements; track vacationEntitlement;){\r\n <div [class]=\"valueClass\" [ngClass]=\"labelColumnClass\">\r\n {{vacationEntitlement.VacationTypeName}}\r\n </div>\r\n <div [class]=\"valueClass\" [ngClass]=\"valueColumnClass\">\r\n {{vacationEntitlement.EntitlementDays}}\r\n </div>\r\n }\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('There\\'sNoInformationInThisSectionYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\nimport { EntitlementsIndemnity } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-indemnity-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-indemnity-widget.component.html'\r\n})\r\nexport class MyProfileIndemnityWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 0;\r\n @Input() sectionTitle: string = 'Indemnity';\r\n @Input() indemnityIcon = faFileSignature;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-6';\r\n @Input() topSpacingColumnClass: string = 'col-6 mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n @Output() hasDataChanged = new EventEmitter<boolean>();\r\n\r\n indemnityDetails: EntitlementsIndemnity | null = null;\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsIndemnity(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.indemnityDetails = data;\r\n this.isLoading = false;\r\n this.hasDataChanged.emit(!!this.indemnityDetails);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.indemnityDetails = null;\r\n this.isLoading = false;\r\n this.hasDataChanged.emit(false);\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"indemnityIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(indemnityDetails){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"IndemnityEligibility\"\r\n [value]=\"(indemnityDetails.IsEligibleForIndemnity ? 'Eligible' : 'NotEligible') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"ServiceYears\"\r\n [value]=\"'' + (indemnityDetails.IndemnityServiceYears ?? '')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColumnClass\">\r\n <hr-info-field labelKey=\"StartDate\"\r\n [value]=\"indemnityDetails.IndemnityStartDate | date: dateFormat\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('There\\'sNoInformationInThisSectionYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../../../shared/components/widget-card/widget-card-component';\r\n\r\n@Component({\r\n selector: 'hr-ticket-card',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, WidgetCardComponent],\r\n templateUrl: './ticket-card.component.html'\r\n})\r\nexport class HRTicketCardComponent {\r\n @Input({ required: true }) name: string | null = '';\r\n @Input() typeName: string | null = '';\r\n @Input() entitlementText: string = '';\r\n @Input() ticketClassName: string | null = '';\r\n @Input() ticketSectorName: string | null = '';\r\n @Input() isDependent: boolean = false;\r\n\r\n @Input() cardClass: string = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';\r\n @Input() cardHeight: number = 135;\r\n @Input() nameClass: string = 'text-dark fs-16';\r\n @Input() subtitleClass: string = 'field-secondary-label-sm mb-3';\r\n @Input() labelClass: string = 'text-secondary';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n}\r\n","<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | translate}})\r\n }\r\n </p>\r\n <p [class]=\"subtitleClass\">{{entitlementText}}</p>\r\n @if(!isDependent){\r\n <p class=\"fs-12 mb-2\"><span [class]=\"labelClass\">{{'Class' | translate}}:</span> <span [class]=\"valueClass\">{{ticketClassName}}</span></p>\r\n <p class=\"fs-12\"><span [class]=\"labelClass\">{{'Sector' | translate}}:</span> <span [class]=\"valueClass\">{{ticketSectorName}}</span></p>\r\n }\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faTicketsAirline } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTicketCardComponent } from './components/ticket-card/ticket-card.component';\r\nimport { EntitlementsTicket } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-ticket-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRTicketCardComponent],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-profile-ticket-widget.component.html'\r\n})\r\nexport class MyProfileTicketWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Tickets';\r\n @Input() ticketsIcon = faTicketsAirline;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() columnClass: string = 'col-lg-4 col-6 mt-4';\r\n @Input() cardHeight: number = 135;\r\n @Input() cardClass: string = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';\r\n @Input() nameClass: string = 'text-dark fs-16';\r\n @Input() subtitleClass: string = 'field-secondary-label-sm mb-3';\r\n @Input() labelClass: string = 'fs-12 text-secondary';\r\n @Input() valueClass: string = 'fs-12 text-dark-gray mx-1';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n ticketDetails: EntitlementsTicket | null = null;\r\n isLoading = true;\r\n hasData = true;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private translatePipe: HRTranslatePipe\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsTicket(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.ticketDetails = data;\r\n this.isLoading = false;\r\n this.hasData = !!this.ticketDetails?.EmployeeTicketDetails || (this.ticketDetails?.DependentTicketDetails?.length ?? 0) > 0;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.ticketDetails = null;\r\n this.isLoading = false;\r\n this.hasData = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n getMonthsPerTicketEntitlement(monthsPerTicketEntitlement: number | null): string {\r\n if (monthsPerTicketEntitlement != null && monthsPerTicketEntitlement != 0) {\r\n if (monthsPerTicketEntitlement > 1) {\r\n const template = this.translatePipe.transform('TicketEvery{{value}}Months');\r\n return template.replace('{{value}}', String(monthsPerTicketEntitlement));\r\n } else {\r\n const template = this.translatePipe.transform('TicketEvery{{value}}Month');\r\n return template.replace('{{value}}', String(monthsPerTicketEntitlement));\r\n }\r\n } else\r\n return this.translatePipe.transform('NotEntitled');\r\n }\r\n}\r\n","@if(hasData){\r\n<sky-section-divider [fontAwesomeIcon]=\"ticketsIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(ticketDetails){\r\n@if(!ticketDetails.EmployeeTicketDetails && ticketDetails.DependentTicketDetails?.length == 0){\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"'NoTicketEntitlement' | translate\">\r\n</sky-empty-design-card>\r\n}@else{\r\n<div class=\"row mb-5\">\r\n @if(ticketDetails.EmployeeTicketDetails){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-ticket-card [name]=\"ticketDetails.EmployeeTicketDetails.EmployeeFirstName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(ticketDetails.EmployeeTicketDetails.MonthsPerTicketEntitlement)\"\r\n [ticketClassName]=\"ticketDetails.EmployeeTicketDetails.TicketClassName\"\r\n [ticketSectorName]=\"ticketDetails.EmployeeTicketDetails.TicketSectorName\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n @for (dependent of ticketDetails.DependentTicketDetails; track dependent;){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-ticket-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(dependent.MonthsPerTicketEntitlement)\"\r\n [isDependent]=\"true\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('NoTicketEntitlement' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../../../shared/components/widget-card/widget-card-component';\r\n\r\nexport interface MedicalInsuranceField {\r\n labelKey: string;\r\n value: any;\r\n fallbackValue?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'hr-medical-insurance-card',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, WidgetCardComponent],\r\n templateUrl: './medical-insurance-card.component.html'\r\n})\r\nexport class HRMedicalInsuranceCardComponent {\r\n @Input({ required: true }) name: string | null = '';\r\n @Input() typeName: string | null = '';\r\n @Input() isDependent: boolean = false;\r\n @Input() fields: MedicalInsuranceField[] = [];\r\n\r\n @Input() cardClass: string = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';\r\n @Input() cardHeight: number = 185;\r\n @Input() nameClass: string = 'text-dark fs-16 mb-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n}\r\n","<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | translate}})\r\n }\r\n </p>\r\n @for (field of fields; track field.labelKey; let last = $last){\r\n <p [class.mb-2]=\"!last\">\r\n <span [class]=\"labelClass\">{{field.labelKey | translate}}:</span>\r\n <span [class]=\"valueClass\">{{field.value || (field.fallbackValue ?? '—')}}</span>\r\n </p>\r\n }\r\n</ng-template>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faNotesMedical } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRMedicalInsuranceCardComponent, MedicalInsuranceField } from './components/medical-insurance-card/medical-insurance-card.component';\r\nimport { EntitlementsMedicalInsurance, DependentsMedicalInsurance } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-medical-insurance-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRMedicalInsuranceCardComponent],\r\n templateUrl: './my-profile-medical-insurance-widget.component.html'\r\n})\r\nexport class MyProfileMedicalInsuranceWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'MedicalInsurance';\r\n @Input() medicalInsuranceIcon = faNotesMedical;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n @Input() columnClass: string = 'col-lg-4 col-6 mt-4';\r\n @Input() cardHeight: number = 185;\r\n @Input() cardClass: string = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';\r\n @Input() nameClass: string = 'text-dark fs-16 mb-2';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n medicalInsuranceDetails: EntitlementsMedicalInsurance | null = null;\r\n isLoading = true;\r\n employeeFields: MedicalInsuranceField[] = [];\r\n\r\n private datePipe = new DatePipe('en-US');\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsMedicalInsurance(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.medicalInsuranceDetails = data;\r\n this.buildEmployeeFields();\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.medicalInsuranceDetails = null;\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n private buildEmployeeFields(): void {\r\n if (!this.medicalInsuranceDetails?.EmployeeMedicalInsurance) return;\r\n const emp = this.medicalInsuranceDetails.EmployeeMedicalInsurance;\r\n this.employeeFields = [\r\n { labelKey: 'Class', value: emp.MedicalInsuranceClassName },\r\n { labelKey: 'Number', value: emp.MedicalInsuranceNumber },\r\n { labelKey: 'CoverageDate', value: this.datePipe.transform(emp.CoverageDate, this.dateFormat) },\r\n { labelKey: 'TotalEmployeeShare', value: this.medicalInsuranceDetails.TotalEmployeeShare },\r\n { labelKey: 'TotalEmployerShare', value: this.medicalInsuranceDetails.TotalEmployerShare }\r\n ];\r\n }\r\n\r\n getDependentFields(dependent: DependentsMedicalInsurance): MedicalInsuranceField[] {\r\n return [\r\n { labelKey: 'Class', value: dependent.MedicalInsuranceClassName },\r\n { labelKey: 'Number', value: dependent.MedicalInsuranceNumber },\r\n { labelKey: 'CoverageDate', value: this.datePipe.transform(dependent.CoverageDate, this.dateFormat) }\r\n ];\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"medicalInsuranceIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(medicalInsuranceDetails){\r\n<div class=\"row mb-5\">\r\n @if(medicalInsuranceDetails.EmployeeMedicalInsurance){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-medical-insurance-card [name]=\"medicalInsuranceDetails.EmployeeMedicalInsurance.EmployeeFirstName\"\r\n [fields]=\"employeeFields\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n @for (dependent of medicalInsuranceDetails.DependentsMedicalInsurance; track dependent){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-medical-insurance-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [isDependent]=\"true\"\r\n [fields]=\"getDependentFields(dependent)\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('NotCoveredByMedicalInsurance' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faGrid2Plus } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\nimport { forkJoin } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-entitlements-others-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-entitlements-others-widget.component.html'\r\n})\r\nexport class MyProfileEntitlementsOthersWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Others';\r\n @Input() othersIcon = faGrid2Plus;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4 mb-5';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n isEligibleForOvertime: boolean = false;\r\n isSocialSecurityMember: boolean = false;\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n forkJoin({\r\n overtime: this.selfWidgetsService.getEntitlementsOvertime(this.baseUrl),\r\n socialSecurity: this.selfWidgetsService.getEntitlementsSocialSecurity(this.baseUrl)\r\n }).subscribe({\r\n next: (responses) => {\r\n this.isEligibleForOvertime = responses.overtime.ResponseData?.IsEligibleForOvertime ?? false;\r\n this.isSocialSecurityMember = responses.socialSecurity.ResponseData?.IsSocialSecurityMember ?? false;\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"othersIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"OvertimeEligibility\"\r\n [value]=\"(isEligibleForOvertime ? 'Eligible' : 'NotEligible') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"SocialSecurityEligibility\"\r\n [value]=\"(isSocialSecurityMember ? 'Member' : 'NotMember') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-document-row',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule],\r\n templateUrl: './document-row.component.html'\r\n})\r\nexport class HRDocumentRowComponent {\r\n @Input() doc!: DocumentRow;\r\n @Input() valueClass: string = 'text-dark-gray fs-14';\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon: IconDefinition = faFolderArrowDown;\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Output() attachmentView = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n\r\n onAttachmentView(): void {\r\n this.attachmentView.emit(this.doc);\r\n }\r\n\r\n onDownload(): void {\r\n this.download.emit(this.doc);\r\n }\r\n}\r\n","<div [class]=\"rowClass\">\r\n\r\n <div [class]=\"dataColClass + ' ' + dataColSpacingClass\">\r\n <div [class]=\"dataRowClass\">\r\n\r\n <div [class]=\"typeColClass\">\r\n <p [class]=\"valueClass + ' mb-0 text-ellipsis-one-line'\"\r\n [title]=\"doc.DocumentTypeName\">\r\n {{ doc.DocumentTypeName }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"numberColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.DocumentNumber || '—' }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"issueDateColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.IssueDate ? (doc.IssueDate | date:'dd/MM/yyyy') : '—' }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"expiryDateColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.ExpiryDate ? (doc.ExpiryDate | date:'dd/MM/yyyy') : '—' }}\r\n </p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsColClass\">\r\n\r\n @if(doc.Attachments?.length) {\r\n\r\n <div [class]=\"actionsWrapperClass\">\r\n\r\n @if(doc.Attachments.length === 1) {\r\n <fa-icon [icon]=\"viewIcon\"\r\n [class]=\"viewIconClass\"\r\n (click)=\"onAttachmentView()\">\r\n </fa-icon>\r\n } @else {\r\n <div class=\"invisible\">\r\n <fa-icon [icon]=\"viewIcon\"></fa-icon>\r\n </div>\r\n }\r\n\r\n <div [class]=\"downloadContainerClass\"\r\n (click)=\"onDownload()\">\r\n <fa-icon [icon]=\"downloadIcon\"\r\n [class]=\"downloadIconClass\">\r\n </fa-icon>\r\n <span class=\"ps-1\">{{ doc.Attachments.length }}</span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { HRDocumentRowComponent } from '../document-row/document-row.component';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-document-card',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, HRDocumentRowComponent],\r\n templateUrl: './document-card.component.html'\r\n})\r\nexport class HRDocumentCardComponent {\r\n @Input() title: string = '';\r\n @Input() documents: DocumentRow[] = [];\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() valueClass: string = 'text-dark-gray fs-14';\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon: IconDefinition = faFolderArrowDown;\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Output() attachmentView = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n\r\n onAttachmentView(doc: DocumentRow): void {\r\n this.attachmentView.emit(doc);\r\n }\r\n\r\n onDownload(doc: DocumentRow): void {\r\n this.download.emit(doc);\r\n }\r\n}\r\n","@if(title) {\r\n<div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">{{ title }}</p>\r\n</div>\r\n}\r\n\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"dataColClass\">\r\n <div class=\"row g-1\">\r\n\r\n <div [class]=\"typeColClass\">\r\n <p [class]=\"labelClass\">{{ 'Type' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"numberColClass\">\r\n <p [class]=\"labelClass\">{{ 'DocumentNumber' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"issueDateColClass\">\r\n <p [class]=\"labelClass\">{{ 'IssueDate' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"expiryDateColClass\">\r\n <p [class]=\"labelClass\">{{ 'ExpiryDate' | translate }}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsColClass\"></div>\r\n</div>\r\n\r\n@for(doc of documents; track doc) {\r\n\r\n<hr-document-row [doc]=\"doc\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n</hr-document-row>\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n \r\n@Component({\r\n selector: 'hr-document-tablet-card',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe],\r\n templateUrl: './document-tablet-card.component.html'\r\n})\r\nexport class HrDocumentTabletCardComponent {\r\n \r\n @Input() doc!: DocumentRow;\r\n @Input() isOdd: boolean = false;\r\n \r\n @Input() downloadIcon: any;\r\n @Input() viewIcon: any;\r\n @Input() cardHeight = '175px';\r\n\r\n // Shared classes (same as large screen)\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'table-cell-md text-break';\r\n @Input() downloadIconClass: string = 'fs-6 text-dark';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex justify-content-center align-items-center cursor-pointer px-2';\r\n @Input() downloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n // Tablet-specific classes\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n \r\n @Output() view = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n \r\n onView() {\r\n this.view.emit(this.doc);\r\n }\r\n \r\n onDownload() {\r\n this.download.emit(this.doc);\r\n }\r\n}","<div [class]=\"tabletContainerClass\">\r\n<div [class]=\"tabletCardClass\" [style.height]=\"cardHeight\"\r\n [ngClass]=\"{'me-1': !isOdd, 'ms-1': isOdd}\">\r\n \r\n <div [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'Type' | translate }}</p>\r\n<p [class]=\"valueClass\">{{ doc.DocumentTypeName }}</p>\r\n</div>\r\n \r\n <div [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'Number' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.DocumentNumber || '—' }}\r\n</p>\r\n</div>\r\n \r\n @if(doc.Attachments?.length) {\r\n<div [class]=\"tabletActionsColClass\"> \r\n \r\n <div [class]=\"downloadContainerClass\"\r\n (click)=\"onDownload()\">\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\"></fa-icon>\r\n<span [class]=\"downloadCountClass\">\r\n {{ doc.Attachments.length }}\r\n</span>\r\n</div>\r\n \r\n </div>\r\n }\r\n \r\n <div [class]=\"tabletBottomRowSpacingClass\"\r\n [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'IssueDate' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.IssueDate ? (doc.IssueDate | date:'dd/MM/yyyy') : '—' }}\r\n</p>\r\n</div>\r\n \r\n <div [class]=\"tabletBottomRowSpacingClass\"\r\n [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'ExpiryDate' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.ExpiryDate ? (doc.ExpiryDate | date:'dd/MM/yyyy') : '—' }}\r\n</p>\r\n</div>\r\n \r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileLines, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { HRDocumentCardComponent } from '../documents-widgets/components/document-card/document-card.component';\r\nimport { HrDocumentTabletCardComponent } from '../documents-widgets/components/document-tablet-card/document-tablet-card.component';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { DependentDocumentGroup } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-dependents-documents-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRDocumentCardComponent, HrDocumentTabletCardComponent],\r\n templateUrl: './my-profile-dependents-documents-widget.html'\r\n})\r\nexport class MyProfileDependentsDocumentsWidgetComponent implements OnInit {\r\n documents: DependentDocumentGroup[] = [];\r\n groupedDocuments: DependentDocumentGroup[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'DependentsDocuments';\r\n @Input() icon = faFileLines;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-break';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative p-4';\r\n @Input() topSpacingColClass: string = 'col-md-3 col-6 mt-4';\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() actionsColumnClass: string = 'col-2 d-flex flex-column mt-3';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletCardHeight: string = '175px';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n @Input() tabletDownloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n groups: any[] = [];\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getDependentDocuments(this.baseUrl).subscribe({\r\n next: (res: any) => {\r\n this.groups = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.groups = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(doc: any): void {\r\n if (doc.Attachments?.length) {\r\n this.attachmentViewed.emit(doc.Attachments[0]);\r\n }\r\n }\r\n\r\n onDownload(group: any): void {\r\n const attachments = group.Attachments\r\n\r\n if (!attachments.length) return;\r\n\r\n this.attachmentDownloaded.emit(attachments);\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n\r\n @if(groups.length) {\r\n\r\n @for(group of groups; track group; let first = $first) {\r\n\r\n <div [class]=\"!(isTablet || isMobile) ? cardClass : ''\" [class.mt-3]=\"!first\">\r\n\r\n @if(!(isTablet || isMobile)) {\r\n\r\n <hr-document-card [title]=\"group.DependentName + ' (' + group.DependentTypeName + ')'\"\r\n [documents]=\"group.Documents\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [titleContainerClass]=\"titleContainerClass\"\r\n [titleClass]=\"titleClass\"\r\n [labelClass]=\"labelClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n </hr-document-card>\r\n }\r\n @else{\r\n <div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">\r\n {{ group.DependentName }} ({{ group.DependentTypeName }})\r\n </p>\r\n </div>\r\n <div class=\"row mx-1\">\r\n @for(doc of group.Documents; track doc; let odd = $odd) {\r\n <div class=\"col-6 mb-2\">\r\n <hr-document-tablet-card [doc]=\"doc\"\r\n [isOdd]=\"odd\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n [downloadCountClass]=\"tabletDownloadCountClass\"\r\n [tabletContainerClass]=\"tabletContainerClass\"\r\n [tabletCardClass]=\"tabletCardClass\"\r\n [cardHeight]=\"tabletCardHeight\"\r\n [tabletColWithAttachmentClass]=\"tabletColWithAttachmentClass\"\r\n [tabletColWithoutAttachmentClass]=\"tabletColWithoutAttachmentClass\"\r\n [tabletActionsColClass]=\"tabletActionsColClass\"\r\n [tabletBottomRowSpacingClass]=\"tabletBottomRowSpacingClass\"\r\n (view)=\"onAttachmentView(doc)\"\r\n (download)=\"onDownload(doc)\">\r\n </hr-document-tablet-card>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n\r\n } @else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoDependentsDocumentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n\r\n }\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileLines, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { HRDocumentCardComponent } from '../documents-widgets/components/document-card/document-card.component';\r\nimport { HrDocumentTabletCardComponent } from '../documents-widgets/components/document-tablet-card/document-tablet-card.component';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-personal-documents-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRDocumentCardComponent, HrDocumentTabletCardComponent],\r\n templateUrl: './my-profile-official-documents-widget.html'\r\n})\r\nexport class MyProfilePersonalDocumentsWidgetComponent implements OnInit {\r\n documents: any[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() employeeName: string = '';\r\n @Input() sectionTitle: string = 'EmployeeDocuments';\r\n @Input() icon = faFileLines;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-break';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative p-4';\r\n @Input() topSpacingColClass: string = 'col-md-3 col-6 mt-4';\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() actionsColumnClass: string = 'col-2 d-flex flex-column mt-3';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletCardHeight: string = '175px';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n @Input() tabletDownloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n this.service.getPersonalDocuments(this.baseUrl).subscribe({\r\n next: (res: any) => {\r\n this.documents = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.documents = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(doc: any): void {\r\n if (doc.Attachments?.length) {\r\n this.attachmentViewed.emit(doc.Attachments[0]);\r\n }\r\n }\r\n\r\n onDownload(doc: any): void {\r\n const attachments = doc.Attachments ?? [];\r\n if (!attachments.length) return;\r\n this.attachmentDownloaded.emit(attachments);\r\n }\r\n\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n\r\n @if(documents.length) {\r\n\r\n <div [class]=\"!(isTablet || isMobile) ? cardClass : ''\">\r\n @if(!(isTablet || isMobile)) {\r\n\r\n <hr-document-card [title]=\"employeeName + ' (' + ('Me' | translate) + ')'\"\r\n [documents]=\"documents\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [titleContainerClass]=\"titleContainerClass\"\r\n [titleClass]=\"titleClass\"\r\n [labelClass]=\"labelClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n </hr-document-card>\r\n }\r\n @else {\r\n <div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">\r\n {{ employeeName }} ({{ 'Me' | translate}})\r\n </p>\r\n </div>\r\n\r\n <div class=\"row mx-1\">\r\n @for(doc of documents; track doc; let odd = $odd) {\r\n <div class=\"col-6 mb-2\">\r\n <hr-document-tablet-card [doc]=\"doc\"\r\n [isOdd]=\"odd\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n [downloadCountClass]=\"tabletDownloadCountClass\"\r\n [tabletContainerClass]=\"tabletContainerClass\"\r\n [tabletCardClass]=\"tabletCardClass\"\r\n [cardHeight]=\"tabletCardHeight\"\r\n [tabletColWithAttachmentClass]=\"tabletColWithAttachmentClass\"\r\n [tabletColWithoutAttachmentClass]=\"tabletColWithoutAttachmentClass\"\r\n [tabletActionsColClass]=\"tabletActionsColClass\"\r\n [tabletBottomRowSpacingClass]=\"tabletBottomRowSpacingClass\"\r\n (view)=\"onAttachmentView(doc)\"\r\n (download)=\"onDownload(doc)\">\r\n </hr-document-tablet-card>\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoEmployeeDocumentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n }\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, effect, input, output } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faChevronDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { HighlightPipe, isRTL } from '@skysoftware-co/sky-components-ui';\r\nimport { EmployeeMainInfo } from '../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'app-employee-main-info-card',\r\n standalone: true,\r\n imports: [FontAwesomeModule, NgClass, BayanEmployeeBadgeComponent, HighlightPipe],\r\n templateUrl: './employee-main-info-card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EmployeeMainInfoCardComponent {\r\n readonly employeeMainInfo = input<EmployeeMainInfo | null>(null);\r\n readonly searchValue = input<string>('');\r\n readonly showPropertySymbol = input<boolean>(true);\r\n readonly showChangeEmployeeButton = input<boolean>(false);\r\n readonly alignCenter = input<boolean>(true);\r\n\r\n readonly ChangeEmployeeButtonHandler = output<void>();\r\n readonly isRTL = isRTL();\r\n employeeBadge: BayanEmployeeBadgeDTO = {\r\n EmployeePhotoKey: null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: '',\r\n };\r\n\r\n dropDownIcon = faChevronDown;\r\n faildToLoadEmployeePhoto = false;\r\n\r\n constructor() {\r\n effect(() => {\r\n const info = this.employeeMainInfo();\r\n if (info) {\r\n this.employeeBadge.EmployeePhotoKey = info.PhotoKey || null;\r\n this.employeeBadge.EmployeeNameInitials = info.EmployeeNameInitials || '';\r\n this.employeeBadge.EmployeePhotoFailed = false;\r\n }\r\n });\r\n }\r\n\r\n convertEmployee() {\r\n this.ChangeEmployeeButtonHandler.emit();\r\n }\r\n\r\n handleEmployeePhotoError() {\r\n this.employeeBadge.EmployeePhotoFailed = true;\r\n }\r\n}\r\n","@if (employeeMainInfo(); as info) {\r\n <div class=\"d-flex align-content-center\" [ngClass]=\"{ 'align-items-center': alignCenter }\">\r\n <bayan-employee-badge\r\n [badge]=\"employeeBadge\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-5\"\r\n imageClass=\"rounded-circle shadow-lg\"\r\n [width]=\"'50px'\"\r\n [height]=\"'50px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError()\"\r\n ></bayan-employee-badge>\r\n\r\n <div class=\"ms-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div\r\n class=\"fs-14 text-dark-gray fw-medium text-ellipsis-one-line\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"info.EmployeeNumber + ' | ' + info.EmployeeName\"\r\n [innerHTML]=\"info.EmployeeNumber + ' | ' + info.EmployeeName | highlight: searchValue()\"\r\n ></div>\r\n @if (showChangeEmployeeButton()) {\r\n <button type=\"button\" class=\"border-0 ms-2 bg-none\" (click)=\"convertEmployee()\">\r\n <fa-icon [icon]=\"dropDownIcon\" class=\"text-primary fs-5\"></fa-icon>\r\n </button>\r\n }\r\n </div>\r\n @if (info.PositionName != null && info.PositionName != '') {\r\n <div class=\"fs-12 fw-normal text-dark-gray text-ellipsis-one-line mb-1\" data-bs-toggle=\"tooltip\" [title]=\"info.PositionName\">\r\n <span [innerHTML]=\"info.PositionName | highlight: searchValue()\"></span>\r\n </div>\r\n }\r\n <div\r\n class=\"d-flex text-dark-gray mb-0\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"showPropertySymbol() ? info.PropertySymbol + ' | ' + info.AdminUnitName : info.AdminUnitName\"\r\n >\r\n <div class=\"fs-12\">\r\n @if (showPropertySymbol()) {\r\n <span class=\"property-badge cursor-pointer\" title=\"{{ info.PropertyName }}\">\r\n <span [innerHTML]=\"info.PropertySymbol | highlight: searchValue()\"></span>\r\n </span>\r\n }\r\n <span class=\"fw-normal ms-1\" [ngClass]=\"{ 'me-1': isRTL, 'ms-1': !isRTL }\" \r\n [title]=\"info.AdminUnitName\" [innerHTML]=\"info.AdminUnitName | highlight: searchValue()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SubordinatesApiResponse } from '../types/common';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WfSelfWidgetsService {\r\n private readonly headers = { 'api-version': '1' };\r\n\r\n constructor(private readonly http: HttpClient) {}\r\n\r\n getSubordinates(baseUrl: string, params: {\r\n showDirectSubordinatesOnly: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n searchValue?: string;\r\n }): Observable<{ ResponseData: SubordinatesApiResponse }> {\r\n const httpParams = new HttpParams()\r\n .set('p.showDirectSubordinatesOnly', params.showDirectSubordinatesOnly)\r\n .set('p.loadOptions.pageIndex', params.pageIndex + 1)\r\n .set('p.loadOptions.pageSize', params.pageSize)\r\n .set('p.loadOptions.searchValue', params.searchValue ?? '');\r\n\r\n return this.http.get<{ ResponseData: SubordinatesApiResponse }>(\r\n `${baseUrl}/hr/widgets/me/team/subordinates`,\r\n {\r\n params: httpParams,\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, inject, input, output, signal, ViewChild } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n DxScrollViewComponent,\r\n DxTextBoxModule,\r\n DxPopupModule,\r\n DxScrollViewModule,\r\n DxLoadIndicatorModule,\r\n} from 'devextreme-angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { HighlightPipe } from '@skysoftware-co/sky-components-ui';\r\nimport { SubordinateDTO, EmployeeMainInfo } from '../../../shared/types/common';\r\nimport { EmployeeMainInfoCardComponent } from '../employee-main-info-card/employee-information-card.component';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { faEnvelope, faPhone } from '@fortawesome/pro-solid-svg-icons';\r\nimport { WfSelfWidgetsService } from '../../../shared/services/my-team-subordinates-popup.service';\r\n\r\nexport const myTeamSubordinatesVisible = signal(false);\r\n\r\nexport function openMyTeamSubordinatesPopup(): void {\r\n myTeamSubordinatesVisible.set(true);\r\n}\r\n\r\n@Component({\r\n selector: 'hr-my-team-subordinates-popup',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n FontAwesomeModule,\r\n DxPopupModule,\r\n DxTextBoxModule,\r\n DxScrollViewModule,\r\n DxLoadIndicatorModule,\r\n EmployeeMainInfoCardComponent,\r\n NgTemplateOutlet,\r\n HighlightPipe,\r\n HRTranslatePipe,\r\n ],\r\n templateUrl: './my-team-subordinates-popup.component.html',\r\n})\r\nexport class MyTeamSubordinatesPopupComponent {\r\n private readonly wfSelfWidgetsService = inject(WfSelfWidgetsService);\r\n @ViewChild('dataScrollView') dataScrollView?: DxScrollViewComponent;\r\n\r\n readonly baseUrl = input.required<string>();\r\n\r\n readonly isLoadingChanged = output<boolean>();\r\n readonly errorOccurred = output<string>();\r\n\r\n readonly isPopupVisible = myTeamSubordinatesVisible;\r\n readonly isLoading = signal(false);\r\n readonly showAllSubordinates = signal(false);\r\n readonly searchValue = signal('');\r\n readonly items = signal<{ adminUnitName: string; employees: SubordinateDTO[] }[]>([]);\r\n readonly isDataLoading = signal(false);\r\n readonly hasMoreData = signal(true);\r\n\r\n readonly phoneIcon = input(faPhone);\r\n readonly emailIcon = input(faEnvelope);\r\n readonly headerRowClass = input('d-flex justify-content-between align-items-center mb-2');\r\n readonly switchContainerClass = input('form-check form-switch d-flex align-items-center custom-switch-dark ps-0');\r\n readonly switchInputClass = input('form-check-input text-dark ms-0');\r\n readonly switchLabelClass = input('form-check-label mx-2 fs-13');\r\n readonly scrollViewClass = input('position-relative');\r\n readonly emptyStateClass = input(\r\n 'position-absolute top-50 start-50 translate-middle w-100 text-center text-dark-gray fs-14',\r\n );\r\n readonly groupHeaderClass = input('fs-16 text-dark pt-2 pb-1');\r\n readonly employeeCardClass = input(\r\n 'bg-light-gray rounded p-4 mb-2 d-flex align-items-center justify-content-between border-start border-4 border-start-primary',\r\n );\r\n readonly contactContainerClass = input('d-flex flex-column gap-1 border-start border-2 ps-3 w-100');\r\n readonly contactTitleClass = input('fs-10 fw-medium mb-1 text-dark');\r\n readonly contactRowClass = input('d-flex align-items-center gap-2 fs-12 fw-normal lh-21 text-dark');\r\n readonly contactIconClass = input('fs-10 text-light-gray');\r\n readonly emailTextClass = input('d-inline-block flex-grow-1 text-ellipsis-one-line');\r\n readonly groupedListClass = input('d-flex flex-column gap-2 pb-2');\r\n readonly loadingContainerClass = input('d-flex justify-content-center py-2');\r\n readonly loadingIndicatorClass = input('w-30 h-30');\r\n readonly employeeInfoColumnClass = input('col-8 overflow-hidden pe-2');\r\n readonly contactColumnClass = input('col-4 d-flex justify-content-end');\r\n\r\n readonly pageSize = input(100);\r\n\r\n private pageIndex = 0;\r\n private totalCount = 0;\r\n private loadedCount = 0;\r\n\r\n toEmployeeMainInfo(emp: SubordinateDTO): EmployeeMainInfo {\r\n return {\r\n EmployeeNumber: emp.EmployeeNumber,\r\n EmployeeName: emp.EmployeeName,\r\n PhotoKey: emp.PhotoPath,\r\n PositionName: emp.PositionName,\r\n AdminUnitName: emp.AdminUnitName ?? '-',\r\n GradeName: null,\r\n PropertyName: emp.PropertyName ?? '-',\r\n PropertySymbol: emp.PropertySymbol ?? '-',\r\n EmployeeNameInitials: emp.EmployeeNameInitials,\r\n };\r\n }\r\n\r\n closePopup(): void {\r\n myTeamSubordinatesVisible.set(false);\r\n this.showAllSubordinates.set(false);\r\n this.searchValue.set('');\r\n this.resetState();\r\n }\r\n\r\n getEmployeeEmail(employee: SubordinateDTO): string {\r\n return employee.BusinessEmail ?? employee.PersonalEmail ?? '-';\r\n }\r\n\r\n onSearchChanged(value: string): void {\r\n const nextSearchValue = value ?? '';\r\n if (nextSearchValue === this.searchValue()) {\r\n return;\r\n }\r\n this.searchValue.set(nextSearchValue);\r\n this.loadPage(true);\r\n }\r\n\r\n onToggleChange(event: Event): void {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n this.showAllSubordinates.set(checked);\r\n this.loadPage(true);\r\n }\r\n\r\n onReachBottom(event: any): void {\r\n if (!this.hasMoreData()) {\r\n event?.component?.release?.();\r\n return;\r\n }\r\n\r\n const scrollTop = event?.component?.scrollOffset?.().top ?? 0;\r\n if (scrollTop <= 0) {\r\n event?.component?.release?.();\r\n return;\r\n }\r\n\r\n this.loadPage(false).finally(() => {\r\n event?.component?.release?.();\r\n });\r\n }\r\n\r\n private resetState(): void {\r\n this.items.set([]);\r\n this.hasMoreData.set(true);\r\n this.pageIndex = 0;\r\n this.totalCount = 0;\r\n this.loadedCount = 0;\r\n }\r\n\r\n private resetScrollPosition(): void {\r\n this.dataScrollView?.instance?.scrollTo({ top: 0, left: 0 });\r\n }\r\n\r\n private appendEmployees(pageData: SubordinateDTO[]): void {\r\n const groupedMap = new Map(this.items().map(group => [group.adminUnitName, [...group.employees]]));\r\n\r\n for (const employee of pageData) {\r\n const key = employee.AdminUnitName!;\r\n const employees = groupedMap.get(key) ?? [];\r\n employees.push(employee);\r\n groupedMap.set(key, employees);\r\n }\r\n\r\n this.items.set(Array.from(groupedMap.entries()).map(([adminUnitName, employees]) => ({ adminUnitName, employees })));\r\n }\r\n\r\n async loadPage(reset: boolean): Promise<void> {\r\n if (this.isDataLoading() || (!reset && !this.hasMoreData())) {\r\n return;\r\n }\r\n\r\n if (reset) {\r\n this.resetState();\r\n }\r\n\r\n this.isDataLoading.set(true);\r\n if (reset) {\r\n this.isLoading.set(true);\r\n this.isLoadingChanged.emit(true);\r\n }\r\n\r\n try {\r\n const response = await firstValueFrom(\r\n this.wfSelfWidgetsService.getSubordinates(this.baseUrl(), {\r\n showDirectSubordinatesOnly: !this.showAllSubordinates(),\r\n pageIndex: this.pageIndex,\r\n pageSize: this.pageSize(),\r\n searchValue: this.searchValue(),\r\n }),\r\n );\r\n\r\n this.totalCount = response.ResponseData.Pagination.TotalCount;\r\n const pageData = response.ResponseData.Data;\r\n\r\n if (reset) {\r\n this.resetScrollPosition();\r\n }\r\n\r\n this.appendEmployees(pageData);\r\n this.loadedCount += pageData.length;\r\n this.pageIndex += 1;\r\n\r\n const hasMore = this.loadedCount < this.totalCount && pageData.length > 0;\r\n this.hasMoreData.set(hasMore);\r\n } catch (err: any) {\r\n this.errorOccurred.emit(err?.error?.ResponseData?.Errors?.[0]?.Message);\r\n } finally {\r\n this.isDataLoading.set(false);\r\n if (reset) {\r\n this.isLoading.set(false);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n }\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"isPopupVisible()\"\r\n [width]=\"'755px'\"\r\n [height]=\"'680px'\"\r\n [showCloseButton]=\"true\"\r\n [showTitle]=\"true\"\r\n [title]=\"'MyTeam' | translate\"\r\n contentTemplate=\"popup-content\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n (onShown)=\"loadPage(true)\"\r\n (onHiding)=\"closePopup()\"\r\n>\r\n <div *dxTemplate=\"let data of 'popup-content'\">\r\n <ng-template #employeeCardTemplate let-employee>\r\n <div [class]=\"employeeCardClass()\">\r\n <div class=\"row g-0 w-100 align-items-center flex-nowrap\">\r\n <div [class]=\"employeeInfoColumnClass()\">\r\n <app-employee-main-info-card\r\n [employeeMainInfo]=\"toEmployeeMainInfo(employee)\"\r\n [searchValue]=\"searchValue()\"\r\n [showPropertySymbol]=\"true\"\r\n [showChangeEmployeeButton]=\"false\"\r\n ></app-employee-main-info-card>\r\n </div>\r\n <div [class]=\"contactColumnClass()\">\r\n <div [class]=\"contactContainerClass()\">\r\n <span [class]=\"contactTitleClass()\">{{ 'ContactInfo' | translate }}:</span>\r\n <span [class]=\"contactRowClass()\">\r\n <fa-icon [icon]=\"phoneIcon()\" [class]=\"contactIconClass()\"></fa-icon>\r\n <span [innerHTML]=\"employee.MobileNumber ?? '-'\"></span>\r\n </span>\r\n <span [class]=\"contactRowClass()\">\r\n <fa-icon [icon]=\"emailIcon()\" [class]=\"contactIconClass()\"></fa-icon>\r\n <span [class]=\"emailTextClass()\" [title]=\"getEmployeeEmail(employee)\" [innerHTML]=\"getEmployeeEmail(employee)\"></span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div [class]=\"headerRowClass()\">\r\n <div [class]=\"switchContainerClass()\">\r\n <input\r\n [class]=\"switchInputClass()\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n id=\"myTeamDirectOnlySwitch\"\r\n [checked]=\"showAllSubordinates()\"\r\n (change)=\"onToggleChange($event)\"\r\n />\r\n <label [class]=\"switchLabelClass()\" for=\"myTeamDirectOnlySwitch\">\r\n {{ 'ShowAllSubordinates' | translate }}\r\n </label>\r\n </div>\r\n <dx-text-box\r\n [value]=\"searchValue()\"\r\n [placeholder]=\"'Search' | translate\"\r\n [width]=\"'250px'\"\r\n mode=\"search\"\r\n (onValueChanged)=\"onSearchChanged($event.value)\"\r\n ></dx-text-box>\r\n </div>\r\n\r\n <dx-scroll-view\r\n #dataScrollView\r\n [height]=\"500\"\r\n [width]=\"'100%'\"\r\n [elementAttr]=\"{ class: scrollViewClass() }\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n [showScrollbar]=\"'always'\"\r\n [bounceEnabled]=\"false\"\r\n (onReachBottom)=\"onReachBottom($event)\"\r\n >\r\n <div [class]=\"groupedListClass()\">\r\n @if (isDataLoading() && items().length === 0) {\r\n <div [class]=\"loadingContainerClass()\">\r\n <dx-load-indicator [visible]=\"true\" [class]=\"loadingIndicatorClass()\"></dx-load-indicator>\r\n </div>\r\n } @else if (items().length === 0) {\r\n <div [class]=\"emptyStateClass()\">\r\n {{ 'NoDataToDisplay' | translate }}\r\n </div>\r\n } @else {\r\n @for (group of items(); track group.adminUnitName) {\r\n @if (showAllSubordinates()) {\r\n <div [class]=\"groupHeaderClass()\" [innerHTML]=\"group.adminUnitName | highlight: searchValue()\"></div>\r\n }\r\n @for (emp of group.employees; track emp.EmployeeNumber) {\r\n <ng-container *ngTemplateOutlet=\"employeeCardTemplate; context: { $implicit: emp }\"></ng-container>\r\n }\r\n }\r\n @if (isDataLoading()) {\r\n <div [class]=\"loadingContainerClass()\">\r\n <dx-load-indicator [visible]=\"true\" [class]=\"loadingIndicatorClass()\"></dx-load-indicator>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popup>\r\n","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib/my-main-details-widget/my-main-details-widget.component';\r\nexport * from './lib/my-upcoming-events-widget/my-upcoming-events-widget.component';\r\nexport * from './lib/shared/types/common';\r\nexport * from './lib/shared/services/constants.service';\r\nexport * from './lib/shared/components/card-header/card-header.component';\r\nexport * from './lib/my-calendar-widget/my-calendar-widget.component';\r\nexport * from './lib/shared/components/hr-employee-calendar/hr-employee-calendar.component';\r\nexport * from './lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component';\r\nexport * from './lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component';\r\nexport * from './lib/my-profile/contact-widget/my-profile-contact-widget.component';\r\nexport * from './lib/my-profile/languages-widget/my-profile-languages-widget.component';\r\nexport * from './lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component';\r\nexport * from './lib/my-profile/address-widget/my-profile-address-widget.component';\r\nexport * from './lib/my-profile/job-info-widget/my-profile-job-info-widget.component';\r\nexport * from './lib/my-profile/contract-widget/my-profile-contract-widget.component';\r\nexport * from './lib/my-profile/salary-widget/my-profile-salary-widget.component';\r\nexport * from './lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component';\r\nexport * from './lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component';\r\nexport * from './lib/my-profile/experiences-widget/my-profile-experiences-widget-component';\r\nexport * from './lib/my-profile/degrees-widget/my-profile-degrees-widget-component';\r\nexport * from './lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component';\r\nexport * from './lib/my-profile/vacations-widget/my-profile-vacations-widget.component';\r\nexport * from './lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component';\r\nexport * from './lib/my-profile/ticket-widget/my-profile-ticket-widget.component';\r\nexport * from './lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component';\r\nexport * from './lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component';\r\nexport * from './lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget';\r\nexport * from './lib/my-profile/official-documents-widget/my-profile-official-documents-widget';\r\nexport * from './lib/shared/services/translate.service';\r\nexport * from './lib/shared/pipes/translate.pipe';\r\nexport * from './lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-subordinates-popup.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HRTranslateService","i2.BankInformationCacheService","i3.EntitlementsCacheService","i4.JobInformationCacheService","i5.PersonalInformationCacheService","i6.QualificationsCacheService","i7.ProfileEmployeeDependentsCach","i8.ProfileDocumentsCacheService","i1.HRSelfWidgetsService","i2.HRConstantsService","i3.HRTranslatePipe","i4","i1","i1.HRTranslatePipe","i2","i1.HRCommonMethodsService","i2.HRSelfWidgetsService","i3","i2.HRCommonMethodsService","i2.HRTranslatePipe","faPhone"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skysoftware-co-bayan-hr-widgets-ui.mjs","sources":["../../../projects/shared-ui/src/lib/shared/types/common.ts","../../../projects/shared-ui/src/lib/shared/services/translate.service.ts","../../../projects/shared-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/shared-ui/src/lib/shared/services/bank-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/entitlements-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/job-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/personal-information-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/qualifications-cache.service.ts","../../../projects/shared-ui/src/lib/shared/services/profile-employee-dependents-cach.ts","../../../projects/shared-ui/src/lib/shared/services/profile-documents-cache-service.ts","../../../projects/shared-ui/src/lib/services/hr-self-widgets.service.ts","../../../projects/shared-ui/src/lib/shared/services/constants.service.ts","../../../projects/shared-ui/src/lib/my-main-details-widget/my-main-details-widget.component.ts","../../../projects/shared-ui/src/lib/my-main-details-widget/my-main-details-widget.component.html","../../../projects/shared-ui/src/lib/shared/components/card-header/card-header.component.ts","../../../projects/shared-ui/src/lib/shared/components/card-header/card-header.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-item/event-item.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-item/event-item.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-tab-bar/event-tab-bar.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/event-tab-bar/event-tab-bar.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/events-popup/events-popup.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/components/events-popup/events-popup.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/my-upcoming-events-widget.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/my-upcoming-events-widget.component.html","../../../projects/shared-ui/src/lib/shared/services/common-methods.service.ts","../../../projects/shared-ui/src/lib/shared/components/hr-employee-calendar/hr-employee-calendar.component.ts","../../../projects/shared-ui/src/lib/shared/components/hr-employee-calendar/hr-employee-calendar.component.html","../../../projects/shared-ui/src/lib/my-calendar-widget/my-calendar-widget.component.ts","../../../projects/shared-ui/src/lib/my-calendar-widget/my-calendar-widget.component.html","../../../projects/shared-ui/src/lib/shared/components/info-field/info-field.component.ts","../../../projects/shared-ui/src/lib/shared/components/info-field/info-field.component.html","../../../projects/shared-ui/src/lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/contact-widget/my-profile-contact-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/contact-widget/my-profile-contact-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/languages-widget/my-profile-languages-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/languages-widget/my-profile-languages-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/address-widget/my-profile-address-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/address-widget/my-profile-address-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/job-info-widget/my-profile-job-info-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/job-info-widget/my-profile-job-info-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/contract-widget/my-profile-contract-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/contract-widget/my-profile-contract-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/salary-widget/my-profile-salary-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/salary-widget/my-profile-salary-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component.html","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component.ts","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component.html","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component.ts","../../../projects/shared-ui/src/lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/experiences-widget/my-profile-experiences-widget-component.ts","../../../projects/shared-ui/src/lib/my-profile/experiences-widget/my-profile-experiences-widget-component.html","../../../projects/shared-ui/src/lib/my-profile/degrees-widget/my-profile-degrees-widget-component.ts","../../../projects/shared-ui/src/lib/my-profile/degrees-widget/my-profile-degrees-widget-component.html","../../../projects/shared-ui/src/lib/shared/components/widget-card/widget-card-component.ts","../../../projects/shared-ui/src/lib/shared/components/widget-card/widget-card-component.html","../../../projects/shared-ui/src/lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component.ts","../../../projects/shared-ui/src/lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component.html","../../../projects/shared-ui/src/lib/my-profile/vacations-widget/my-profile-vacations-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/vacations-widget/my-profile-vacations-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/components/ticket-card/ticket-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/components/ticket-card/ticket-card.component.html","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/my-profile-ticket-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/ticket-widget/my-profile-ticket-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/components/medical-insurance-card/medical-insurance-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/components/medical-insurance-card/medical-insurance-card.component.html","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component.ts","../../../projects/shared-ui/src/lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-row/document-row.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-row/document-row.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-card/document-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-card/document-card.component.html","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-tablet-card/document-tablet-card.component.ts","../../../projects/shared-ui/src/lib/my-profile/documents-widgets/components/document-tablet-card/document-tablet-card.component.html","../../../projects/shared-ui/src/lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget.ts","../../../projects/shared-ui/src/lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget.html","../../../projects/shared-ui/src/lib/my-profile/official-documents-widget/my-profile-official-documents-widget.ts","../../../projects/shared-ui/src/lib/my-profile/official-documents-widget/my-profile-official-documents-widget.html","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/employee-main-info-card/employee-information-card.component.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/employee-main-info-card/employee-main-info-card.component.html","../../../projects/shared-ui/src/lib/shared/services/my-team-popup.service.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-popup.component.ts","../../../projects/shared-ui/src/lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-popup.component.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/skysoftware-co-bayan-hr-widgets-ui.ts"],"sourcesContent":["export type MyMainDetailsWidgetDetails = {\r\n EmployeeNumber: string;\r\n EmployeeName: string;\r\n EmployeeNameInitials: string;\r\n PositionName: string;\r\n GradeName: string | null;\r\n PhotoPath: string | null;\r\n ReportingTo: string | null;\r\n ServiceYears: string;\r\n VacationBalances: VacationBalance[];\r\n AttendanceUrl: string | null;\r\n VacationStatementUrl: string | null;\r\n}\r\n\r\nexport type VacationBalance = {\r\n VacationTypeName: string,\r\n VacationTypeColor: string,\r\n CurrentBalance: number | null\r\n}\r\n\r\nexport enum MainWidgetShortcut {\r\n Profile,\r\n PaySlip,\r\n Attendance,\r\n VacationStatement,\r\n Loans\r\n} \r\n\r\nexport enum EventOption {\r\n Birthday = 1,\r\n PublicHoliday = 2,\r\n All = 3\r\n}\r\n\r\nexport enum RelativeDay {\r\n Today = 0,\r\n Tomorrow = 1,\r\n TwoDays = 2\r\n}\r\n\r\nexport enum PublicHolidayWeekContext {\r\n ThisWeek = 0,\r\n NextWeek = 1\r\n}\r\n\r\nexport type Birthday = {\r\n EmployeePropertySymbol: string;\r\n EmployeePropertyName: string;\r\n EmployeeShortName: string;\r\n Birthdate: Date;\r\n RelativeDay: RelativeDay;\r\n}\r\n\r\nexport type PublicHoliday = {\r\n StartDate: Date;\r\n EndDate: Date;\r\n Description: string;\r\n WeekContext: PublicHolidayWeekContext;\r\n}\r\n\r\nexport type UpcomingEventsV2 = {\r\n Birthdays: Birthday[];\r\n PublicHolidays: PublicHoliday[];\r\n IsWeekendConfigured: boolean;\r\n}\r\n\r\n\r\nexport enum EventTypeEnum {\r\n Birthdays = 1,\r\n PublicHolidays = 2\r\n}\r\n\r\nexport type FilteredUpcomingEvent = {\r\n EventDate: Date;\r\n Name: string;\r\n EventType: EventTypeEnum;\r\n Description: string;\r\n StartDate?: Date;\r\n EndDate?: Date;\r\n IsIn2Days?: boolean;\r\n PropertyName?: string;\r\n PropertySymbol?: string;\r\n}\r\n\r\n// Calendar types\r\n\r\nexport type DatePeriod = {\r\n StartDate: Date;\r\n EndDate: Date;\r\n}\r\n\r\nexport type CalendarResponse = {\r\n OffDays: Date[];\r\n PublicHolidays: { Description: string; StartDate: Date; EndDate: Date }[];\r\n Vacations: { VacationTypeName: string; Color: string; StartDate: Date; EndDate: Date }[];\r\n Events: { Description: string; StartDate: Date; EndDate: Date }[];\r\n}\r\n\r\nexport type ScheduleCalenderVacation = {\r\n Color: string | null;\r\n VacationType: ScheduleVacationTypes;\r\n Description: string;\r\n VacationDays: DatePeriod;\r\n}\r\n\r\nexport enum ScheduleVacationTypes {\r\n DaysOff = 1,\r\n PublicHoliday = 2,\r\n Vacations = 3,\r\n AddedVacations = 4,\r\n Events = 5\r\n}\r\n\r\nexport type PersonalInfoMainDetails = {\r\nEmployeeName: string | null;\r\nEmployeeNameAlternate: string | null;\r\nNationalityName: string | null;\r\nNationalNumber: string | null;\r\nSocialSecurityNumber: string | null;\r\nMaritalStateName: string | null;\r\nBirthDate: string | Date | null;\r\nBirthPlace: string | null;\r\nBloodTypeCode: string | null;\r\nReligionName: string | null;\r\nMinistryOfLaborNumber: string | null;\r\n};\r\n\r\nexport type PersonalInfoContactEmergencyContact = {\r\nName: string | null;\r\nRelation: string | null;\r\nPhoneNumber: string | null;\r\n};\r\n\r\nexport type PersonalInfoContactDetails = {\r\nMobileNumber: string | null;\r\nHomePhone: string | null;\r\nBusinessEmail: string | null;\r\nEmail: string | null;\r\nEmergencyContactLegacy: string | null;\r\nEmergencyContact: PersonalInfoContactEmergencyContact | null;\r\n};\r\n\r\nexport type PersonalInfoAddressDetails = {\r\nAddress: string | null;\r\nCity: string | null;\r\nPOBox: string | null;\r\nPostalCode: string | null;\r\n};\r\n\r\nexport type MyBankInfo = {\r\nIsMainBank: boolean;\r\nBankName: string | null;\r\nBranchName: string | null;\r\nIBAN: string | null;\r\nAccountNumber: string | null;\r\nBeneficiary: string | null;\r\nTransferAmount: number | null;\r\n};\r\n\r\nexport type JobInformationMain = {\r\n AdminUnitName: string | null;\r\n PositionName: string | null;\r\n GradeName: string | null;\r\n JoiningDate: Date | null;\r\n CorporateJoiningDate: Date | null;\r\n SponsorName: string | null;\r\n}\r\n\r\n\r\nexport type JobInformationContract = {\r\n ContractTypeName: string | null;\r\n ContractStartDate: Date | null;\r\n ContractEndDate: Date | null;\r\n ContractMaritalStateName: string | null;\r\n ContractDependentsCount: number | null;\r\n}\r\n\r\nexport type JobInformationSalary = {\r\n GrossSalary: number | null;\r\n BasicSalary: number | null;\r\n CurrentBasicSalary?: number | null;\r\n Allowances: Allowances[] | null;\r\n}\r\nexport type Allowances = {\r\n AllowanceName: string | null;\r\n AllowanceAmount: number | null;\r\n\r\n}\r\n\r\nexport enum ServiceChargeEntitlementMode {\r\n Points = 1,\r\n SalaryRatio = 2,\r\n FixedAmount = 3,\r\n FixedRate = 4\r\n}\r\n\r\n\r\nexport type JobInformationServiceCharge = {\r\n ServiceChargeEntitlementMode: ServiceChargeEntitlementMode;\r\n ServiceChargeValue: number | null;\r\n}\r\n\r\n export enum VacationPopupType {\r\n Upcoming = 1,\r\n ExpectedToReturn = 2\r\n}\r\nexport type ScheduleRequestsResponse = {\r\n PendingVacationRequests: { VacationTypeName: string; Color: string; StartDate: Date; EndDate: Date }[];\r\n PendingEventRequests: { Description: string; StartDate: Date; EndDate: Date }[];\r\n}\r\n\r\nexport type EntitlementsVacation = {\r\n VacationTypeName: string | null;\r\n EntitlementDays: number | null;\r\n};\r\n\r\nexport type EntitlementsIndemnity = {\r\n IsEligibleForIndemnity: boolean | null;\r\n IndemnityServiceYears: number | null;\r\n IndemnityStartDate: string | Date | null;\r\n IndemnitySalary: number | null;\r\n};\r\n\r\nexport type EmployeeTicketDetails = {\r\n EmployeeFirstName: string | null;\r\n TicketSectorName: string | null;\r\n TicketClassName: string | null;\r\n MonthsPerTicketEntitlement: number | null;\r\n};\r\n\r\nexport type DependentTicketDetails = {\r\n DependentName: string | null;\r\n DependentTypeName: string | null;\r\n MonthsPerTicketEntitlement: number | null;\r\n};\r\n\r\nexport type EntitlementsTicket = {\r\n EmployeeTicketDetails: EmployeeTicketDetails | null;\r\n DependentTicketDetails: DependentTicketDetails[] | null;\r\n};\r\n\r\nexport type EmployeeMedicalInsurance = {\r\n EmployeeFirstName: string | null;\r\n MedicalInsuranceClassName: string | null;\r\n MedicalInsuranceNumber: string | null;\r\n CoverageDate: Date | null;\r\n};\r\n\r\nexport type DependentsMedicalInsurance = {\r\n DependentName: string | null;\r\n DependentTypeName: string | null;\r\n MedicalInsuranceClassName: string | null;\r\n MedicalInsuranceNumber: string | null;\r\n CoverageDate: Date | null;\r\n};\r\n\r\nexport type EntitlementsMedicalInsurance = {\r\n EmployeeMedicalInsurance: EmployeeMedicalInsurance | null;\r\n DependentsMedicalInsurance: DependentsMedicalInsurance[] | null;\r\n TotalEmployeeShare: number | null;\r\n TotalEmployerShare: number | null;\r\n};\r\n\r\nexport type Degree = {\r\n DegreeName: string;\r\n DegreeYear: string;\r\n CountryName: string;\r\n Specialty: string | null;\r\n Institute: string | null;\r\n Document: DocumentModel | null;\r\n};\r\n \r\nexport type Experience = {\r\n StartDate: string | Date;\r\n EndDate: string | Date;\r\n Employer: string;\r\n Position: string;\r\n TerminationReason: string;\r\n Document: DocumentModel | null;\r\n};\r\n\r\nexport type DocumentModel = {\r\n Key: string;\r\n ContentType: string;\r\n};\r\n\r\n\r\nexport type Dependent = {\r\n DependentName: string;\r\n DependentTypeName: string;\r\n BirthDate: string | Date;\r\n NationalNumber: string | null;\r\n};\r\n\r\nexport interface DependentDocumentsResponse {\r\n ResponseData: DependentDocumentGroup[];\r\n ApiVersion: string;\r\n}\r\n\r\nexport interface DependentDocumentGroup {\r\n DependentName: string;\r\n DependentTypeName: string;\r\n Documents: DocumentRow[];\r\n}\r\n\r\nexport interface DocumentRow {\r\n DocumentTypeName: string;\r\n DocumentNumber: string;\r\n IssueDate: string;\r\n ExpiryDate: string;\r\n Attachments: Attachment[];\r\n}\r\n\r\nexport interface Attachment {\r\n Key: string;\r\n ContentType: string;\r\n}\r\n\r\nexport interface PersonalDocument {\r\n DocumentTypeName: string;\r\n DocumentNumber: string;\r\n IssueDate: string;\r\n ExpiryDate: string;\r\n Attachments: Attachment[];\r\n}\r\n\r\nexport type SubordinateDTO = {\r\n EmployeeNumber: string;\r\n EmployeeName: string;\r\n EmployeeNameInitials: string;\r\n PositionName: string;\r\n GradeName: string;\r\n PhotoPath: string;\r\n PropertyName?: string;\r\n PropertySymbol?: string;\r\n AdminUnitName?: string;\r\n MobileNumber?: string;\r\n PersonalEmail?: string;\r\n BusinessEmail?: string;\r\n};\r\n\r\nexport type SubordinatesPaginationDTO = {\r\n PageIndex: number;\r\n PageSize: number;\r\n TotalPages: number;\r\n TotalCount: number;\r\n};\r\n\r\nexport type SubordinatesApiResponse = {\r\n Data: SubordinateDTO[];\r\n Pagination: SubordinatesPaginationDTO;\r\n};\r\n\r\nexport type EmployeeMainInfo = {\r\n EmployeeNumber: string,\r\n EmployeeName: string,\r\n PhotoKey: string,\r\n PositionName: string,\r\n AdminUnitName: string,\r\n GradeName: string | null,\r\n PropertyName: string,\r\n PropertySymbol: string,\r\n EmployeeNameInitials: string\r\n}","import { Injectable } from '@angular/core';\r\nimport en from '../../../assets/i18n/en.json';\r\nimport ar from '../../../assets/i18n/ar.json';\r\nimport fr from '../../../assets/i18n/fr.json';\r\n\r\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar, fr };\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HRTranslateService {\r\n private currentLanguage: string = 'en';\r\n private lexicon: Record<string, string> = {};\r\n\r\n setLanguage(language: string): void {\r\n this.currentLanguage = language;\r\n }\r\n\r\n getLanguage(): string {\r\n return this.currentLanguage;\r\n }\r\n\r\n setLexicon(lexicon: Record<string, string>): void {\r\n this.lexicon = lexicon;\r\n }\r\n\r\n getLexicon(): Record<string, string> {\r\n return this.lexicon;\r\n }\r\n\r\n translateBuiltIn(key: string): string {\r\n if (!key) return '';\r\n const builtIn = BUILT_IN_LEXICONS[this.currentLanguage] || {};\r\n const foundKey = Object.keys(builtIn).find(k => k.toLowerCase() === key.toLowerCase());\r\n return foundKey ? builtIn[foundKey] : key;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HRTranslateService } from '../services/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class HRTranslatePipe implements PipeTransform {\r\n constructor(private readonly payrollTranslateService: HRTranslateService) {}\r\n\r\n transform(key?: string): string {\r\n if (!key) return '';\r\n\r\n key = this.payrollTranslateService.translateBuiltIn(key);\r\n\r\n const lexicon = this.payrollTranslateService.getLexicon();\r\n let foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === key!.toLowerCase());\r\n if (foundKey) return lexicon[foundKey];\r\n\r\n const arrKey = key.split(' ');\r\n let keyValue = '';\r\n for (let i = 0; i < arrKey.length; i++) {\r\n if (i !== 0) keyValue += ' ';\r\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\r\n if (foundKey) {\r\n keyValue += lexicon[foundKey];\r\n } else {\r\n keyValue += arrKey[i];\r\n }\r\n }\r\n\r\n return keyValue;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { MyBankInfo } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BankInformationCacheService {\r\n private bankInformationCache$: Observable<MyBankInfo[]> | null = null;\r\n private bankInformationCacheBaseUrl = '';\r\n\r\n get(baseUrl: string): Observable<MyBankInfo[]> | null {\r\n if (this.bankInformationCacheBaseUrl !== baseUrl) {\r\n return null;\r\n }\r\n\r\n return this.bankInformationCache$;\r\n }\r\n\r\n set(baseUrl: string, value: Observable<MyBankInfo[]>): void {\r\n this.bankInformationCacheBaseUrl = baseUrl;\r\n this.bankInformationCache$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.bankInformationCache$ = null;\r\n this.bankInformationCacheBaseUrl = '';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n EntitlementsIndemnity,\r\n EntitlementsMedicalInsurance,\r\n EntitlementsTicket,\r\n EntitlementsVacation\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntitlementsCacheService {\r\n private baseUrl = '';\r\n\r\n private vacationDetails$: Observable<EntitlementsVacation[]| null> | null = null;\r\n private indemnityDetails$: Observable<EntitlementsIndemnity | null> | null = null;\r\n private ticketDetails$: Observable<EntitlementsTicket | null> | null = null;\r\n private medicalInsuranceDetails$: Observable<EntitlementsMedicalInsurance | null> | null = null;\r\n private overtimeDetails$: Observable<any> | null = null;\r\n private socialSecurityDetails$: Observable<any> | null = null;\r\n\r\n getVacationDetails(baseUrl: string): Observable<EntitlementsVacation[] | null> | null {\r\n return this.baseUrl === baseUrl ? this.vacationDetails$ : null;\r\n }\r\n\r\n setVacationDetails(baseUrl: string, value: Observable<EntitlementsVacation[] | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.vacationDetails$ = value;\r\n }\r\n\r\n getIndemnityDetails(baseUrl: string): Observable<EntitlementsIndemnity | null> | null {\r\n return this.baseUrl === baseUrl ? this.indemnityDetails$ : null;\r\n }\r\n\r\n setIndemnityDetails(baseUrl: string, value: Observable<EntitlementsIndemnity | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.indemnityDetails$ = value;\r\n }\r\n\r\n getTicketDetails(baseUrl: string): Observable<EntitlementsTicket | null> | null {\r\n return this.baseUrl === baseUrl ? this.ticketDetails$ : null;\r\n }\r\n\r\n setTicketDetails(baseUrl: string, value: Observable<EntitlementsTicket | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.ticketDetails$ = value;\r\n }\r\n\r\n getMedicalInsuranceDetails(baseUrl: string): Observable<EntitlementsMedicalInsurance | null> | null {\r\n return this.baseUrl === baseUrl ? this.medicalInsuranceDetails$ : null;\r\n }\r\n\r\n setMedicalInsuranceDetails(baseUrl: string, value: Observable<EntitlementsMedicalInsurance | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.medicalInsuranceDetails$ = value;\r\n }\r\n\r\n getOvertimeDetails(baseUrl: string): Observable<any> | null {\r\n return this.baseUrl === baseUrl ? this.overtimeDetails$ : null;\r\n }\r\n\r\n setOvertimeDetails(baseUrl: string, value: Observable<any>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.overtimeDetails$ = value;\r\n }\r\n\r\n getSocialSecurityDetails(baseUrl: string): Observable<any> | null {\r\n return this.baseUrl === baseUrl ? this.socialSecurityDetails$ : null;\r\n }\r\n\r\n setSocialSecurityDetails(baseUrl: string, value: Observable<any>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.socialSecurityDetails$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.vacationDetails$ = null;\r\n this.indemnityDetails$ = null;\r\n this.ticketDetails$ = null;\r\n this.medicalInsuranceDetails$ = null;\r\n this.overtimeDetails$ = null;\r\n this.socialSecurityDetails$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n JobInformationContract,\r\n JobInformationMain,\r\n JobInformationSalary,\r\n JobInformationServiceCharge\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JobInformationCacheService {\r\n private baseUrl = '';\r\n\r\n private mainDetails$: Observable<JobInformationMain | null> | null = null;\r\n private contractDetails$: Observable<JobInformationContract | null> | null = null;\r\n private salaryDetails$: Observable<JobInformationSalary | null> | null = null;\r\n private serviceChargeDetails$: Observable<JobInformationServiceCharge | null> | null = null;\r\n\r\n getMainDetails(baseUrl: string): Observable<JobInformationMain | null> | null {\r\n return this.baseUrl === baseUrl ? this.mainDetails$ : null;\r\n }\r\n\r\n setMainDetails(baseUrl: string, value: Observable<JobInformationMain | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.mainDetails$ = value;\r\n }\r\n\r\n getContractDetails(baseUrl: string): Observable<JobInformationContract | null> | null {\r\n return this.baseUrl === baseUrl ? this.contractDetails$ : null;\r\n }\r\n\r\n setContractDetails(baseUrl: string, value: Observable<JobInformationContract | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.contractDetails$ = value;\r\n }\r\n\r\n getSalaryDetails(baseUrl: string): Observable<JobInformationSalary | null> | null {\r\n return this.baseUrl === baseUrl ? this.salaryDetails$ : null;\r\n }\r\n\r\n setSalaryDetails(baseUrl: string, value: Observable<JobInformationSalary | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.salaryDetails$ = value;\r\n }\r\n\r\n getServiceChargeDetails(baseUrl: string): Observable<JobInformationServiceCharge | null> | null {\r\n return this.baseUrl === baseUrl ? this.serviceChargeDetails$ : null;\r\n }\r\n\r\n setServiceChargeDetails(baseUrl: string, value: Observable<JobInformationServiceCharge | null>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.serviceChargeDetails$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.mainDetails$ = null;\r\n this.contractDetails$ = null;\r\n this.salaryDetails$ = null;\r\n this.serviceChargeDetails$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PersonalInformationCacheService {\r\n private baseUrl = '';\r\n\r\n private mainDetails$: Observable<PersonalInfoMainDetails> | null = null;\r\n private contactDetails$: Observable<PersonalInfoContactDetails> | null = null;\r\n private addressDetails$: Observable<PersonalInfoAddressDetails> | null = null;\r\n private languages$: Observable<string[]> | null = null;\r\n private otherNationalities$: Observable<string[]> | null = null;\r\n\r\n getMainDetails(baseUrl: string): Observable<PersonalInfoMainDetails> | null {\r\n return this.baseUrl === baseUrl ? this.mainDetails$ : null;\r\n }\r\n\r\n setMainDetails(baseUrl: string, value: Observable<PersonalInfoMainDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.mainDetails$ = value;\r\n }\r\n\r\n getContactDetails(baseUrl: string): Observable<PersonalInfoContactDetails> | null {\r\n return this.baseUrl === baseUrl ? this.contactDetails$ : null;\r\n }\r\n\r\n setContactDetails(baseUrl: string, value: Observable<PersonalInfoContactDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.contactDetails$ = value;\r\n }\r\n\r\n getAddressDetails(baseUrl: string): Observable<PersonalInfoAddressDetails> | null {\r\n return this.baseUrl === baseUrl ? this.addressDetails$ : null;\r\n }\r\n\r\n setAddressDetails(baseUrl: string, value: Observable<PersonalInfoAddressDetails>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.addressDetails$ = value;\r\n }\r\n\r\n getLanguages(baseUrl: string): Observable<string[]> | null {\r\n return this.baseUrl === baseUrl ? this.languages$ : null;\r\n }\r\n\r\n setLanguages(baseUrl: string, value: Observable<string[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.languages$ = value;\r\n }\r\n\r\n getOtherNationalities(baseUrl: string): Observable<string[]> | null {\r\n return this.baseUrl === baseUrl ? this.otherNationalities$ : null;\r\n }\r\n\r\n setOtherNationalities(baseUrl: string, value: Observable<string[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.otherNationalities$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.mainDetails$ = null;\r\n this.contactDetails$ = null;\r\n this.addressDetails$ = null;\r\n this.languages$ = null;\r\n this.otherNationalities$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Degree, Experience } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QualificationsCacheService {\r\n private baseUrl = '';\r\n\r\n private degrees$: Observable<Degree[]> | null = null;\r\n private experiences$: Observable<Experience[]> | null = null;\r\n\r\n getDegrees(baseUrl: string): Observable<Degree[]> | null {\r\n return this.baseUrl === baseUrl ? this.degrees$ : null;\r\n }\r\n\r\n setDegrees(baseUrl: string, value: Observable<Degree[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.degrees$ = value;\r\n }\r\n\r\n getExperiences(baseUrl: string): Observable<Experience[]> | null {\r\n return this.baseUrl === baseUrl ? this.experiences$ : null;\r\n }\r\n\r\n setExperiences(baseUrl: string, value: Observable<Experience[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.experiences$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.degrees$ = null;\r\n this.experiences$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n Dependent,\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileEmployeeDependentsCach {\r\n private baseUrl = '';\r\n\r\n private dependents$: Observable<Dependent[]> | null = null;\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n }\r\n\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n setDependents(baseUrl: string, value: Observable<Dependent[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.dependents$ = value;\r\n }\r\n\r\n getDependents(baseUrl: string): Observable<Dependent[]> | null {\r\n return this.baseUrl === baseUrl ? this.dependents$ : null;\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { DependentDocumentGroup, PersonalDocument } from '../types/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileDocumentsCacheService {\r\n private baseUrl = '';\r\n\r\n private dependentDocuments$: Observable<DependentDocumentGroup[]> | null = null;\r\n private personalDocuments$: Observable<PersonalDocument[]> | null = null;\r\n\r\n\r\n getDependentDocuments(baseUrl: string): Observable<DependentDocumentGroup[]> | null {\r\n return this.baseUrl === baseUrl ? this.dependentDocuments$ : null;\r\n }\r\n\r\n setDependentDocuments(baseUrl: string, value: Observable<DependentDocumentGroup[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.dependentDocuments$ = value;\r\n }\r\n\r\n getPersonalDocuments(baseUrl: string): Observable<PersonalDocument[]> | null {\r\n return this.baseUrl === baseUrl ? this.personalDocuments$ : null;\r\n }\r\n\r\n setPersonalDocuments(baseUrl: string, value: Observable<PersonalDocument[]>): void {\r\n this.ensureBaseUrl(baseUrl);\r\n this.personalDocuments$ = value;\r\n }\r\n\r\n clear(): void {\r\n this.baseUrl = '';\r\n this.dependentDocuments$ = null;\r\n this.personalDocuments$ = null;\r\n }\r\n\r\n private ensureBaseUrl(baseUrl: string): void {\r\n if (this.baseUrl && this.baseUrl !== baseUrl) {\r\n this.clear();\r\n }\r\n this.baseUrl = baseUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, catchError, map, shareReplay, throwError } from 'rxjs';\r\nimport {\r\n Degree,\r\n Dependent,\r\n DependentDocumentGroup,\r\n DocumentRow,\r\n EntitlementsIndemnity,\r\n EntitlementsMedicalInsurance,\r\n EntitlementsTicket,\r\n EntitlementsVacation,\r\n EventOption,\r\n Experience,\r\n JobInformationContract,\r\n JobInformationMain,\r\n JobInformationSalary,\r\n JobInformationServiceCharge,\r\n MyBankInfo,\r\n PersonalInfoAddressDetails,\r\n PersonalInfoContactDetails,\r\n PersonalInfoMainDetails\r\n} from '../shared/types/common';\r\nimport { BankInformationCacheService } from '../shared/services/bank-information-cache.service';\r\nimport { EntitlementsCacheService } from '../shared/services/entitlements-cache.service';\r\nimport { JobInformationCacheService } from '../shared/services/job-information-cache.service';\r\nimport { PersonalInformationCacheService } from '../shared/services/personal-information-cache.service';\r\nimport { QualificationsCacheService } from '../shared/services/qualifications-cache.service';\r\nimport { ProfileEmployeeDependentsCach } from '../shared/services/profile-employee-dependents-cach';\r\nimport { ProfileDocumentsCacheService } from '../shared/services/profile-documents-cache-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HRSelfWidgetsService {\r\n\r\n private readonly headers = { 'api-version': '1' };\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private readonly bankInformationCacheService: BankInformationCacheService,\r\n private readonly entitlementsCacheService: EntitlementsCacheService,\r\n private readonly jobInformationCacheService: JobInformationCacheService,\r\n private readonly personalInformationCacheService: PersonalInformationCacheService,\r\n private readonly qualificationsCacheService: QualificationsCacheService,\r\n private readonly profileEmployeeDependentsCachService: ProfileEmployeeDependentsCach,\r\n private readonly profileDocumentsCacheService: ProfileDocumentsCacheService\r\n\r\n\r\n ) { }\r\n\r\n getMainDetails(baseUrl: string): Observable<any> {\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/main-details`, {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getUpcomingEvents(baseUrl: string, eventOption: EventOption): Observable<any> {\r\n const params = new HttpParams().set('EventOption', eventOption);\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/upcoming-events`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getCalendar(baseUrl: string, month: number, year: number, monthsCount: number): Observable<any> {\r\n const params = new HttpParams()\r\n .set('Month', month)\r\n .set('Year', year)\r\n .set('MonthsCount', monthsCount);\r\n\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/calendar`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getBankInformation(baseUrl: string, forceRefresh = false): Observable<MyBankInfo[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.bankInformationCacheService.get(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: MyBankInfo[] }>(`${baseUrl}/hr/widgets/me/profile/banks`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.bankInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.bankInformationCacheService.set(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoMainDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoMainDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getMainDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoMainDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/main`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoMainDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setMainDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoContactDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoContactDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getContactDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoContactDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/contact`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoContactDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setContactDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoAddressDetails(baseUrl: string, forceRefresh = false): Observable<PersonalInfoAddressDetails> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getAddressDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: PersonalInfoAddressDetails }>(`${baseUrl}/hr/widgets/me/profile/personal-information/address`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as PersonalInfoAddressDetails)),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setAddressDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoLanguages(baseUrl: string, forceRefresh = false): Observable<string[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getLanguages(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: string[] }>(`${baseUrl}/hr/widgets/me/profile/personal-information/languages`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as string[]) ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setLanguages(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getPersonalInfoOtherNationalities(baseUrl: string, forceRefresh = false): Observable<string[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.personalInformationCacheService.getOtherNationalities(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: string[] }>(`${baseUrl}/hr/widgets/me/profile/personal-information/other-nationalities`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? (response as unknown as string[]) ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.personalInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.personalInformationCacheService.setOtherNationalities(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationMain(baseUrl: string, forceRefresh = false): Observable<JobInformationMain | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getMainDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationMain }>(`${baseUrl}/hr/widgets/me/profile/job-information/main`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setMainDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationContract(baseUrl: string, forceRefresh = false): Observable<JobInformationContract | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getContractDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationContract }>(`${baseUrl}/hr/widgets/me/profile/job-information/contract`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setContractDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationSalary(baseUrl: string, forceRefresh = false): Observable<JobInformationSalary | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getSalaryDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationSalary }>(`${baseUrl}/hr/widgets/me/profile/job-information/salary`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setSalaryDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getJobInformationServiceCharge(baseUrl: string, forceRefresh = false): Observable<JobInformationServiceCharge | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.jobInformationCacheService.getServiceChargeDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: JobInformationServiceCharge }>(`${baseUrl}/hr/widgets/me/profile/job-information/service-charge`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.jobInformationCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.jobInformationCacheService.setServiceChargeDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n clearPersonalInformationCache(): void {\r\n this.personalInformationCacheService.clear();\r\n }\r\n\r\n clearJobInformationCache(): void {\r\n this.jobInformationCacheService.clear();\r\n }\r\n\r\n getVacationSummary(baseUrl: string): Observable<any> {\r\n const params = new HttpParams().set('ShowDirectSubordinatesOnly', 'false');\r\n return this.http.get<any>(`${baseUrl}/hr/widgets/me/team/next-week-vacation-insights/summary`, {\r\n params,\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getEntitlementsVacations(baseUrl: string, forceRefresh = false): Observable<EntitlementsVacation[] | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getVacationDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsVacation[] | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/vacations`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setVacationDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsIndemnity(baseUrl: string, forceRefresh = false): Observable<EntitlementsIndemnity | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getIndemnityDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsIndemnity | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/indemnity`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setIndemnityDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsTicket(baseUrl: string, forceRefresh = false): Observable<EntitlementsTicket | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getTicketDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsTicket | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/ticket`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setTicketDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsMedicalInsurance(baseUrl: string, forceRefresh = false): Observable<EntitlementsMedicalInsurance | null> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getMedicalInsuranceDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: EntitlementsMedicalInsurance | null }>(`${baseUrl}/hr/widgets/me/profile/entitlements/medical-insurance`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n map((response) => response?.ResponseData ?? null),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setMedicalInsuranceDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsOvertime(baseUrl: string, forceRefresh = false): Observable<any> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getOvertimeDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<any>(`${baseUrl}/hr/widgets/me/profile/entitlements/overtime`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setOvertimeDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEntitlementsSocialSecurity(baseUrl: string, forceRefresh = false): Observable<any> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.entitlementsCacheService.getSocialSecurityDetails(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<any>(`${baseUrl}/hr/widgets/me/profile/entitlements/social-security`, {\r\n headers: this.headers\r\n })\r\n .pipe(\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.entitlementsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.entitlementsCacheService.setSocialSecurityDetails(baseUrl, request$);\r\n return request$;\r\n }\r\n\r\n getEmployeeDegrees(baseUrl: string, forceRefresh = false): Observable<Degree[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.qualificationsCacheService.getDegrees(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Degree[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/qualifications/degrees`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.qualificationsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.qualificationsCacheService.setDegrees(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n getEmployeeDependents(baseUrl: string, forceRefresh = false): Observable<Dependent[]> {\r\n if (!forceRefresh) {\r\n const cachedRequest$ = this.profileEmployeeDependentsCachService.getDependents(baseUrl);\r\n if (cachedRequest$) {\r\n return cachedRequest$;\r\n }\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Dependent[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/dependents`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map((response) => response?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.profileEmployeeDependentsCachService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileEmployeeDependentsCachService.setDependents(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n\r\n getEmployeeExperiences(baseUrl: string, forceRefresh = false): Observable<Experience[]> {\r\n\r\n\r\n\r\n if (!forceRefresh) {\r\n const cached = this.qualificationsCacheService.getExperiences(baseUrl);\r\n if (cached) return cached;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: Experience[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/qualifications/experiences`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError((error) => {\r\n this.qualificationsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n\r\n\r\n this.qualificationsCacheService.setExperiences(baseUrl, request$);\r\n\r\n\r\n\r\n return request$;\r\n }\r\n\r\n getDependentDocuments(baseUrl: string, forceRefresh = false): Observable<DependentDocumentGroup[]> {\r\n\r\n if (!forceRefresh) {\r\n const cached$ = this.profileDocumentsCacheService.getDependentDocuments(baseUrl);\r\n if (cached$) return cached$;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: DependentDocumentGroup[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/documents/dependents`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError(error => {\r\n this.profileDocumentsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileDocumentsCacheService.setDependentDocuments(baseUrl, request$);\r\n\r\n return request$;\r\n }\r\n\r\n getPersonalDocuments(baseUrl: string, forceRefresh = false): Observable<DocumentRow[]> {\r\n if (!forceRefresh) {\r\n const cached$ = this.profileDocumentsCacheService.getPersonalDocuments(baseUrl);\r\n if (cached$) return cached$;\r\n }\r\n\r\n const request$ = this.http\r\n .get<{ ResponseData: DocumentRow[] }>(\r\n `${baseUrl}/hr/widgets/me/profile/documents/personal`,\r\n { headers: this.headers }\r\n )\r\n .pipe(\r\n map(res => res?.ResponseData ?? []),\r\n shareReplay(1),\r\n catchError(error => {\r\n this.profileDocumentsCacheService.clear();\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n this.profileDocumentsCacheService.setPersonalDocuments(baseUrl, request$);\r\n return request$;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRConstantsService {\r\n defaultVacationBalanceColor: string = '#727070';\r\n defaultVacationColor: string = '#DCDCDC';\r\n defaultPublicHolidayColor: string = '#249EA0';\r\n defaultDayOffColor: string = '#FCCF5A';\r\n defaultEventsColor: string = '#e67e0f';\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular';\r\nimport { DecimalPipe, NgClass } from '@angular/common';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { SkyShortcutIconComponent, ShortcutIconDTO } from '@skysoftware-co/sky-components-ui';\r\nimport { MyMainDetailsWidgetDetails, MainWidgetShortcut } from '../shared/types/common';\r\nimport { HRConstantsService } from '../shared/services/constants.service';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-main-details-widget',\r\n standalone: true,\r\n imports: [DxTooltipModule, NgClass, FontAwesomeModule, DecimalPipe, BayanEmployeeBadgeComponent, SkyShortcutIconComponent, HRTranslatePipe],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-main-details-widget.component.html',\r\n})\r\nexport class MyMainDetailsWidgetComponent implements OnInit, OnChanges {\r\n employeeMainInfo: MyMainDetailsWidgetDetails | null = null;\r\n\r\n @Output() onShortcutClicked = new EventEmitter<ShortcutIconDTO>();\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n @Input() badgeClass: string = 'badge employee-rounded-badge-xl fs-5';\r\n @Input() badgeImageClass: string = 'rounded-circle shadow-lg';\r\n @Input() badgeWidth: string = '50px';\r\n @Input() badgeHeight: string = '50px';\r\n @Input() employeeInfoContainerClass: string = 'd-flex align-content-center';\r\n @Input() employeeDetailsClass: string = 'ms-3';\r\n @Input() employeeNameContainerClass: string = 'd-flex align-items-center';\r\n @Input() employeeNameClass: string = 'fs-14 text-dark-gray fw-medium text-ellipsis-one-line';\r\n @Input() employeePositionClass: string = 'fs-12 fw-normal text-dark-gray text-ellipsis-one-line mb-1';\r\n @Input() employeeGradeClass: string = 'fs-12 text-dark-gray';\r\n\r\n @Input() containerClass: string = 'card rounded rounded-4 card-shadow p-16 border-top-0 mb-4';\r\n @Input() cardBodyClass: string = 'card-body p-4';\r\n @Input() headerRowClass: string = 'd-md-flex justify-content-between align-items-center mt-2 mb-3';\r\n\r\n @Input() shortcutsContainerClass: string = 'd-flex justify-content-md-end justify-content-sm-start fs-12 fw-normal text-secondary mt-3 mt-md-0';\r\n @Input() shortcutItemClass: string = 'd-flex flex-column align-items-center mx-2 wp-60';\r\n @Input() shortcutIconContainerClass: string = 'd-flex justify-content-center align-items-center rounded-circle-40 cursor-pointer';\r\n @Input() shortcutIconClass: string = 'fs-4';\r\n @Input() shortcutTextClass: string = 'text-center mt-1';\r\n\r\n @Input() detailsRowClass: string = 'd-flex mt-4';\r\n\r\n @Input() reportingBlockClass: string = 'd-flex text-secondary align-items-center mb-2 mx-2';\r\n @Input() captionLabelClasses: string = 'd-flex flex-column align-self-start fs-14 text-dark-gray';\r\n @Input() captionLabelValueClass: string = 'fw-medium mt-2';\r\n\r\n @Input() vacationBalancesContainerClass: string = 'd-flex text-secondary align-items-center mb-2';\r\n @Input() vacationBalanceItemClass: string = 'd-flex flex-column me-4';\r\n @Input() vacationBalanceHeaderClass: string = 'd-flex align-items-center';\r\n @Input() vacationColorDotClass: string = 'vacation-color-container-sm';\r\n @Input() vacationTypeNameClass: string = 'mx-2 fs-14 fw-normal text-dark-gray';\r\n @Input() vacationBalanceValueRowClass: string = 'd-flex mt-2';\r\n @Input() vacationBalanceValueClass: string = 'mx-2 fw-medium fs-14 text-dark-gray';\r\n\r\n @Input() tooltipTriggerLinkClass: string = 'd-flex align-items-center cursor-pointer';\r\n @Input() tooltipTriggerTextClass: string = 'mx-2 fs-14 text-dark-gray';\r\n\r\n @Input() tooltipVacationRowClass: string = 'd-flex align-items-center justify-content-around fs-12 mb-2';\r\n @Input() tooltipVacationNameContainerClass: string = 'd-flex flex-grow-1 align-items-center me-5';\r\n @Input() tooltipVacationNameClass: string = 'mx-2';\r\n\r\n @Input() defaultVacationBalanceColor: string;\r\n\r\n @Input() defaultVacationColor: string;\r\n\r\n @Input() baseUrl: string = '';\r\n\r\n employeeBadge: BayanEmployeeBadgeDTO = {\r\n EmployeePhotoKey: null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: ''\r\n }\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n @Input() shortcuts: ShortcutIconDTO[] = [];\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private constants: HRConstantsService,\r\n private translatePipe: HRTranslatePipe) {\r\n this.defaultVacationBalanceColor = this.constants.defaultVacationBalanceColor;\r\n this.defaultVacationColor = this.constants.defaultVacationColor;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadEmployeeMainInfo();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['shortcuts']) {\r\n this.shortcuts = this.shortcuts.map(s => ({\r\n ...s,\r\n title: this.translatePipe.transform(s.title)\r\n }));\r\n if (this.employeeMainInfo) {\r\n this.applyShortcutUrls();\r\n }\r\n }\r\n }\r\n\r\n loadEmployeeMainInfo() {\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.getEmployeeMainDetails().subscribe({\r\n next: (data: any) => {\r\n const responses = data.ResponseData;\r\n this.employeeMainInfo = {\r\n EmployeeNumber: responses.EmployeeNumber,\r\n EmployeeName: responses.EmployeeName,\r\n EmployeeNameInitials: responses.EmployeeNameInitials,\r\n PositionName: responses.PositionName,\r\n GradeName: responses.GradeName,\r\n PhotoPath: responses.PhotoPath,\r\n ReportingTo: responses.ReportingToEmployeeName,\r\n ServiceYears: `${responses.ServicePeriod.Years} ${this.translatePipe.transform('Years')} ${responses.ServicePeriod.Months} ${this.translatePipe.transform('Months')}`,\r\n VacationBalances: responses.VacationBalances,\r\n AttendanceUrl: responses.AttendanceReportUrl,\r\n VacationStatementUrl: responses.VacationStatementReportUrl,\r\n };\r\n\r\n this.employeeBadge.EmployeePhotoKey = this.employeeMainInfo.PhotoPath || null;\r\n this.employeeBadge.EmployeeNameInitials = this.employeeMainInfo.EmployeeNameInitials || '';\r\n this.employeeBadge.EmployeePhotoFailed = false;\r\n\r\n this.employeeMainInfo.VacationBalances.forEach(v => {\r\n if (v.VacationTypeColor == null)\r\n v.VacationTypeColor = this.defaultVacationColor;\r\n });\r\n\r\n this.applyShortcutUrls();\r\n\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n if (error.status == 401)\r\n return;\r\n },\r\n });\r\n }\r\n\r\n private applyShortcutUrls(): void {\r\n this.shortcuts.forEach(item => {\r\n if (item.shortcutId == MainWidgetShortcut.Attendance && this.employeeMainInfo?.AttendanceUrl != null)\r\n item.navigateUrl = [this.employeeMainInfo!.AttendanceUrl];\r\n if (item.shortcutId == MainWidgetShortcut.VacationStatement && this.employeeMainInfo?.VacationStatementUrl != null)\r\n item.navigateUrl = [this.employeeMainInfo!.VacationStatementUrl];\r\n });\r\n }\r\n\r\n shortcutClicked(icon: ShortcutIconDTO) {\r\n this.onShortcutClicked.emit(icon);\r\n }\r\n\r\n handleEmployeePhotoError() {\r\n this.employeeBadge.EmployeePhotoFailed = true;\r\n }\r\n\r\n getEmployeeMainDetails() {\r\n return this.selfWidgetsService.getMainDetails(this.baseUrl);\r\n }\r\n}\r\n","<div [class]=\"containerClass\">\r\n <div [class]=\"cardBodyClass\">\r\n <div [class]=\"headerRowClass\">\r\n <div>\r\n @if(employeeMainInfo!=null){\r\n <div [class]=\"employeeInfoContainerClass\">\r\n <bayan-employee-badge [badge]=\"employeeBadge\"\r\n [badgeClass]=\"badgeClass\"\r\n [imageClass]=\"badgeImageClass\"\r\n [width]=\"badgeWidth\"\r\n [height]=\"badgeHeight\"\r\n (employeePhotoError)=\"handleEmployeePhotoError()\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeDetailsClass\">\r\n <div [class]=\"employeeNameContainerClass\">\r\n <div [class]=\"employeeNameClass\"\r\n data-bs-toggle=\"tooltip\" [title]=\"employeeMainInfo.EmployeeNumber+' | '+ employeeMainInfo.EmployeeName\">\r\n {{employeeMainInfo.EmployeeNumber + ' | ' + employeeMainInfo.EmployeeName}}\r\n </div>\r\n </div>\r\n @if(employeeMainInfo.PositionName != null && employeeMainInfo.PositionName != ''){\r\n <div [class]=\"employeePositionClass\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"employeeMainInfo.PositionName\">\r\n {{employeeMainInfo.PositionName}}\r\n </div>\r\n }\r\n @if(employeeMainInfo.GradeName !=null){\r\n <div [class]=\"employeeGradeClass\" [title]=\"employeeMainInfo.GradeName\">\r\n {{employeeMainInfo.GradeName}}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div [class]=\"shortcutsContainerClass\">\r\n @for(Icon of shortcuts ; track Icon ; let i = $index;){\r\n <sky-shortcut-icon [shortcut]=\"Icon\"\r\n [itemClass]=\"shortcutItemClass\"\r\n [iconContainerClass]=\"shortcutIconContainerClass\"\r\n [iconClass]=\"shortcutIconClass\"\r\n [textClass]=\"shortcutTextClass\"\r\n (onClicked)=\"shortcutClicked($event)\"></sky-shortcut-icon>\r\n }\r\n </div>\r\n </div>\r\n <div [class]=\"detailsRowClass\" [ngClass]=\"{'flex-wrap': isMobile || isTablet}\">\r\n <div [class]=\"reportingBlockClass\" [ngClass]=\"{'mb-3': isMobile}\">\r\n <div [class]=\"captionLabelClasses + ' me-5'\">\r\n <div>\r\n {{'ReportingTo' | translate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n @if(employeeMainInfo?.ReportingTo){\r\n {{employeeMainInfo?.ReportingTo}}\r\n }@else{\r\n {{'NotAnknown' | translate}}\r\n }\r\n </div>\r\n </div>\r\n <div [class]=\"captionLabelClasses\" [ngClass]=\"{'border-end border-1 pe-4': !isMobile}\">\r\n <div>\r\n {{'ServiceYears' | translate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n {{employeeMainInfo?.ServiceYears}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-grow-1\" [ngClass]=\"{' ms-4': !isMobile && !isTablet, 'w-100': isTablet}\">\r\n <div [class]=\"vacationBalancesContainerClass\" [ngClass]=\"{'flex-wrap': isMobile,'w-100': isTablet}\">\r\n @for(vacationBalance of employeeMainInfo?.VacationBalances ; track vacationBalance ; let i = $index;){\r\n @if(i <= 2 || employeeMainInfo?.VacationBalances?.length == 4) {\r\n <div [class]=\"vacationBalanceItemClass\" [ngClass]=\"{'mb-2 w-40': isMobile}\">\r\n <div [class]=\"vacationBalanceHeaderClass\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"vacationBalance.VacationTypeColor\"></div>\r\n </div>\r\n <div [class]=\"vacationTypeNameClass\">\r\n {{vacationBalance.VacationTypeName}}\r\n </div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueRowClass\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle invisible\" style=\"height: 11px; width: 11px;\"></div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueClass\">{{vacationBalance.CurrentBalance | number:'1.2-2'}} {{(vacationBalance.CurrentBalance! == 1 ? 'day' : 'days') | translate}}</div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if(employeeMainInfo?.VacationBalances && employeeMainInfo!.VacationBalances!.length > 4){\r\n <div [class]=\"vacationBalanceItemClass\">\r\n <div [class]=\"tooltipTriggerLinkClass\" id=\"otherVacationBalances\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"defaultVacationBalanceColor\"></div>\r\n </div>\r\n <div [class]=\"tooltipTriggerTextClass\">\r\n +{{(employeeMainInfo!.VacationBalances!.length - 3)}} {{'More' | translate}}\r\n </div>\r\n </div>\r\n <div [class]=\"vacationBalanceValueRowClass\" style=\"visibility: hidden\">\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\"></div>\r\n </div>\r\n <div class=\"mx-1 fw-medium fs-14 text-dark-gray\">{{'More' | translate}}</div>\r\n </div>\r\n <dx-tooltip [target]=\"'#otherVacationBalances'\"\r\n [showEvent]=\"'mouseenter'\"\r\n [hideEvent]=\"'mouseleave'\">\r\n @for (vacationBalance of employeeMainInfo!.VacationBalances! ; track vacationBalance; let i = $index;){\r\n @if(i > 2){\r\n <div [class]=\"tooltipVacationRowClass\">\r\n <div [class]=\"tooltipVacationNameContainerClass\">\r\n\r\n <div [class]=\"vacationColorDotClass\">\r\n <div class=\"rounded rounded-circle\" style=\"height: 11px; width: 11px;\" [style.background-color]=\"vacationBalance.VacationTypeColor\"></div>\r\n </div>\r\n <div [class]=\"tooltipVacationNameClass\">\r\n {{vacationBalance.VacationTypeName}}\r\n </div>\r\n </div>\r\n <div>{{vacationBalance.CurrentBalance | number:'1.2-2'}} {{(vacationBalance.CurrentBalance! == 1 ? 'day' : 'days') | translate}}</div>\r\n </div>\r\n }\r\n }\r\n </dx-tooltip>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\n\r\n@Component({\r\n selector: 'hr-card-header',\r\n standalone: true,\r\n imports: [FontAwesomeModule],\r\n templateUrl: './card-header.component.html'\r\n})\r\nexport class HRCardHeaderComponent {\r\n @Input() icon!: IconDefinition;\r\n @Input() title!: string;\r\n @Input() containerClass: string = 'd-flex align-items-center mb-2';\r\n @Input() iconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() titleClass: string = 'text-center table-header-lg fw-medium';\r\n}\r\n","<div [class]=\"containerClass\">\r\n <fa-icon [icon]=\"icon\" [class]=\"iconClass\"></fa-icon>\r\n <span [class]=\"titleClass\">{{ title }}</span>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCakeCandles, faTreePalm } from '@fortawesome/pro-light-svg-icons';\r\nimport { DatePipe, LowerCasePipe } from '@angular/common';\r\nimport { EventTypeEnum, FilteredUpcomingEvent } from '../../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-event-item',\r\n standalone: true,\r\n imports: [FontAwesomeModule, DatePipe, LowerCasePipe, HRTranslatePipe],\r\n templateUrl: './event-item.component.html'\r\n})\r\nexport class HREventItemComponent {\r\n @Input() events: FilteredUpcomingEvent[] = [];\r\n @Input() showDates: boolean = false;\r\n @Input() showProperty: boolean = true;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() selectedEventType: EventTypeEnum | null = null;\r\n @Input() weekendWarningDescription: string | null = null;\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() noEventsTextClass: string = 'text-center my-4 text-light-gray';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n eventTypeEnum = EventTypeEnum;\r\n cakeCandles = faCakeCandles;\r\n treePalm = faTreePalm;\r\n\r\n get isArabic(): boolean { return this.selectedLanguage === 'ar'; }\r\n\r\n isBirthday(event: FilteredUpcomingEvent): boolean { return event.EventType === EventTypeEnum.Birthdays; }\r\n hasPropertyBadge(event: FilteredUpcomingEvent): boolean { return this.showProperty && !!event.PropertySymbol; }\r\n}\r\n","@if (events.length > 0) {\r\n<div>\r\n @for (event of events; track event) {\r\n <div [class]=\"'d-flex lh-base ' + (showDates ? 'my-3' : 'my-1')\">\r\n <fa-icon [icon]=\"isBirthday(event) ? cakeCandles : treePalm\"\r\n [class]=\"eventIconClass\"\r\n [title]=\"isBirthday(event) ? ('Birthday' | translate) : ('PublicHoliday' | translate)\">\r\n </fa-icon>\r\n\r\n <div>\r\n @if (isBirthday(event)) {\r\n @if (hasPropertyBadge(event)) {\r\n <span [class]=\"propertyBadgeClass\" [title]=\"event.PropertyName!\">{{ event.PropertySymbol }}</span>\r\n }\r\n @if (isArabic) {\r\n <span>{{ 'Birthday' | translate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | translate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | translate) + ' ' + ((event.IsIn2Days ? ('isIn' | translate) : ('is' | translate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | translate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | translate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | translate }}</span>\r\n\r\n @if (!isBirthday(event) && showDates && event.StartDate && event.EndDate) {\r\n <span>{{ ' (' + (event.StartDate | date:dateFormat) + ' - ' + (event.EndDate | date:dateFormat) + ')' }}</span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n} @else {\r\n@if (weekendWarningDescription) {\r\n<div [class]=\"warningTextClass + (showDates ? ' pt-5 my-5' : '')\">{{ weekendWarningDescription | translate }}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass + (showDates ? ' pt-5 my-5' : '')\">{{ 'NoEvents' | translate }}</div>\r\n}\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { NgClass } from '@angular/common';\r\nimport { EventTypeEnum } from '../../../shared/types/common';\r\nimport { faCakeCandles, faTreePalm } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-event-tab-bar',\r\n standalone: true,\r\n imports: [FontAwesomeModule, NgClass],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './event-tab-bar.component.html'\r\n})\r\nexport class HREventTabBarComponent {\r\n @Input() selectedType: EventTypeEnum | null = null;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() containerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Output() tabSelected = new EventEmitter<EventTypeEnum | null>();\r\n\r\n constructor(private translatePipe: HRTranslatePipe) {}\r\n\r\n tabList = [\r\n { id: null, icon: null },\r\n { id: EventTypeEnum.Birthdays, icon: faCakeCandles },\r\n { id: EventTypeEnum.PublicHolidays, icon: faTreePalm }\r\n ];\r\n\r\n getTabText(tab: { id: EventTypeEnum | null }): string {\r\n if (tab.id === null) return this.translatePipe.transform('All');\r\n if (tab.id === EventTypeEnum.Birthdays) return this.translatePipe.transform('Birthday');\r\n return this.translatePipe.transform('PublicHoliday');\r\n }\r\n}\r\n","<div [class]=\"containerClass\">\r\n @for (tab of tabList; track tab) {\r\n <div [class]=\"tabItemClass + ' ' + (selectedType == tab.id ? tabSelectedClass : tabNotSelectedClass)\"\r\n [ngClass]=\"{'w-25': (selectedLanguage == 'fr' && !tab?.icon)}\"\r\n (click)=\"tabSelected.emit(tab.id)\">\r\n @if (!tab?.icon) {\r\n <span [class]=\"tabTextClass + ' ' + (selectedType == tab.id ? tabTextSelectedClass : tabTextNotSelectedClass)\">{{ getTabText(tab) }}</span>\r\n } @else {\r\n <fa-icon [icon]=\"tab.icon!\" [class]=\"tabIconClass + ' ' + (selectedType == tab.id ? tabTextSelectedClass : tabTextNotSelectedClass)\" [title]=\"getTabText(tab)\"></fa-icon>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxLoadPanelModule, DxPopupModule, DxScrollViewModule } from 'devextreme-angular';\r\nimport { EventTypeEnum, FilteredUpcomingEvent } from '../../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { HREventItemComponent } from '../event-item/event-item.component';\r\nimport { HREventTabBarComponent } from '../event-tab-bar/event-tab-bar.component';\r\n\r\n@Component({\r\n selector: 'hr-upcoming-events-popup',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, DxScrollViewModule, DxLoadPanelModule, HREventItemComponent, HREventTabBarComponent, HRTranslatePipe],\r\n templateUrl: './events-popup.component.html'\r\n})\r\nexport class HREventsPopupComponent {\r\n @Input() visible: boolean = false;\r\n @Input() events: FilteredUpcomingEvent[] = [];\r\n @Input() hasBirthdays: boolean = false;\r\n @Input() hasHolidays: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() showProperty: boolean = true;\r\n @Input() weekendWarningDescription: string | null = null;\r\n @Input() popupTitle: string = '';\r\n @Input() selectedEventType: EventTypeEnum | null = null;\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() tabContainerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() noEventsTextClass: string = 'text-center my-4 text-light-gray';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() tabSelected = new EventEmitter<EventTypeEnum | null>();\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n onTabSelected(eventType: EventTypeEnum | null) {\r\n this.tabSelected.emit(eventType);\r\n }\r\n\r\n onPopupClose() {\r\n this.closed.emit();\r\n }\r\n}\r\n","<dx-popup id=\"popup\"\r\n [(visible)]=\"visible\"\r\n [height]=\"'400'\"\r\n [maxHeight]=\"400\"\r\n [width]=\"'650'\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n contentTemplate=\"popup-content\"\r\n [showCloseButton]=\"true\"\r\n [title]=\"popupTitle\"\r\n (onHiding)=\"onPopupClose()\"\r\n (visibleChange)=\"visibleChange.emit($event)\">\r\n\r\n <div class=\"text-dark\" *dxTemplate=\"let data of 'popup-content'\">\r\n <dx-scroll-view #upcomingEventsScrollView\r\n id=\"upcomingEventsScrollView\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n [showScrollbar]=\"'onScroll'\"\r\n [bounceEnabled]=\"false\">\r\n\r\n @if (hasBirthdays || hasHolidays) {\r\n <hr-event-tab-bar [selectedType]=\"selectedEventType\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [containerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n (tabSelected)=\"onTabSelected($event)\">\r\n </hr-event-tab-bar>\r\n\r\n <hr-event-item [events]=\"events\"\r\n [showDates]=\"true\"\r\n [showProperty]=\"showProperty\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [selectedEventType]=\"selectedEventType\"\r\n [weekendWarningDescription]=\"weekendWarningDescription\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\">\r\n </hr-event-item>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | translate }}</div>\r\n }\r\n </dx-scroll-view>\r\n </div>\r\n</dx-popup>\r\n\r\n<dx-load-panel shadingColor=\"rgba(0,0,0,0.4)\"\r\n [visible]=\"isLoading\"\r\n [showIndicator]=\"true\" [showPane]=\"true\"\r\n [shading]=\"true\" [hideOnOutsideClick]=\"false\">\r\n</dx-load-panel>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { faCalendarStar } from '@fortawesome/pro-light-svg-icons';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRCardHeaderComponent } from '../shared/components/card-header/card-header.component';\r\nimport { HREventItemComponent } from './components/event-item/event-item.component';\r\nimport { HREventTabBarComponent } from './components/event-tab-bar/event-tab-bar.component';\r\nimport { HREventsPopupComponent } from './components/events-popup/events-popup.component';\r\nimport {\r\n EventOption, RelativeDay, Birthday, PublicHoliday, UpcomingEventsV2,\r\n EventTypeEnum, FilteredUpcomingEvent\r\n} from '../shared/types/common';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-upcoming-events-widget',\r\n standalone: true,\r\n imports: [FontAwesomeModule, HRCardHeaderComponent, HREventItemComponent, HREventTabBarComponent, HREventsPopupComponent, HRTranslatePipe],\r\n templateUrl: './my-upcoming-events-widget.component.html'\r\n})\r\nexport class MyUpcomingEventsWidgetComponent implements OnInit {\r\n @Input() baseUrl: string = '';\r\n @Input() weekendWarningDescription: string = 'WeekendDayNotDefined';\r\n @Input() selectedLanguage: string = 'en';\r\n @Input() showProperty: boolean = true;\r\n\r\n @Input() cardClass: string = 'bg-light-gray border-0 card p-3 card-shadow rounded rounded-4 mt-3';\r\n @Input() noEventsTextClass: string = 'text-center my-3 text-light-gray';\r\n @Input() viewAllLinkClass: string = 'fs-14 mt-2';\r\n @Input() viewAllContainerClass: string = 'd-flex justify-content-end cursor-pointer';\r\n @Input() warningTextClass: string = 'text-center my-2 text-light-gray';\r\n @Input() tabSelectedClass: string = 'selected-event-option';\r\n @Input() tabNotSelectedClass: string = 'not-selected-event-option';\r\n @Input() tabTextSelectedClass: string = 'text-white';\r\n @Input() tabTextNotSelectedClass: string = 'text-primary';\r\n @Input() tabContainerClass: string = 'd-flex gap-2 mb-3';\r\n @Input() tabItemClass: string = 'col-1 align-items-center rounded rounded-3 cursor-pointer text-center d-flex justify-content-center py-2 px-3';\r\n @Input() tabTextClass: string = 'fs-16';\r\n @Input() tabIconClass: string = 'fs-6';\r\n @Input() eventIconClass: string = 'fs-6 text-primary pe-2';\r\n @Input() eventNameBoldClass: string = 'fw-medium';\r\n @Input() eventDescriptionClass: string = 'text-primary fw-medium';\r\n @Input() propertyBadgeClass: string = 'property-badge cursor-pointer me-1';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() viewAllClicked = new EventEmitter<void>();\r\n\r\n @Input() externalViewAll: boolean = false;\r\n\r\n selectedEventType: EventTypeEnum | null = null;\r\n selectedPopupEventType: EventTypeEnum | null = null;\r\n\r\n calendarStar = faCalendarStar;\r\n\r\n filteredEvents: FilteredUpcomingEvent[] = [];\r\n birthdays: Birthday[] = [];\r\n holidays: PublicHoliday[] = [];\r\n\r\n popupEvents: FilteredUpcomingEvent[] = [];\r\n popupVisible: boolean = false;\r\n\r\n weekendWarning: string | null = null;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadEvents(EventOption.All);\r\n }\r\n\r\n onTabClick(eventType: EventTypeEnum | null) {\r\n this.selectedEventType = eventType;\r\n this.filteredEvents = this.buildEvents(this.cardData, eventType, 2);\r\n }\r\n\r\n onPopupTabClick(eventType: EventTypeEnum | null) {\r\n this.selectedPopupEventType = eventType;\r\n this.popupEvents = this.buildEvents(this.cardData, eventType);\r\n }\r\n\r\n showPopup() {\r\n if (this.externalViewAll) {\r\n this.viewAllClicked.emit();\r\n return;\r\n }\r\n this.popupEvents = this.buildEvents(this.cardData, this.selectedPopupEventType);\r\n this.popupVisible = true;\r\n }\r\n\r\n onPopupClose() {\r\n this.popupVisible = false;\r\n this.selectedPopupEventType = null;\r\n }\r\n\r\n // --- Private ---\r\n\r\n private cardData!: UpcomingEventsV2;\r\n\r\n private getUpcomingEvents(eventOption: EventOption) {\r\n return this.selfWidgetsService.getUpcomingEvents(this.baseUrl, eventOption);\r\n }\r\n\r\n private loadEvents(eventOption: EventOption) {\r\n this.isLoadingChanged.emit(true);\r\n this.getUpcomingEvents(eventOption).subscribe({\r\n next: (response: any) => {\r\n this.cardData = response.ResponseData;\r\n this.birthdays = this.cardData?.Birthdays || [];\r\n this.holidays = this.cardData?.PublicHolidays || [];\r\n this.weekendWarning = this.cardData?.IsWeekendConfigured === false\r\n ? this.weekendWarningDescription\r\n : null;\r\n this.filteredEvents = this.buildEvents(this.cardData, null, 2);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private buildEvents(source: UpcomingEventsV2, eventType: EventTypeEnum | null, limit?: number): FilteredUpcomingEvent[] {\r\n const birthdays = source?.Birthdays || [];\r\n const holidays = source?.PublicHolidays || [];\r\n\r\n let filtered: FilteredUpcomingEvent[];\r\n\r\n if (eventType === EventTypeEnum.Birthdays) {\r\n\r\n filtered = birthdays.map(b => this.mapBirthday(b)).sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n } else if (eventType === EventTypeEnum.PublicHolidays) {\r\n filtered = holidays.map(h => this.mapHoliday(h)).sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n } else {\r\n if (limit) {\r\n filtered = [\r\n ...birthdays.map(b => this.mapBirthday(b)),\r\n ...holidays.map(h => this.mapHoliday(h))\r\n ].sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime()).slice(0, 2);\r\n } else {\r\n filtered = [\r\n ...birthdays.map(b => this.mapBirthday(b)),\r\n ...holidays.map(h => this.mapHoliday(h))\r\n ];\r\n }\r\n }\r\n\r\n if (limit) {\r\n filtered = filtered.slice(0, limit);\r\n }\r\n\r\n return filtered.sort((a, b) => new Date(a.EventDate).getTime() - new Date(b.EventDate).getTime());\r\n }\r\n\r\n private mapBirthday(b: Birthday): FilteredUpcomingEvent {\r\n const birthdate = new Date(b.Birthdate);\r\n const eventDate = new Date(new Date().getFullYear(), birthdate.getMonth(), birthdate.getDate());\r\n return {\r\n EventDate: eventDate,\r\n Name: b.EmployeeShortName,\r\n EventType: EventTypeEnum.Birthdays,\r\n Description: b.RelativeDay.toString(),\r\n IsIn2Days: RelativeDay[b.RelativeDay as unknown as keyof typeof RelativeDay] === RelativeDay.TwoDays,\r\n PropertyName: b.EmployeePropertyName,\r\n PropertySymbol: b.EmployeePropertySymbol\r\n };\r\n }\r\n\r\n private mapHoliday(h: PublicHoliday): FilteredUpcomingEvent {\r\n return {\r\n EventDate: new Date(h.StartDate),\r\n StartDate: new Date(h.StartDate),\r\n EndDate: new Date(h.EndDate),\r\n Name: h.Description,\r\n EventType: EventTypeEnum.PublicHolidays,\r\n Description: h.WeekContext.toString()\r\n };\r\n }\r\n}\r\n","<!-- Card View -->\r\n<div [class]=\"cardClass\">\r\n <hr-card-header [icon]=\"calendarStar\" [title]=\"'UpcomingEvents' | translate\"></hr-card-header>\r\n\r\n @if (birthdays.length > 0 || holidays.length > 0) {\r\n <hr-event-tab-bar\r\n [selectedType]=\"selectedEventType\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [containerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n (tabSelected)=\"onTabClick($event)\">\r\n </hr-event-tab-bar>\r\n\r\n <hr-event-item\r\n [events]=\"filteredEvents\"\r\n [showDates]=\"false\"\r\n [showProperty]=\"showProperty\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [selectedEventType]=\"selectedEventType\"\r\n [weekendWarningDescription]=\"weekendWarning\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\">\r\n </hr-event-item>\r\n\r\n <div [class]=\"viewAllContainerClass\">\r\n <a [class]=\"viewAllLinkClass\" (click)=\"showPopup()\">{{ 'ViewAll' | translate }}</a>\r\n </div>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | translate }}</div>\r\n }\r\n</div>\r\n\r\n<!-- Popup -->\r\n<hr-upcoming-events-popup\r\n [visible]=\"popupVisible\"\r\n [events]=\"popupEvents\"\r\n [hasBirthdays]=\"birthdays.length > 0\"\r\n [hasHolidays]=\"holidays.length > 0\"\r\n [isLoading]=\"false\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [showProperty]=\"showProperty\"\r\n [weekendWarningDescription]=\"weekendWarning\"\r\n [popupTitle]=\"'UpcomingEvents' | translate\"\r\n [selectedEventType]=\"selectedPopupEventType\"\r\n [tabSelectedClass]=\"tabSelectedClass\"\r\n [tabNotSelectedClass]=\"tabNotSelectedClass\"\r\n [tabTextSelectedClass]=\"tabTextSelectedClass\"\r\n [tabTextNotSelectedClass]=\"tabTextNotSelectedClass\"\r\n [tabContainerClass]=\"tabContainerClass\"\r\n [tabItemClass]=\"tabItemClass\"\r\n [tabTextClass]=\"tabTextClass\"\r\n [tabIconClass]=\"tabIconClass\"\r\n [eventIconClass]=\"eventIconClass\"\r\n [eventNameBoldClass]=\"eventNameBoldClass\"\r\n [eventDescriptionClass]=\"eventDescriptionClass\"\r\n [propertyBadgeClass]=\"propertyBadgeClass\"\r\n [noEventsTextClass]=\"noEventsTextClass\"\r\n [warningTextClass]=\"warningTextClass\"\r\n [dateFormat]=\"dateFormat\"\r\n (visibleChange)=\"popupVisible = $event\"\r\n (tabSelected)=\"onPopupTabClick($event)\"\r\n (closed)=\"onPopupClose()\">\r\n</hr-upcoming-events-popup>\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { HRTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRCommonMethodsService {\r\n\r\n constructor(private readonly translateService: HRTranslateService) {}\r\n\r\n calculateDaysDifference(dateOne: string | Date, dateTwo: string | Date): number {\r\n const resetTime = (inputDate: Date): Date => {\r\n const newDate = new Date(inputDate);\r\n newDate.setHours(0, 0, 0, 0);\r\n return newDate;\r\n };\r\n const firstDate = resetTime(new Date(dateOne));\r\n const secondDate = resetTime(new Date(dateTwo));\r\n return (firstDate.getTime() - secondDate.getTime()) / (1000 * 60 * 60 * 24);\r\n }\r\n\r\n currencyDecimalFormat(\r\n value: number,\r\n currencyDecimalsNumber: number\r\n ): string | null {\r\n const currencyDecimalsString = `1.${currencyDecimalsNumber}-${currencyDecimalsNumber}`;\r\n const languageCode = this.translateService.getLanguage() || 'en';\r\n const decimalPipe = new DecimalPipe(languageCode === 'fr' ? 'fr-FR' : 'en-US');\r\n\r\n if (languageCode === 'fr') {\r\n return decimalPipe.transform(value, currencyDecimalsString, 'fr-FR');\r\n }\r\n\r\n return decimalPipe.transform(value, currencyDecimalsString);\r\n }\r\n}\r\n","import { Component, Input, ViewChild, inject } from '@angular/core';\r\nimport { DxCalendarComponent, DxCalendarModule } from 'devextreme-angular';\r\nimport { ScheduleCalenderVacation, ScheduleVacationTypes, DatePeriod } from '../../types/common';\r\nimport { HRCommonMethodsService } from '../../services/common-methods.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCircle } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'hr-employee-calendar',\r\n templateUrl: './hr-employee-calendar.component.html',\r\n imports: [DxCalendarModule, HRTranslatePipe, FontAwesomeModule]\r\n})\r\nexport class HREmployeeCalendarComponent {\r\n\r\n @ViewChild('calendar') calendar!: DxCalendarComponent;\r\n @Input() showEvents: boolean = false;\r\n @Input() showUpComingVacations: boolean = false;\r\n @Input() scheduleCalenderVacation: ScheduleCalenderVacation[] = [];\r\n @Input() minDate: Date = new Date();\r\n @Input() maxDate: Date = new Date();\r\n\r\n @Input() legendContainerClass: string = 'row mb-2';\r\n @Input() legendRowClass: string = 'd-flex';\r\n @Input() legendItemClass: string = 'd-flex align-items-center';\r\n @Input() legendDotClass: string = 'me-1 circle-sm';\r\n @Input() legendLabelClass: string = 'me-1 fs-12';\r\n @Input() publicHolidayDotClass: string = 'bg-accent';\r\n @Input() dayOffDotClass: string = 'bg-yellow';\r\n @Input() eventsDotClass: string = 'bg-primary';\r\n @Input() vacationsContainerClass: string = 'd-flex mt-3';\r\n @Input() vacationsItemClass: string = 'd-flex align-items-center';\r\n @Input() vacationsIconClass: string = 'fs-8 me-1';\r\n @Input() calendarContainerClass: string = 'row mt-2 col-12';\r\n @Input() calendarClass: string = 'button-boeder-none';\r\n\r\n squreCheckIcon = faCircle;\r\n DaysOffVacationTypes = ScheduleVacationTypes.DaysOff;\r\n PublicHolidaysVacationTypes = ScheduleVacationTypes.PublicHoliday;\r\n private commonMethods = inject(HRCommonMethodsService);\r\n\r\n customCellTemplate = (cellData: any): string | HTMLElement => {\r\n if (cellData.view != 'month') {\r\n return this.createDateSpan(cellData);\r\n }\r\n\r\n const cellDate = cellData.date;\r\n\r\n let matchedVacation = this.scheduleCalenderVacation.find((vacation) =>\r\n this.isDateInPeriod(cellDate, vacation.VacationDays)\r\n );\r\n\r\n let matchedOffOrPublicHolidayBullet: ScheduleCalenderVacation | undefined = this.scheduleCalenderVacation.find((vacation) =>\r\n this.isDateInPeriod(cellDate, vacation.VacationDays) && vacation.VacationType != ScheduleVacationTypes.Vacations && vacation.VacationType != ScheduleVacationTypes.AddedVacations\r\n );\r\n\r\n if (matchedVacation) {\r\n if (this.commonMethods.calculateDaysDifference(matchedVacation.VacationDays.EndDate, matchedVacation.VacationDays.StartDate) === 0) {\r\n return this.createDateSpan(cellData, matchedVacation, matchedOffOrPublicHolidayBullet, false, false, false);\r\n }\r\n\r\n let isStartRange = this.commonMethods.calculateDaysDifference(cellDate, matchedVacation.VacationDays.StartDate) === 0;\r\n let isEndRange = this.commonMethods.calculateDaysDifference(matchedVacation.VacationDays.EndDate, cellDate) === 0;\r\n\r\n return this.createDateSpan(cellData, matchedVacation, matchedOffOrPublicHolidayBullet, true, isStartRange, isEndRange);\r\n }\r\n\r\n return this.createDateSpan(cellData);\r\n };\r\n\r\n private createDateSpan = (\r\n cellData: any,\r\n matchedVacation: ScheduleCalenderVacation | undefined = undefined,\r\n matchedOffOrPublicHolidayBullet: ScheduleCalenderVacation | undefined = undefined,\r\n isInRange: boolean = false,\r\n isStartRange: boolean = false,\r\n isEndRange: boolean = false) => {\r\n\r\n const offDayOrPublicHolidaySpan = document.createElement('span');\r\n const cellElement = document.createElement('span');\r\n cellElement.textContent = cellData.text;\r\n cellElement.style.backgroundColor = '';\r\n cellElement.style.borderRadius = '15px';\r\n cellElement.style.borderWidth = '0';\r\n cellElement.style.fontSize = '10px';\r\n cellElement.style.margin = '0';\r\n cellElement.style.padding = '0';\r\n cellElement.style.alignContent = 'center';\r\n cellElement.style.position = 'relative';\r\n\r\n if (matchedVacation) {\r\n cellElement.title = matchedVacation.Description;\r\n\r\n if (matchedVacation.VacationType != ScheduleVacationTypes.DaysOff && matchedVacation.VacationType != ScheduleVacationTypes.PublicHoliday && matchedVacation.VacationType != ScheduleVacationTypes.Events) {\r\n if (matchedVacation.Color) {\r\n cellElement.style.backgroundColor = (matchedVacation.Color + '99');\r\n cellElement.style.color = '#FFFFFF';\r\n } else {\r\n cellElement.style.backgroundColor = '#DCDCDC';\r\n cellElement.style.color = '#000000';\r\n }\r\n\r\n if (isInRange) {\r\n cellElement.style.width = '100%';\r\n cellElement.style.alignContent = 'start';\r\n\r\n if (isStartRange) {\r\n cellElement.style.borderEndEndRadius = '0px';\r\n cellElement.style.borderStartEndRadius = '0px';\r\n }\r\n\r\n if (isEndRange) {\r\n cellElement.style.borderStartStartRadius = '0px';\r\n cellElement.style.borderEndStartRadius = '0px';\r\n }\r\n\r\n if (!isStartRange && !isEndRange)\r\n cellElement.style.borderRadius = '0px';\r\n }\r\n }\r\n }\r\n\r\n if (matchedOffOrPublicHolidayBullet) {\r\n offDayOrPublicHolidaySpan.style.width = '8px';\r\n offDayOrPublicHolidaySpan.style.height = '8px';\r\n offDayOrPublicHolidaySpan.className = 'rounded rounded-circle';\r\n offDayOrPublicHolidaySpan.style.position = 'absolute';\r\n offDayOrPublicHolidaySpan.style.opacity = '1';\r\n offDayOrPublicHolidaySpan.style.top = '-5px';\r\n offDayOrPublicHolidaySpan.style.right = '0';\r\n offDayOrPublicHolidaySpan.title = matchedOffOrPublicHolidayBullet.Description;\r\n\r\n if (matchedVacation) {\r\n if (matchedVacation.VacationType != ScheduleVacationTypes.DaysOff && matchedVacation.VacationType != ScheduleVacationTypes.PublicHoliday && matchedVacation.VacationType != ScheduleVacationTypes.Events) {\r\n if (isInRange) {\r\n offDayOrPublicHolidaySpan.style.right = '8px';\r\n }\r\n }\r\n }\r\n\r\n offDayOrPublicHolidaySpan.style.background = matchedOffOrPublicHolidayBullet.Color || '';\r\n offDayOrPublicHolidaySpan.style.marginTop = '2px';\r\n cellElement.appendChild(offDayOrPublicHolidaySpan);\r\n }\r\n\r\n return cellElement;\r\n };\r\n\r\n isDateInPeriod(date: Date, period: DatePeriod) {\r\n if (this.commonMethods.calculateDaysDifference(date, period.StartDate) == 0)\r\n return true;\r\n\r\n if (this.commonMethods.calculateDaysDifference(date, period.EndDate) == 0)\r\n return true;\r\n\r\n let daysDifferenceWithStartDate = this.commonMethods.calculateDaysDifference(date, period.StartDate);\r\n let daysDifferenceWithEndDate = this.commonMethods.calculateDaysDifference(period.EndDate, date);\r\n\r\n if (daysDifferenceWithStartDate < 0 || daysDifferenceWithEndDate < 0)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n resetCalenderCurrentDate(currentDate: Date = new Date()) {\r\n this.calendar.instance.option('currentDate', currentDate);\r\n }\r\n\r\n preventInteraction(event: any): void {\r\n event.component.option('value', null);\r\n }\r\n}\r\n","<div [class]=\"legendContainerClass\">\r\n <div [class]=\"legendRowClass\">\r\n <div [class]=\"legendItemClass + ' me-4'\">\r\n <div [class]=\"legendDotClass + ' ' + publicHolidayDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'PublicHoliday' | translate}}</p></div>\r\n </div>\r\n <div [class]=\"legendItemClass\">\r\n <div [class]=\"legendDotClass + ' ' + dayOffDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'DayOff' | translate}}</p></div>\r\n </div>\r\n @if(showEvents){\r\n <div [class]=\"legendItemClass + ' ms-4'\">\r\n <div [class]=\"legendDotClass + ' ' + eventsDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'Events' | translate}}</p></div>\r\n </div>\r\n }\r\n </div>\r\n @if(showUpComingVacations){\r\n <div [class]=\"vacationsContainerClass\">\r\n <div [class]=\"vacationsItemClass\">\r\n <fa-icon [icon]=\"squreCheckIcon\" [class]=\"vacationsIconClass\"></fa-icon>\r\n <div [class]=\"legendLabelClass\"><p>{{'ScheduledVacations' | translate}}</p></div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n\r\n <div [class]=\"calendarContainerClass\">\r\n <dx-calendar #calendar [class]=\"calendarClass\" [selectionMode]=\"'multiple'\"\r\n [cellTemplate]=\"customCellTemplate\"\r\n [showWeekNumbers]=\"false\"\r\n [min]=\"minDate\"\r\n [max]=\"maxDate\"\r\n (onValueChanged)=\"preventInteraction($event)\">\r\n </dx-calendar>\r\n </div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, inject } from '@angular/core';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { CalendarResponse, ScheduleCalenderVacation, ScheduleRequestsResponse, ScheduleVacationTypes } from '../shared/types/common';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { HRConstantsService } from '../shared/services/constants.service';\r\nimport { HREmployeeCalendarComponent } from '../shared/components/hr-employee-calendar/hr-employee-calendar.component';\r\nimport { faCalendarDays } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRCardHeaderComponent } from '../shared/components/card-header/card-header.component';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'hr-my-calendar-widget',\r\n templateUrl: './my-calendar-widget.component.html',\r\n imports: [HREmployeeCalendarComponent, HRCardHeaderComponent, HRTranslatePipe]\r\n})\r\nexport class MyCalendarWidgetComponent implements OnInit, OnChanges {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() headerContainerClass: string = '';\r\n @Input() datasource: ScheduleRequestsResponse | null = null;\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n readonly calendarIcon = faCalendarDays;\r\n\r\n @Input() legendContainerClass: string = 'row mb-2';\r\n @Input() legendRowClass: string = 'd-flex';\r\n @Input() legendItemClass: string = 'd-flex align-items-center';\r\n @Input() legendDotClass: string = 'me-1 circle-sm';\r\n @Input() legendLabelClass: string = 'me-1 fs-12';\r\n @Input() publicHolidayDotClass: string = 'bg-accent';\r\n @Input() dayOffDotClass: string = 'bg-yellow';\r\n @Input() eventsDotClass: string = 'bg-primary';\r\n @Input() vacationsContainerClass: string = 'd-flex mt-3';\r\n @Input() vacationsItemClass: string = 'd-flex align-items-center';\r\n @Input() vacationsIconClass: string = 'fs-8 me-1';\r\n @Input() calendarContainerClass: string = 'row mt-2 col-12';\r\n @Input() calendarClass: string = 'button-boeder-none';\r\n\r\n private readonly constants = inject(HRConstantsService);\r\n private readonly translatePipe = inject(HRTranslatePipe);\r\n\r\n @Input() publicHolidayColor: string = this.constants.defaultPublicHolidayColor;\r\n @Input() dayOffColor: string = this.constants.defaultDayOffColor;\r\n @Input() eventsColor: string = this.constants.defaultEventsColor;\r\n\r\n @ViewChild(HREmployeeCalendarComponent) hrCalendar!: HREmployeeCalendarComponent;\r\n\r\n scheduleCalenderVacation: ScheduleCalenderVacation[] = [];\r\n minDate!: Date;\r\n maxDate!: Date;\r\n\r\n private baseCalendarData: ScheduleCalenderVacation[] = [];\r\n private hrVacations: ScheduleCalenderVacation[] = [];\r\n private calendarLoaded = false;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService\r\n ) {\r\n this.initDateRange();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadCalendar();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['datasource'] && this.datasource && this.calendarLoaded) {\r\n this.buildCalendarData();\r\n this.refreshCalendar();\r\n }\r\n }\r\n\r\n private initDateRange(): void {\r\n const currentDate = moment().date(1).subtract(1, 'month');\r\n this.minDate = new Date(currentDate.year(), currentDate.month(), currentDate.date());\r\n this.maxDate = new Date(this.minDate.getFullYear() + 1, this.minDate.getMonth() + 1, 0);\r\n }\r\n\r\n private getCalendar(month: number, year: number, monthsCount: number) {\r\n return this.selfWidgetsService.getCalendar(this.baseUrl, month, year, monthsCount);\r\n }\r\n\r\n private loadCalendar(): void {\r\n const currentDate = moment().date(1).subtract(1, 'month');\r\n const month = currentDate.month() === 0 ? 1 : currentDate.month() + 1;\r\n const year = currentDate.year();\r\n\r\n this.isLoadingChanged.emit(true);\r\n this.getCalendar(month, year, 12).subscribe({\r\n next: (response: any) => {\r\n this.isLoadingChanged.emit(false);\r\n this.mapCalendarData(response.ResponseData as CalendarResponse);\r\n },\r\n error: () => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private mapCalendarData(data: CalendarResponse): void {\r\n this.baseCalendarData = [\r\n ...data.PublicHolidays.map(ph => ({\r\n VacationType: ScheduleVacationTypes.PublicHoliday,\r\n Description: ph.Description,\r\n Color: this.publicHolidayColor,\r\n VacationDays: { StartDate: ph.StartDate, EndDate: ph.EndDate }\r\n })),\r\n ...data.OffDays.map(od => ({\r\n VacationType: ScheduleVacationTypes.DaysOff,\r\n Description: this.translatePipe.transform('DayOff'),\r\n Color: this.dayOffColor,\r\n VacationDays: { StartDate: od, EndDate: od }\r\n }))\r\n ];\r\n\r\n this.hrVacations = (data.Vacations ?? []).map(v => ({\r\n VacationType: ScheduleVacationTypes.Vacations,\r\n Description: v.VacationTypeName,\r\n Color: v.Color,\r\n VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }\r\n }));\r\n\r\n this.calendarLoaded = true;\r\n this.buildCalendarData();\r\n this.refreshCalendar();\r\n }\r\n\r\n private buildCalendarData(): void {\r\n const pendingVacations: ScheduleCalenderVacation[] = this.datasource?.PendingVacationRequests?.map(v => ({\r\n VacationType: ScheduleVacationTypes.Vacations,\r\n Description: v.VacationTypeName,\r\n Color: v.Color,\r\n VacationDays: { StartDate: v.StartDate, EndDate: v.EndDate }\r\n })) ?? [];\r\n\r\n const mergedVacations = this.mergeConsecutiveVacations(\r\n [...this.hrVacations, ...pendingVacations]\r\n .sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime())\r\n );\r\n\r\n const events: ScheduleCalenderVacation[] = this.datasource?.PendingEventRequests?.map(ev => ({\r\n VacationType: ScheduleVacationTypes.Events,\r\n Description: ev.Description,\r\n Color: this.eventsColor,\r\n VacationDays: { StartDate: ev.StartDate, EndDate: ev.EndDate }\r\n })) ?? [];\r\n\r\n this.scheduleCalenderVacation = [...mergedVacations, ...this.baseCalendarData, ...events];\r\n }\r\n\r\n private refreshCalendar(): void {\r\n setTimeout(() => {\r\n if (this.hrCalendar?.calendar) {\r\n this.hrCalendar.calendar.instance._refresh();\r\n this.hrCalendar.resetCalenderCurrentDate();\r\n }\r\n }, 100);\r\n }\r\n\r\n private mergeConsecutiveVacations(vacations: ScheduleCalenderVacation[]): ScheduleCalenderVacation[] {\r\n if (vacations.length === 0) return [];\r\n\r\n const grouped = new Map<string, ScheduleCalenderVacation[]>();\r\n for (const v of vacations) {\r\n const key = `${v.Description}|${v.Color ?? ''}`;\r\n if (!grouped.has(key)) grouped.set(key, []);\r\n grouped.get(key)!.push(v);\r\n }\r\n\r\n const result: ScheduleCalenderVacation[] = [];\r\n\r\n grouped.forEach((items) => {\r\n items.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());\r\n\r\n let merged = { ...items[0], VacationDays: { ...items[0].VacationDays } };\r\n\r\n for (let i = 1; i < items.length; i++) {\r\n const current = items[i];\r\n const lastEnd = new Date(merged.VacationDays.EndDate);\r\n const currentStart = new Date(current.VacationDays.StartDate);\r\n const diffDays = (currentStart.getTime() - lastEnd.getTime()) / (1000 * 60 * 60 * 24);\r\n\r\n if (diffDays <= 1) {\r\n const currentEnd = new Date(current.VacationDays.EndDate);\r\n if (currentEnd.getTime() > lastEnd.getTime()) {\r\n merged.VacationDays.EndDate = current.VacationDays.EndDate;\r\n }\r\n } else {\r\n result.push(merged);\r\n merged = { ...current, VacationDays: { ...current.VacationDays } };\r\n }\r\n }\r\n result.push(merged);\r\n });\r\n\r\n return result.sort((a, b) => new Date(a.VacationDays.StartDate).getTime() - new Date(b.VacationDays.StartDate).getTime());\r\n }\r\n}\r\n","<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | translate\"\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","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-info-field',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe],\r\n templateUrl: './info-field.component.html'\r\n})\r\nexport class HRInfoFieldComponent {\r\n @Input({ required: true }) labelKey!: string;\r\n @Input() value: string | null | undefined = null;\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium';\r\n @Input() fallbackValue: string = '—';\r\n}\r\n","<div [ngClass]=\"labelClass\">{{labelKey | translate}}</div>\r\n<div [ngClass]=\"valueClass\" [title]=\"value|| fallbackValue\">{{value || fallbackValue}}</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { faMoneyCheckDollarPen } from '@fortawesome/pro-light-svg-icons';\r\nimport { MyBankInfo } from '../../shared/types/common';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-bank-info-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-bank-info-widget.component.html'\r\n})\r\nexport class MyProfileBankInfoWidgetComponent implements OnInit, OnChanges {\r\n isLoading = true;\r\n\r\n constructor(private readonly commonMethodsService: HRCommonMethodsService, private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n ngOnInit(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.hrSelfWidgetsService.getBankInformation(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.employeeBankInformation = response ?? [];\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.employeeBankInformation = [];\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n});\r\n }\r\n employeeBankInformation: MyBankInfo[] = [];\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 2;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative';\r\n @Input() mainBadgeClass: string = 'position-absolute text-center top-0 mt-3 start-0 bg-primary status-badge';\r\n @Input() mainBadgeTextClass: string = 'mx-1 fs-12 text-white';\r\n @Input() triangleClass: string = 'position-absolute start-0 top-0';\r\n @Input() rowClass: string = 'row px-4 pb-3';\r\n @Input() rowMainPtClass: string = 'pt-5';\r\n @Input() rowNormalPtClass: string = 'pt-3';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingColClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'table-cell-md text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() bankInformationIcon = faMoneyCheckDollarPen;\r\n @Input() sectionHeaderVisibility = true;\r\n @Input() sectionTitle = 'BankInformation';\r\n @Input() language = 'en';\r\n @Input({required:true}) baseUrl =''\r\n\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n isRTL = this.language === 'ar';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['language']) {\r\n this.isRTL = this.language === 'ar';\r\n }\r\n }\r\n formatAmount(value: number | null | undefined): string {\r\n if (value == null) {\r\n return '-';\r\n }\r\n return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '-';\r\n }\r\n}\r\n","@if(sectionHeaderVisibility){\r\n<sky-section-divider [fontAwesomeIcon]=\"bankInformationIcon\"\r\n [text]=\"(sectionTitle | translate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n}\r\n@if(employeeBankInformation.length > 0){\r\n@for (bankInfo of employeeBankInformation; track bankInfo){\r\n<div [class]=\"cardClass\">\r\n @if(bankInfo.IsMainBank && employeeBankInformation.length > 1){\r\n <div [class]=\"mainBadgeClass\"\r\n style=\"padding-top: 2px\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\">\r\n <span [class]=\"mainBadgeTextClass\">{{'MainBank' | translate}}</span>\r\n </div>\r\n\r\n <div [class]=\"triangleClass\"\r\n [style.margin-left]=\"!isRTL ? '-6px' : 'unset'\"\r\n [style.margin-right]=\"isRTL ? '-5px' : '20px'\"\r\n [style.margin-top]=\"!isRTL ? '7px' : '4px'\">\r\n <svg viewBox=\"4 2 16 16\" class=\"status-badge-triangle\" fill=\"#e67e0f\">\r\n <path d=\"m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z\"></path>\r\n </svg>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"[rowClass, bankInfo.IsMainBank ? rowMainPtClass : rowNormalPtClass]\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Bank'\"\r\n [value]=\"bankInfo.BankName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Branch'\"\r\n [value]=\"bankInfo.BranchName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"responsiveTopSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'IBAN'\"\r\n [value]=\"bankInfo.IBAN\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'AccountNumber'\"\r\n [value]=\"bankInfo.AccountNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'Beneficiary'\"\r\n [value]=\"bankInfo.Beneficiary\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n @if(bankInfo.TransferAmount != null){\r\n <div [class]=\"topSpacingColClass\">\r\n <hr-info-field [labelKey]=\"'TransferAmount'\"\r\n [value]=\"formatAmount(bankInfo.TransferAmount) + ' (' + currencyCode + ')'\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoBankYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faMemoCircleInfo } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoMainDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-personal-info-main-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-personal-info-main-widget.component.html'\r\n})\r\nexport class ProfilePersonalInfoMainWidgetComponent implements OnInit {\r\n\r\n employeePersonalInformation: PersonalInfoMainDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() alternateLanguage: string = 'English';\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() hiddenSpacerColClass: string = 'col-md-4 col-6 d-md-block d-none';\r\n @Input() topSpacingColumnClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() mainIcon = faMemoCircleInfo;\r\n @Input() sectionTitle = 'main';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoMainDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInformation = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInformation = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(employeePersonalInformation){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInformation.EmployeeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'Name' | translate}} ({{alternateLanguage}})</div>\r\n @if(employeePersonalInformation.EmployeeNameAlternate){\r\n <div [ngClass]=\"valueClass\">{{employeePersonalInformation.EmployeeNameAlternate}}</div>\r\n }@else{\r\n <div [ngClass]=\"valueClass\">{{'—'}}</div>\r\n }\r\n </div>\r\n\r\n <div [ngClass]=\"hiddenSpacerColClass\"></div>\r\n\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Nationality'\"\r\n [value]=\"employeePersonalInformation.NationalityName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'NationalNumber'\"\r\n [value]=\"employeePersonalInformation.NationalNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'SocialSecurityNumber'\"\r\n [value]=\"employeePersonalInformation.SocialSecurityNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'MaritalStatus'\"\r\n [value]=\"employeePersonalInformation.MaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BirthDate'\"\r\n [value]=\"employeePersonalInformation.BirthDate ? (employeePersonalInformation.BirthDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BirthPlace'\"\r\n [value]=\"employeePersonalInformation.BirthPlace\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'BloodType'\"\r\n [value]=\"employeePersonalInformation.BloodTypeCode\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Religion'\"\r\n [value]=\"employeePersonalInformation.ReligionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'MinistryOfLaborNumber'\"\r\n [value]=\"employeePersonalInformation.MinistryOfLaborNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n\r\n}\r\n@else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoMainYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, OnInit, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faBolt, faPhone } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoContactDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-contact-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-contact-widget.component.html'\r\n})\r\nexport class MyProfileContactWidgetComponent implements OnInit {\r\n employeePersonalInfoContactDetails: PersonalInfoContactDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-4';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-6 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emergencyContactLabelClass: string = 'fs-14 fw-semibold';\r\n @Input() emergencyContactColumnClass: string = 'col-md-4 col-6';\r\n @Input() emergencyContactResponsiveColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n \r\n @Input() contactIcon = faPhone;\r\n @Input() emergencyContactIcon = faBolt;\r\n @Input() sectionTitle =\"contact\" \r\n @Input() showEmergencyContact = true;\r\n @Input() emergencyContactRowClass = 'row mt-3 mb-4';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoContactDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInfoContactDetails = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.employeePersonalInfoContactDetails = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"contactIcon\"\r\n [text]=\"(sectionTitle | translate|uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(employeePersonalInfoContactDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'MobileNumber'\"\r\n [value]=\"employeePersonalInfoContactDetails.MobileNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n <div class=\"mt-4\">\r\n <hr-info-field [labelKey]=\"'Email'\"\r\n [value]=\"employeePersonalInfoContactDetails.Email\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'HomePhone'\"\r\n [value]=\"employeePersonalInfoContactDetails.HomePhone\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n <div class=\"mt-4\">\r\n <hr-info-field [labelKey]=\"'BusinessEmail'\"\r\n [value]=\"employeePersonalInfoContactDetails.BusinessEmail\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n </div>\r\n</div>\r\n@if(showEmergencyContact)\r\n{\r\n<div [ngClass]=\"rowClass\">\r\n <div class=\"col-12\">\r\n <div [ngClass]=\"emergencyContactLabelClass\">\r\n • {{'EmergencyContact' | translate}}\r\n </div>\r\n </div>\r\n</div>\r\n<div [ngClass]=\"emergencyContactRowClass\">\r\n <div [ngClass]=\"emergencyContactColumnClass\">\r\n <hr-info-field [labelKey]=\"'Name'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Name || employeePersonalInfoContactDetails.EmergencyContactLegacy\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"emergencyContactColumnClass\">\r\n <hr-info-field [labelKey]=\"'Relation'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.Relation\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"emergencyContactResponsiveColumnClass\">\r\n <hr-info-field [labelKey]=\"'Phone'\"\r\n [value]=\"employeePersonalInfoContactDetails.EmergencyContact?.PhoneNumber\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoContactYet' | translate)\">\r\n</sky-empty-design-card>\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faLanguage } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-languages-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-languages-widget.component.html'\r\n})\r\nexport class MyProfileLanguagesWidgetComponent implements OnInit {\r\n languages: string[] | null = null;\r\n isLoading = true;\r\n @Input() baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() contentTextClass: string = 'text-dark-gray fs-14 fw-medium mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Output() hasDataChange = new EventEmitter<boolean>();\r\n\r\n @Input() languagesIcon = faLanguage;\r\n @Input() sectionTitle=\"languages\"\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if ( !this.baseUrl) {\r\n this.isLoading = false;\r\n this.emitHasData();\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoLanguages(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.languages = response ?? [];\r\n this.emitHasData();\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.languages = [];\r\n this.emitHasData();\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n\r\n private emitHasData(): void {\r\n this.hasDataChange.emit((this.languages?.length ?? 0) > 0);\r\n }\r\n\r\n getLanguages(): string {\r\n return this.languages?.join(', ') || '-';\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"languagesIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if((languages?.length ?? 0) > 0){\r\n<div [ngClass]=\"contentTextClass\">\r\n {{getLanguages()}}\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoLanguagesYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faEarthAfrica } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-other-nationalities-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-other-nationalities-widget.component.html'\r\n})\r\nexport class MyProfileOtherNationalitiesWidgetComponent implements OnInit {\r\n personalInfo: string[] | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() contentTextClass: string = 'text-dark-gray fs-14 fw-medium mt-4';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() emptyStateTextKey: string = 'ThereIsNoOtherNationalitiesYet';\r\n @Output() hasDataChange = new EventEmitter<boolean>();\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n @Input() otherNationalitiesIcon = faEarthAfrica;\r\n @Input() sectionTitle = 'otherNationalities';\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n this.emitHasData();\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoOtherNationalities(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfo = response ?? [];\r\n this.emitHasData();\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfo = [];\r\n this.emitHasData();\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n\r\n private emitHasData(): void {\r\n this.hasDataChange.emit((this.personalInfo?.length ?? 0) > 0);\r\n }\r\n\r\n getOtherNationalities(): string {\r\n return this.personalInfo?.join(', ') || '-';\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"otherNationalitiesIcon\"\r\n [text]=\"( sectionTitle | translate |uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if((personalInfo?.length ?? 0) > 0){\r\n<div [ngClass]=\"contentTextClass\">\r\n {{getOtherNationalities()}}\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : (emptyStateTextKey | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faHouse } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { PersonalInfoAddressDetails } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-address-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-address-widget.component.html'\r\n})\r\nexport class MyProfileAddressWidgetComponent implements OnInit {\r\n personalInfoAddressDetails: PersonalInfoAddressDetails | null = null;\r\n isLoading = true;\r\n @Input({required:true}) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() addressIcon = faHouse;\r\n@Input() sectionTitle = 'address';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getPersonalInfoAddressDetails(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfoAddressDetails = response;\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n this.personalInfoAddressDetails = null;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"addressIcon\"\r\n [text]=\"( sectionTitle | translate | uppercase )\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(personalInfoAddressDetails){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Address'\"\r\n [value]=\"personalInfoAddressDetails.Address\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'City'\"\r\n [value]=\"personalInfoAddressDetails.City\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'P.OBox'\"\r\n [value]=\"personalInfoAddressDetails.POBox\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'PostalCode'\"\r\n [value]=\"personalInfoAddressDetails.PostalCode\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoAddressYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { JobInformationMain } from '../../shared/types/common';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-job-info-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-job-info-widget.component.html'\r\n})\r\nexport class MyProfileJobInfoWidgetComponent implements OnInit {\r\n jobInformationMain: JobInformationMain | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() mainIcon = faFileSignature;\r\n @Input() sectionTitle = 'JobInformation';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationMain(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationMain = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationMain = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"mainIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationMain){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'AdminUnit'\"\r\n [value]=\"jobInformationMain.AdminUnitName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'Position'\"\r\n [value]=\"jobInformationMain.PositionName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Grade'\"\r\n [value]=\"jobInformationMain.GradeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'JoiningDate'\"\r\n [value]=\"jobInformationMain.JoiningDate ? (jobInformationMain.JoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'CorporateJoiningDate'\"\r\n [value]=\"jobInformationMain.CorporateJoiningDate ? (jobInformationMain.CorporateJoiningDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'Sponsor'\"\r\n [value]=\"jobInformationMain.SponsorName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoJobMainYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { JobInformationContract } from '../../shared/types/common';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-contract-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-contract-widget.component.html'\r\n})\r\nexport class MyProfileContractWidgetComponent implements OnInit {\r\n jobInformationContract: JobInformationContract | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() responsiveTopSpacingColumnClass: string = 'col-md-4 col-6 mt-md-0 mt-4';\r\n @Input() topSpacingBottomMdSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-md-5';\r\n @Input() topSpacingBottomSpacingColumnClass: string = 'col-md-4 col-6 mt-4 mb-5';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() contractIcon = faFileSignature;\r\n @Input() sectionTitle = 'Contract';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly hrSelfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationContract(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationContract = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationContract = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"contractIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(jobInformationContract){\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractType'\"\r\n [value]=\"jobInformationContract.ContractTypeName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"columnClass\">\r\n <hr-info-field [labelKey]=\"'ContractStartDate'\"\r\n [value]=\"jobInformationContract.ContractStartDate ? (jobInformationContract.ContractStartDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"responsiveTopSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractEndDate'\"\r\n [value]=\"jobInformationContract.ContractEndDate ? (jobInformationContract.ContractEndDate | date: 'dd/MM/yyyy') : null\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [ngClass]=\"topSpacingBottomMdSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractMaritalStatus'\"\r\n [value]=\"jobInformationContract.ContractMaritalStateName\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [ngClass]=\"topSpacingBottomSpacingColumnClass\">\r\n <hr-info-field [labelKey]=\"'ContractDependentsCount'\"\r\n [value]=\"jobInformationContract.ContractDependentsCount?.toString()\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoJobContractYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faSackDollar } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { Allowances, JobInformationSalary } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-salary-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent],\r\n templateUrl: './my-profile-salary-widget.component.html'\r\n})\r\nexport class MyProfileSalaryWidgetComponent implements OnInit {\r\n jobInformationSalary: JobInformationSalary | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 2;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-md-4 col-6 mt-4';\r\n @Input() grossSalaryColumnClass: string = 'col-md-4 col-6 my-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() currencyClass: string = 'fs-10 text-secondary fw-light';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() salaryIcon = faSackDollar;\r\n @Input() sectionTitle = 'Salary';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n\r\n constructor(\r\n private readonly hrSelfWidgetsService: HRSelfWidgetsService,\r\n private readonly commonMethodsService: HRCommonMethodsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationSalary(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationSalary = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationSalary = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n\r\n get basicSalary(): number | null {\r\n return this.jobInformationSalary?.BasicSalary ?? this.jobInformationSalary?.CurrentBasicSalary ?? null;\r\n }\r\n\r\n get allowances(): Allowances[] {\r\n return this.jobInformationSalary?.Allowances ?? [];\r\n }\r\n\r\n formatAmount(value: number | null | undefined): string {\r\n if (value == null) {\r\n return '�';\r\n }\r\n\r\n return this.commonMethodsService.currencyDecimalFormat(value, this.currencyDecimals) || '�';\r\n }\r\n}\r\n","@if(jobInformationSalary){\r\n<sky-section-divider [fontAwesomeIcon]=\"salaryIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{'BasicSalary' | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(basicSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n\r\n @for(allowance of allowances; track allowance){\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{allowance.AllowanceName}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(allowance.AllowanceAmount)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n }\r\n\r\n <div [ngClass]=\"grossSalaryColumnClass\">\r\n <div [ngClass]=\"labelClass\">{{'GrossSalary' | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{formatAmount(jobInformationSalary.GrossSalary)}} <span [ngClass]=\"currencyClass\">{{currencyCode}}</span></div>\r\n </div>\r\n</div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faEnvelopeOpenDollar } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRCommonMethodsService } from '../../shared/services/common-methods.service';\r\nimport { JobInformationServiceCharge, ServiceChargeEntitlementMode } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-charge-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent],\r\n templateUrl: './my-profile-service-charge-widget.component.html'\r\n})\r\nexport class MyProfileServiceChargeWidgetComponent implements OnInit {\r\n jobInformationServiceCharge: JobInformationServiceCharge | null = null;\r\n isLoading = true;\r\n\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4 mb-5';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-medium text-ellipsis-one-line';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() serviceChargeIcon = faEnvelopeOpenDollar;\r\n @Input() sectionTitle = 'ServiceCharge';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(\r\n private readonly hrSelfWidgetsService: HRSelfWidgetsService,\r\n private readonly commonMethodsService: HRCommonMethodsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.hrSelfWidgetsService.getJobInformationServiceCharge(this.baseUrl).subscribe({\r\n next: (response) => {\r\n this.isLoading = false;\r\n this.jobInformationServiceCharge = response;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.jobInformationServiceCharge = null;\r\n this.isLoadingChanged.emit(false);\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n }\r\n });\r\n }\r\n\r\n get modeLabelKey(): string {\r\n const mode = this.jobInformationServiceCharge?.ServiceChargeEntitlementMode as unknown as string;\r\n\r\n switch (ServiceChargeEntitlementMode[mode as keyof typeof ServiceChargeEntitlementMode]) {\r\n case ServiceChargeEntitlementMode.Points:\r\n return 'Points';\r\n case ServiceChargeEntitlementMode.SalaryRatio:\r\n return 'SalaryRatio';\r\n case ServiceChargeEntitlementMode.FixedAmount:\r\n return 'FixedAmount';\r\n case ServiceChargeEntitlementMode.FixedRate:\r\n return 'FixedRate';\r\n default:\r\n return 'ServiceCharge';\r\n }\r\n}\r\n\r\n get value(): string {\r\n const data = this.jobInformationServiceCharge;\r\n if (!data || data.ServiceChargeValue == null) {\r\n return '—';\r\n }\r\n\r\n if (\r\n ServiceChargeEntitlementMode[data.ServiceChargeEntitlementMode as unknown as keyof typeof ServiceChargeEntitlementMode] ===\r\n ServiceChargeEntitlementMode.FixedAmount\r\n ) {\r\n return `${this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 4)} (${this.currencyCode})`;\r\n }\r\n\r\n return this.commonMethodsService.currencyDecimalFormat(data.ServiceChargeValue, 2) || '—';\r\n}\r\n\r\n}\r\n","@if(jobInformationServiceCharge){\r\n<sky-section-divider [fontAwesomeIcon]=\"serviceChargeIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [ngClass]=\"rowClass\">\r\n <div [ngClass]=\"columnClass\">\r\n <div [ngClass]=\"labelClass\">{{modeLabelKey | translate}}</div>\r\n <div [ngClass]=\"valueClass\">{{value}}</div>\r\n </div>\r\n</div>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { DxDataGridComponent, DxDataGridModule, DxPopupModule, DxTextBoxModule } from 'devextreme-angular';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faXmark } from '@fortawesome/pro-light-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { lastValueFrom } from 'rxjs';\r\nimport { VacationPopupType } from '../../../shared/types/common';\r\nimport { HighlightPipe } from '@skysoftware-co/sky-components-ui';\r\n\r\n@Component({\r\n selector: 'hr-next-week-vacation-insights-popup',\r\n standalone: true,\r\n imports: [DxPopupModule, HRTranslatePipe, CommonModule, FontAwesomeModule,\r\n DxDataGridModule, BayanEmployeeBadgeComponent, DxTextBoxModule, HighlightPipe],\r\n templateUrl: './next-week-vacation-insights-popup.component.html'\r\n})\r\nexport class HRNextWeekVacationInsightsPopupComponent implements OnChanges {\r\n @ViewChild(DxDataGridComponent, { static: false }) dataGrid!: DxDataGridComponent;\r\n\r\n @Input() popupVisible: boolean = false;\r\n @Input() popupType: VacationPopupType = VacationPopupType.Upcoming;\r\n @Input() baseUrl: string = '';\r\n @Input() width = '700px';\r\n @Input() height = '480px';\r\n @Input() gridHeight = '320px';\r\n @Input() pageSize = 20;\r\n @Input() showProperty: boolean = false;\r\n\r\n @Output() closePopupClickHandler = new EventEmitter();\r\n\r\n popupTitle: string = '';\r\n popupSubTitle: string = '';\r\n keyExpr = 'EmployeeNumber';\r\n VacationPopupType = VacationPopupType;\r\n dataSource: CustomStore | null = null;\r\n xMarkIcon = faXmark;\r\n searchValue = '';\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['popupVisible']?.currentValue === true) {\r\n this.initDataSource();\r\n }\r\n }\r\n\r\n private initDataSource(): void {\r\n this.dataSource = new CustomStore({\r\n key: this.keyExpr,\r\n load: (loadOptions) => {\r\n const skip = loadOptions.skip ?? 0;\r\n const pageIndex = Math.floor(skip / this.pageSize) + 1;\r\n\r\n let params = new HttpParams()\r\n .set('ShowDirectSubordinatesOnly', 'false')\r\n .set('LoadOptions.PageIndex', pageIndex.toString())\r\n .set('LoadOptions.PageSize', this.pageSize.toString());\r\n\r\n if (this.searchValue) {\r\n params = params.set('LoadOptions.SearchValue', this.searchValue);\r\n }\r\n\r\n return lastValueFrom(this.http.get<any>(this.baseUrl, { params }))\r\n .then((response: any) => {\r\n const items = response.ResponseData?.Data ?? [];\r\n const totalCount = response.ResponseData?.TotalCount ?? 0;\r\n return { data: items, totalCount };\r\n });\r\n }\r\n });\r\n }\r\n\r\n onSearchValueChanged(e: any): void {\r\n this.searchValue = e.value ?? '';\r\n this.initDataSource();\r\n }\r\n\r\n getPopupTitle(): string {\r\n return this.popupSubTitle || (this.popupType === VacationPopupType.Upcoming ? 'UpcomingVacations' : 'ExpectedToReturn');\r\n }\r\n\r\n onPopupClose() {\r\n this.searchValue = '';\r\n this.dataSource = null!;\r\n this.closePopupClickHandler.emit();\r\n }\r\n\r\n onHidden() {\r\n this.onPopupClose();\r\n }\r\n\r\n getEmployeeBadge(item: any): BayanEmployeeBadgeDTO {\r\n return {\r\n EmployeePhotoKey: item.PhotoPath || null,\r\n EmployeePhotoFailed: item.FailedToLoadPhoto || false,\r\n EmployeeNameInitials: item.EmployeeNameInitials || ''\r\n };\r\n }\r\n\r\n handleEmployeePhotoError(employee: any) {\r\n employee.FailedToLoadPhoto = true;\r\n }\r\n}\r\n","<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 (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=\"fs-16 fw-meduim text-ellipsis-one-line\">\r\n <span class=\"text-dark-gray\">{{popupTitle ? (popupTitle | translate) : ('NextWeekVacationInsights' | translate)}}</span>\r\n <span class=\"mx-2 text-primary\">({{getPopupTitle() | translate}})</span>\r\n </p>\r\n <div class=\"py-2\" (click)=\"onPopupClose()\">\r\n <fa-icon [icon]=\"xMarkIcon\" class=\"fs-18 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 d-flex justify-content-end\">\r\n <dx-text-box [width]=\"'250px'\"\r\n mode=\"search\"\r\n [value]=\"searchValue\"\r\n [placeholder]=\"'Search...' | translate\"\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-data-grid-sorting mode=\"none\"></dxo-data-grid-sorting>\r\n\r\n <dxo-data-grid-scrolling mode=\"infinite\"\r\n [useNative]=\"false\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n showScrollbar=\"always\">\r\n </dxo-data-grid-scrolling>\r\n\r\n <dxo-data-grid-paging [enabled]=\"true\" [pageSize]=\"pageSize\"></dxo-data-grid-paging>\r\n\r\n <dxi-data-grid-column caption=\"{{'Employee' | translate}}\"\r\n dataField=\"EmployeeName\"\r\n cellTemplate=\"employeeCellTemplate\"\r\n [minWidth]=\"250\">\r\n </dxi-data-grid-column>\r\n\r\n @if(popupType === VacationPopupType.Upcoming){\r\n <dxi-data-grid-column caption=\"{{'StartDate' | translate}}\"\r\n dataField=\"VacationStartDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-column>\r\n <dxi-data-grid-column caption=\"{{'EndDate' | translate}}\"\r\n dataField=\"VacationEndDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-column>\r\n }@else{\r\n <dxi-data-grid-column caption=\"{{'ReturnDate' | translate}}\"\r\n dataField=\"ReturnDate\"\r\n dataType=\"date\"\r\n format=\"dd/MM/yyyy\"\r\n [width]=\"120\"\r\n alignment=\"left\">\r\n </dxi-data-grid-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\"\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 ms-2\">\r\n @if(showProperty){\r\n <span class=\"property-badge cursor-pointer me-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 [innerHTML]=\"(cell.data.EmployeeNumber + ' | ' + cell.data.EmployeeName) | highlight:searchValue\">\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 [innerHTML]=\"cell.data.EmployeeAdminUnitName | highlight:searchValue\">\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { SkyWidgetSectionItemComponent, SkyWidgetSectionItem } from '@skysoftware-co/sky-components-ui';\r\nimport { faPlaneDeparture, faPlaneArrival } from '@fortawesome/pro-solid-svg-icons';\r\nimport { HRSelfWidgetsService } from '../services/hr-self-widgets.service';\r\nimport { HRNextWeekVacationInsightsPopupComponent } from './components/next-week-vacation-insights-popup/next-week-vacation-insights-popup.component';\r\nimport { VacationPopupType } from '../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-next-week-vacation-insights-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, FontAwesomeModule, SkyWidgetSectionItemComponent, HRNextWeekVacationInsightsPopupComponent],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-next-week-vacation-insights-widget.component.html',\r\n})\r\nexport class MyNextWeekVacationInsightsWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() showProperty: boolean = false;\r\n @Input() cardClass: string = 'card rounded rounded-4 card-shadow border-top-0 h-100 p-4';\r\n @Input() titleClass: string = 'table-header-lg fw-meduim mb-3 mt-2';\r\n @Input() valueClass: string = 'fs-24 mt-1 link-dark hover-primary text-decoration-none';\r\n @Input() disabledValueClass: string = 'fs-24 mt-1 text-muted pe-none text-decoration-none';\r\n @Input() upcomingContainerClass: string = 'border-start border-5 mb-4';\r\n @Input() expectedContainerClass: string = 'border-start border-5';\r\n @Input() firstRowClass: string = 'mb-4';\r\n @Input() secondRowClass: string = 'mt-3';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n popupVisible: boolean = false;\r\n popupType: VacationPopupType = VacationPopupType.Upcoming;\r\n popupBaseUrl: string = '';\r\n VacationPopupType = VacationPopupType;\r\n\r\n upcomingVacationsBadge!: SkyWidgetSectionItem;\r\n expectedToReturnBadge!: SkyWidgetSectionItem;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private translatePipe: HRTranslatePipe\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.initBadges(0, 0);\r\n this.loadVacationSummary();\r\n }\r\n\r\n private loadVacationSummary(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getVacationSummary(this.baseUrl).subscribe({\r\n next: (response) => {\r\n const data = response.ResponseData;\r\n this.initBadges(data.UpcomingVacationsCount, data.ExpectedToReturnCount);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: () => {\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n openPopup(type: VacationPopupType): void {\r\n if (type === VacationPopupType.Upcoming && this.upcomingVacationsBadge?.Value === 0) return;\r\n if (type === VacationPopupType.ExpectedToReturn && this.expectedToReturnBadge?.Value === 0) return;\r\n\r\n this.popupType = type;\r\n if (type === VacationPopupType.Upcoming) {\r\n this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/upcoming-vacations`;\r\n } else {\r\n this.popupBaseUrl = `${this.baseUrl}/hr/widgets/me/team/next-week-vacation-insights/expected-to-return`;\r\n }\r\n this.popupVisible = true;\r\n }\r\n\r\n closePopup(): void {\r\n this.popupVisible = false;\r\n }\r\n\r\n private initBadges(upcomingVacations: number, expectedToReturn: number): void {\r\n this.upcomingVacationsBadge = {\r\n Id: 1,\r\n Title: this.translatePipe.transform('UpcomingVacations'),\r\n Value: upcomingVacations,\r\n Icon: faPlaneDeparture\r\n };\r\n this.expectedToReturnBadge = {\r\n Id: 2,\r\n Title: this.translatePipe.transform('ExpectedToReturn'),\r\n Value: expectedToReturn,\r\n Icon: faPlaneArrival\r\n };\r\n }\r\n}\r\n","<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' | translate | uppercase}}\r\n </div>\r\n <div class=\"d-flex flex-column mt-3\">\r\n <div [ngClass]=\"firstRowClass\">\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 </div>\r\n <div [ngClass]=\"secondRowClass\">\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</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","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { faUsersRays, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { Experience } from '../../shared/types/common';\r\n\r\n\r\n@Component({\r\n selector: 'hr-my-profile-experiences-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent,\r\n HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule],\r\n templateUrl: './my-profile-experiences-widget-component.html'\r\n})\r\nexport class MyProfileExperiencesWidgetComponent implements OnInit {\r\n\r\n experiences: Experience[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'experiences';\r\n\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() experienceIcon = faUsersRays;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'mt-4';\r\n @Input() headerRowClass: string = 'row col-10';\r\n @Input() actionsSpacerClass: string = 'col-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm text-ellipsis-one-line';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-ellipsis-one-line';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 mx-3 text-dark cursor-pointer';\r\n\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() itemRowClass: string = 'row';\r\n @Input() itemColumnsWrapperClass: string = 'row col-10 mt-3';\r\n @Input() itemColumnClass: string = 'col-3';\r\n @Input() actionsColumnClass: string = 'col-2 align-items-end mt-3';\r\n\r\n @Input() rowMarginBottomClass: string = 'mb-5';\r\n @Input() rowMarginBottomEmptyClass: string = 'mb-4';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeExperiences(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.experiences = res ?? [];\r\n this.isLoading = false;\r\n\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.experiences = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(file: any) {\r\n this.attachmentViewed.emit(file);\r\n }\r\n\r\n onAttachmentDownload(file: any) {\r\n this.attachmentDownloaded.emit(file);\r\n }\r\n\r\n get wrapperClass(): string {\r\n const classes = [this.rowClass];\r\n if (this.experiences.length > 0) {\r\n classes.push(this.rowMarginBottomClass);\r\n } else {\r\n classes.push(this.rowMarginBottomEmptyClass);\r\n }\r\n return classes.join(' ');\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"experienceIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"wrapperClass\">\r\n\r\n @if(experiences.length > 0){\r\n\r\n <div class=\"row\">\r\n <div [class]=\"headerRowClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Period' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Employer' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Position' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'TerminationReason' | translate}}</p>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsSpacerClass\"></div>\r\n\r\n @for (experience of experiences; track experience){\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')\">{{(experience.StartDate | date:'dd/MM/yyyy') + ' - ' + (experience.EndDate | date:'dd/MM/yyyy')}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.Employer ? experience.Employer : ''\">\r\n @if(experience.Employer){\r\n {{experience.Employer}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.Position ? experience.Position : ''\">\r\n @if(experience.Position){\r\n {{experience.Position}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"experience.TerminationReason ? experience.TerminationReason : ''\">\r\n @if(experience.TerminationReason){\r\n {{experience.TerminationReason}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\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 }@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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoExperiencesYet' | translate)\">\r\n</sky-empty-design-card>\r\n\r\n }\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileCertificate, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { Degree } from '../../shared/types/common';\r\n\r\n\r\n@Component({\r\n selector: 'hr-my-profile-degrees-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule],\r\n templateUrl: './my-profile-degrees-widget-component.html'\r\n})\r\nexport class MyProfileDegreesWidgetComponent implements OnInit {\r\n\r\n degrees: Degree[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Degrees';\r\n\r\n @Input() degreesIcon = faFileCertificate;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'mt-4';\r\n @Input() rowMarginBottomClass: string = 'mb-5';\r\n @Input() rowMarginBottomEmptyClass: string = 'mb-4';\r\n @Input() headerRowClass: string = 'row col-10';\r\n @Input() actionsSpacerClass: string = 'col-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm text-ellipsis-one-line';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-ellipsis-one-line';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 mx-3 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Input() itemRowClass: string = 'row';\r\n @Input() itemColumnsWrapperClass: string = 'row col-10 mt-3';\r\n @Input() itemColumnClass: string = 'col-3';\r\n @Input() actionsColumnClass: string = 'col-2 align-items-end mt-3';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeDegrees(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.degrees = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.degrees = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n get wrapperClass(): string {\r\n const classes = [this.rowClass];\r\n if (this.degrees.length > 0) {\r\n classes.push(this.rowMarginBottomClass);\r\n } else {\r\n classes.push(this.rowMarginBottomEmptyClass);\r\n }\r\n return classes.join(' ');\r\n }\r\n\r\n onAttachmentView(file: any) {\r\n this.attachmentViewed.emit(file);\r\n }\r\n\r\n onAttachmentDownload(file: any) {\r\n this.attachmentDownloaded.emit(file);\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"degreesIcon\"\r\n [text]=\"(sectionTitle | translate | 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 <div class=\"row\">\r\n <div [class]=\"headerRowClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Degree/Year' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Country' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Specialty' | translate}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"labelClass\">{{'Institute' | translate}}</p>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsSpacerClass\"></div>\r\n\r\n @for (qualification of degrees; track qualification){\r\n <div [class]=\"itemColumnsWrapperClass\">\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.DegreeName + ' / ' + qualification.DegreeYear\">{{qualification.DegreeName + ' / ' + qualification.DegreeYear}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.CountryName ? qualification.CountryName : ''\">{{qualification.CountryName}}</p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.Specialty ? qualification.Specialty : ''\">\r\n @if(qualification.Specialty){\r\n {{qualification.Specialty}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"itemColumnClass\">\r\n <p [class]=\"valueClass\" [title]=\"qualification.Institute ? qualification.Institute : ''\">\r\n @if(qualification.Institute){\r\n {{qualification.Institute}}\r\n }@else{\r\n {{'—'}}\r\n }\r\n </p>\r\n </div>\r\n </div>\r\n\r\n @if(qualification.Document){\r\n <div [class]=\"actionsColumnClass\">\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 </div>\r\n }\r\n }\r\n </div>\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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereIsNoDegreesYet' | translate)\">\r\n</sky-empty-design-card>\r\n\r\n }\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hr-widget-card',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './widget-card-component.html',\r\n})\r\nexport class WidgetCardComponent {\r\n @Input() cardClass: string = 'bg-white shadow-sm p-3 border-1 border';\r\n @Input() height: number = 110;\r\n\r\n @Input() contentTemplate!: TemplateRef<any>;\r\n @Input() context: any;\r\n}\r\n","<div [class]=\"cardClass\" [style.height.px]=\"height\" style=\"overflow: hidden;\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate; context: context\">\r\n </ng-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Dependent } from '../../shared/types/common';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../shared/components/widget-card/widget-card-component';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faUsersLine } from '@fortawesome/pro-light-svg-icons';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-dependents-widget',\r\n standalone: true,\r\n imports: [CommonModule, WidgetCardComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, SkySectionDividerComponent],\r\n templateUrl: './my-profile-employee-dependents-component.html',\r\n})\r\nexport class MyDependentsWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Dependents';\r\n @Input() icon = faUsersLine;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n dependents: Dependent[] = [];\r\n isLoading = true;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getEmployeeDependents(this.baseUrl).subscribe({\r\n next: (res) => {\r\n this.dependents = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: () => {\r\n this.dependents = [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n <div class=\"row mb-5\">\r\n @if(dependents.length){\r\n @for(d of dependents; track d){\r\n <div class=\"col-lg-4 col-6 mt-4\">\r\n\r\n <hr-widget-card [contentTemplate]=\"dependentTemplate\"\r\n [context]=\"{ d: d }\"\r\n [height]=\"110\">\r\n </hr-widget-card>\r\n\r\n </div>\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 | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoDependentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n\r\n\r\n }\r\n </div>\r\n</div>\r\n\r\n<ng-template #dependentTemplate let-d=\"d\">\r\n <p class=\"text-dark fs-16 mb-2 d-flex\">\r\n <span class=\"text-truncate cursor-pointer\" [title]=\"d.DependentName\">\r\n {{ d.DependentName }}\r\n </span>\r\n <span class=\"mx-1\">({{ d.DependentTypeName }})</span>\r\n </p>\r\n <p class=\"mb-2 fs-12\">\r\n <span class=\"text-muted\">{{'BirthDate'| translate}}: </span>\r\n <span class=\"text-secondary mx-1\">{{ d.BirthDate | date:'dd/MM/yyyy' }}</span>\r\n </p>\r\n <p class=\"mb-0 fs-12\">\r\n <span class=\"text-muted\">{{'NationalNumber'| translate }}: </span>\r\n @if(d.NationalNumber){\r\n <span class=\"text-secondary mx-1\">{{ d.NationalNumber }}</span>\r\n } @else {\r\n <span class=\"text-secondary mx-1\">—</span>\r\n }\r\n </p>\r\n</ng-template>\r\n\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faIslandTropical } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { EntitlementsVacation } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-vacations-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent],\r\n templateUrl: './my-profile-vacations-widget.component.html'\r\n})\r\nexport class MyProfileVacationsWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Vacations';\r\n @Input() vacationsIcon = faIslandTropical;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim mt-2';\r\n @Input() labelColumnClass: string = 'col-6';\r\n @Input() valueColumnClass: string = 'col-6';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n vacationEntitlements: EntitlementsVacation[] = [];\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsVacations(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.vacationEntitlements = data ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.vacationEntitlements = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"vacationsIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(vacationEntitlements.length > 0){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"labelClass\" [ngClass]=\"labelColumnClass\">{{'Type' | translate}}</div>\r\n <div [class]=\"labelClass\" [ngClass]=\"valueColumnClass\">{{'Entitlement' | translate}}</div>\r\n @for (vacationEntitlement of vacationEntitlements; track vacationEntitlement;){\r\n <div [class]=\"valueClass\" [ngClass]=\"labelColumnClass\">\r\n {{vacationEntitlement.VacationTypeName}}\r\n </div>\r\n <div [class]=\"valueClass\" [ngClass]=\"valueColumnClass\">\r\n {{vacationEntitlement.EntitlementDays}}\r\n </div>\r\n }\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('There\\'sNoInformationInThisSectionYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faFileSignature } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\nimport { EntitlementsIndemnity } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-indemnity-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-indemnity-widget.component.html'\r\n})\r\nexport class MyProfileIndemnityWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() currencyCode: string = '';\r\n @Input() currencyDecimals: number = 0;\r\n @Input() sectionTitle: string = 'Indemnity';\r\n @Input() indemnityIcon = faFileSignature;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4';\r\n @Input() columnClass: string = 'col-6';\r\n @Input() topSpacingColumnClass: string = 'col-6 mt-4';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n @Output() hasDataChanged = new EventEmitter<boolean>();\r\n\r\n indemnityDetails: EntitlementsIndemnity | null = null;\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsIndemnity(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.indemnityDetails = data;\r\n this.isLoading = false;\r\n this.hasDataChanged.emit(!!this.indemnityDetails);\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.indemnityDetails = null;\r\n this.isLoading = false;\r\n this.hasDataChanged.emit(false);\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"indemnityIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(indemnityDetails){\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"IndemnityEligibility\"\r\n [value]=\"(indemnityDetails.IsEligibleForIndemnity ? 'Eligible' : 'NotEligible') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"ServiceYears\"\r\n [value]=\"'' + (indemnityDetails.IndemnityServiceYears ?? '')\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n\r\n <div [class]=\"topSpacingColumnClass\">\r\n <hr-info-field labelKey=\"StartDate\"\r\n [value]=\"indemnityDetails.IndemnityStartDate | date: dateFormat\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('There\\'sNoInformationInThisSectionYet' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../../../shared/components/widget-card/widget-card-component';\r\n\r\n@Component({\r\n selector: 'hr-ticket-card',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, WidgetCardComponent],\r\n templateUrl: './ticket-card.component.html'\r\n})\r\nexport class HRTicketCardComponent {\r\n @Input({ required: true }) name: string | null = '';\r\n @Input() typeName: string | null = '';\r\n @Input() entitlementText: string = '';\r\n @Input() ticketClassName: string | null = '';\r\n @Input() ticketSectorName: string | null = '';\r\n @Input() isDependent: boolean = false;\r\n\r\n @Input() cardClass: string = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';\r\n @Input() cardHeight: number = 135;\r\n @Input() nameClass: string = 'text-dark fs-16';\r\n @Input() subtitleClass: string = 'field-secondary-label-sm mb-3';\r\n @Input() labelClass: string = 'text-secondary';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n}\r\n","<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | translate}})\r\n }\r\n </p>\r\n <p [class]=\"subtitleClass\">{{entitlementText}}</p>\r\n @if(!isDependent){\r\n <p class=\"fs-12 mb-2\"><span [class]=\"labelClass\">{{'Class' | translate}}:</span> <span [class]=\"valueClass\">{{ticketClassName}}</span></p>\r\n <p class=\"fs-12\"><span [class]=\"labelClass\">{{'Sector' | translate}}:</span> <span [class]=\"valueClass\">{{ticketSectorName}}</span></p>\r\n }\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faTicketsAirline } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRTicketCardComponent } from './components/ticket-card/ticket-card.component';\r\nimport { EntitlementsTicket } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-ticket-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRTicketCardComponent],\r\n providers: [HRTranslatePipe],\r\n templateUrl: './my-profile-ticket-widget.component.html'\r\n})\r\nexport class MyProfileTicketWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Tickets';\r\n @Input() ticketsIcon = faTicketsAirline;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() columnClass: string = 'col-lg-4 col-6 mt-4';\r\n @Input() cardHeight: number = 135;\r\n @Input() cardClass: string = 'p-3 card-shadow border border-1 h-100 rounded rounded-2';\r\n @Input() nameClass: string = 'text-dark fs-16';\r\n @Input() subtitleClass: string = 'field-secondary-label-sm mb-3';\r\n @Input() labelClass: string = 'fs-12 text-secondary';\r\n @Input() valueClass: string = 'fs-12 text-dark-gray mx-1';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n ticketDetails: EntitlementsTicket | null = null;\r\n isLoading = true;\r\n hasData = true;\r\n\r\n constructor(\r\n private selfWidgetsService: HRSelfWidgetsService,\r\n private translatePipe: HRTranslatePipe\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsTicket(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.ticketDetails = data;\r\n this.isLoading = false;\r\n this.hasData = !!this.ticketDetails?.EmployeeTicketDetails || (this.ticketDetails?.DependentTicketDetails?.length ?? 0) > 0;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.ticketDetails = null;\r\n this.isLoading = false;\r\n this.hasData = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n getMonthsPerTicketEntitlement(monthsPerTicketEntitlement: number | null): string {\r\n if (monthsPerTicketEntitlement != null && monthsPerTicketEntitlement != 0) {\r\n if (monthsPerTicketEntitlement > 1) {\r\n const template = this.translatePipe.transform('TicketEvery{{value}}Months');\r\n return template.replace('{{value}}', String(monthsPerTicketEntitlement));\r\n } else {\r\n const template = this.translatePipe.transform('TicketEvery{{value}}Month');\r\n return template.replace('{{value}}', String(monthsPerTicketEntitlement));\r\n }\r\n } else\r\n return this.translatePipe.transform('NotEntitled');\r\n }\r\n}\r\n","@if(hasData){\r\n<sky-section-divider [fontAwesomeIcon]=\"ticketsIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(ticketDetails){\r\n@if(!ticketDetails.EmployeeTicketDetails && ticketDetails.DependentTicketDetails?.length == 0){\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"'NoTicketEntitlement' | translate\">\r\n</sky-empty-design-card>\r\n}@else{\r\n<div class=\"row mb-5\">\r\n @if(ticketDetails.EmployeeTicketDetails){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-ticket-card [name]=\"ticketDetails.EmployeeTicketDetails.EmployeeFirstName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(ticketDetails.EmployeeTicketDetails.MonthsPerTicketEntitlement)\"\r\n [ticketClassName]=\"ticketDetails.EmployeeTicketDetails.TicketClassName\"\r\n [ticketSectorName]=\"ticketDetails.EmployeeTicketDetails.TicketSectorName\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n @for (dependent of ticketDetails.DependentTicketDetails; track dependent;){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-ticket-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [entitlementText]=\"getMonthsPerTicketEntitlement(dependent.MonthsPerTicketEntitlement)\"\r\n [isDependent]=\"true\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [subtitleClass]=\"subtitleClass\">\r\n </hr-ticket-card>\r\n </div>\r\n }\r\n</div>\r\n}\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('NoTicketEntitlement' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { WidgetCardComponent } from '../../../../shared/components/widget-card/widget-card-component';\r\n\r\nexport interface MedicalInsuranceField {\r\n labelKey: string;\r\n value: any;\r\n fallbackValue?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'hr-medical-insurance-card',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, WidgetCardComponent],\r\n templateUrl: './medical-insurance-card.component.html'\r\n})\r\nexport class HRMedicalInsuranceCardComponent {\r\n @Input({ required: true }) name: string | null = '';\r\n @Input() typeName: string | null = '';\r\n @Input() isDependent: boolean = false;\r\n @Input() fields: MedicalInsuranceField[] = [];\r\n\r\n @Input() cardClass: string = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';\r\n @Input() cardHeight: number = 185;\r\n @Input() nameClass: string = 'text-dark fs-16 mb-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n}\r\n","<hr-widget-card [cardClass]=\"cardClass\" [height]=\"cardHeight\" [contentTemplate]=\"cardContent\">\r\n</hr-widget-card>\r\n\r\n<ng-template #cardContent>\r\n <p [class]=\"nameClass\" [ngClass]=\"isDependent ? 'd-flex' : ''\">\r\n @if(isDependent){\r\n <span class=\"text-ellipsis-one-line cursor-pointer\" [title]=\"name\">{{name}}</span>\r\n <span class=\"mx-1\">({{typeName}})</span>\r\n }@else{\r\n {{name}} ({{'Me' | translate}})\r\n }\r\n </p>\r\n @for (field of fields; track field.labelKey; let last = $last){\r\n <p [class.mb-2]=\"!last\">\r\n <span [class]=\"labelClass\">{{field.labelKey | translate}}:</span>\r\n <span [class]=\"valueClass\">{{field.value || (field.fallbackValue ?? '—')}}</span>\r\n </p>\r\n }\r\n</ng-template>\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faNotesMedical } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRMedicalInsuranceCardComponent, MedicalInsuranceField } from './components/medical-insurance-card/medical-insurance-card.component';\r\nimport { EntitlementsMedicalInsurance, DependentsMedicalInsurance } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-medical-insurance-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, SkyEmptyDesignCardComponent, HRMedicalInsuranceCardComponent],\r\n templateUrl: './my-profile-medical-insurance-widget.component.html'\r\n})\r\nexport class MyProfileMedicalInsuranceWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'MedicalInsurance';\r\n @Input() medicalInsuranceIcon = faNotesMedical;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'text-dark-gray mx-1';\r\n @Input() columnClass: string = 'col-lg-4 col-6 mt-4';\r\n @Input() cardHeight: number = 185;\r\n @Input() cardClass: string = 'p-3 card-shadow h-100 border border-1 rounded rounded-2';\r\n @Input() nameClass: string = 'text-dark fs-16 mb-2';\r\n @Input() dateFormat: string = 'dd/MM/yyyy';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n medicalInsuranceDetails: EntitlementsMedicalInsurance | null = null;\r\n isLoading = true;\r\n employeeFields: MedicalInsuranceField[] = [];\r\n\r\n private datePipe = new DatePipe('en-US');\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n this.selfWidgetsService.getEntitlementsMedicalInsurance(this.baseUrl).subscribe({\r\n next: (data) => {\r\n this.medicalInsuranceDetails = data;\r\n this.buildEmployeeFields();\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.medicalInsuranceDetails = null;\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n private buildEmployeeFields(): void {\r\n if (!this.medicalInsuranceDetails?.EmployeeMedicalInsurance) return;\r\n const emp = this.medicalInsuranceDetails.EmployeeMedicalInsurance;\r\n this.employeeFields = [\r\n { labelKey: 'Class', value: emp.MedicalInsuranceClassName },\r\n { labelKey: 'Number', value: emp.MedicalInsuranceNumber },\r\n { labelKey: 'CoverageDate', value: this.datePipe.transform(emp.CoverageDate, this.dateFormat) },\r\n { labelKey: 'TotalEmployeeShare', value: this.medicalInsuranceDetails.TotalEmployeeShare },\r\n { labelKey: 'TotalEmployerShare', value: this.medicalInsuranceDetails.TotalEmployerShare }\r\n ];\r\n }\r\n\r\n getDependentFields(dependent: DependentsMedicalInsurance): MedicalInsuranceField[] {\r\n return [\r\n { labelKey: 'Class', value: dependent.MedicalInsuranceClassName },\r\n { labelKey: 'Number', value: dependent.MedicalInsuranceNumber },\r\n { labelKey: 'CoverageDate', value: this.datePipe.transform(dependent.CoverageDate, this.dateFormat) }\r\n ];\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"medicalInsuranceIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n@if(medicalInsuranceDetails){\r\n<div class=\"row mb-5\">\r\n @if(medicalInsuranceDetails.EmployeeMedicalInsurance){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-medical-insurance-card [name]=\"medicalInsuranceDetails.EmployeeMedicalInsurance.EmployeeFirstName\"\r\n [fields]=\"employeeFields\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n @for (dependent of medicalInsuranceDetails.DependentsMedicalInsurance; track dependent){\r\n <div [class]=\"columnClass\" [style.height.px]=\"cardHeight\">\r\n <hr-medical-insurance-card [name]=\"dependent.DependentName\"\r\n [typeName]=\"dependent.DependentTypeName\"\r\n [isDependent]=\"true\"\r\n [fields]=\"getDependentFields(dependent)\"\r\n [cardClass]=\"cardClass\"\r\n [cardHeight]=\"cardHeight\"\r\n [nameClass]=\"nameClass\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-medical-insurance-card>\r\n </div>\r\n }\r\n</div>\r\n}@else{\r\n<sky-empty-design-card [containerClass]=\"emptyStateContainerClass\"\r\n [cardBodyClass]=\"''\"\r\n [cardBodyContainerClass]=\"''\"\r\n [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('NotCoveredByMedicalInsurance' | translate)\">\r\n</sky-empty-design-card>\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { faGrid2Plus } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { HRInfoFieldComponent } from '../../shared/components/info-field/info-field.component';\r\nimport { forkJoin } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-entitlements-others-widget',\r\n standalone: true,\r\n imports: [CommonModule, HRTranslatePipe, SkySectionDividerComponent, HRInfoFieldComponent],\r\n templateUrl: './my-profile-entitlements-others-widget.component.html'\r\n})\r\nexport class MyProfileEntitlementsOthersWidgetComponent implements OnInit {\r\n @Input({ required: true }) baseUrl: string = '';\r\n @Input() sectionTitle: string = 'Others';\r\n @Input() othersIcon = faGrid2Plus;\r\n\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'mt-2 field-secondary-label-lg';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() rowClass: string = 'row mt-4 mb-5';\r\n @Input() columnClass: string = 'col-md-4 col-6';\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'fs-14 fw-meduim';\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n isEligibleForOvertime: boolean = false;\r\n isSocialSecurityMember: boolean = false;\r\n isLoading = true;\r\n\r\n constructor(private selfWidgetsService: HRSelfWidgetsService) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.loadData();\r\n }\r\n\r\n private loadData(): void {\r\n this.isLoadingChanged.emit(true);\r\n forkJoin({\r\n overtime: this.selfWidgetsService.getEntitlementsOvertime(this.baseUrl),\r\n socialSecurity: this.selfWidgetsService.getEntitlementsSocialSecurity(this.baseUrl)\r\n }).subscribe({\r\n next: (responses) => {\r\n this.isEligibleForOvertime = responses.overtime.ResponseData?.IsEligibleForOvertime ?? false;\r\n this.isSocialSecurityMember = responses.socialSecurity.ResponseData?.IsSocialSecurityMember ?? false;\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error) => {\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error?.error?.ResponseData?.Errors?.[0]?.Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"othersIcon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"OvertimeEligibility\"\r\n [value]=\"(isEligibleForOvertime ? 'Eligible' : 'NotEligible') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n <div [class]=\"columnClass\">\r\n <hr-info-field labelKey=\"SocialSecurityEligibility\"\r\n [value]=\"(isSocialSecurityMember ? 'Member' : 'NotMember') | translate\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\">\r\n </hr-info-field>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-document-row',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule],\r\n templateUrl: './document-row.component.html'\r\n})\r\nexport class HRDocumentRowComponent {\r\n @Input() doc!: DocumentRow;\r\n @Input() valueClass: string = 'text-dark-gray fs-14';\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon: IconDefinition = faFolderArrowDown;\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Output() attachmentView = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n\r\n onAttachmentView(): void {\r\n this.attachmentView.emit(this.doc);\r\n }\r\n\r\n onDownload(): void {\r\n this.download.emit(this.doc);\r\n }\r\n}\r\n","<div [class]=\"rowClass\">\r\n\r\n <div [class]=\"dataColClass + ' ' + dataColSpacingClass\">\r\n <div [class]=\"dataRowClass\">\r\n\r\n <div [class]=\"typeColClass\">\r\n <p [class]=\"valueClass + ' mb-0 text-ellipsis-one-line'\"\r\n [title]=\"doc.DocumentTypeName\">\r\n {{ doc.DocumentTypeName }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"numberColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.DocumentNumber || '—' }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"issueDateColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.IssueDate ? (doc.IssueDate | date:'dd/MM/yyyy') : '—' }}\r\n </p>\r\n </div>\r\n\r\n <div [class]=\"expiryDateColClass\">\r\n <p [class]=\"valueClass + ' mb-0'\">\r\n {{ doc.ExpiryDate ? (doc.ExpiryDate | date:'dd/MM/yyyy') : '—' }}\r\n </p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsColClass\">\r\n\r\n @if(doc.Attachments?.length) {\r\n\r\n <div [class]=\"actionsWrapperClass\">\r\n\r\n @if(doc.Attachments.length === 1) {\r\n <fa-icon [icon]=\"viewIcon\"\r\n [class]=\"viewIconClass\"\r\n (click)=\"onAttachmentView()\">\r\n </fa-icon>\r\n } @else {\r\n <div class=\"invisible\">\r\n <fa-icon [icon]=\"viewIcon\"></fa-icon>\r\n </div>\r\n }\r\n\r\n <div [class]=\"downloadContainerClass\"\r\n (click)=\"onDownload()\">\r\n <fa-icon [icon]=\"downloadIcon\"\r\n [class]=\"downloadIconClass\">\r\n </fa-icon>\r\n <span class=\"ps-1\">{{ doc.Attachments.length }}</span>\r\n </div>\r\n\r\n </div>\r\n\r\n }\r\n\r\n </div>\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule, IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { HRDocumentRowComponent } from '../document-row/document-row.component';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-document-card',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe, HRDocumentRowComponent],\r\n templateUrl: './document-card.component.html'\r\n})\r\nexport class HRDocumentCardComponent {\r\n @Input() title: string = '';\r\n @Input() documents: DocumentRow[] = [];\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() valueClass: string = 'text-dark-gray fs-14';\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon: IconDefinition = faFolderArrowDown;\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Output() attachmentView = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n\r\n onAttachmentView(doc: DocumentRow): void {\r\n this.attachmentView.emit(doc);\r\n }\r\n\r\n onDownload(doc: DocumentRow): void {\r\n this.download.emit(doc);\r\n }\r\n}\r\n","@if(title) {\r\n<div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">{{ title }}</p>\r\n</div>\r\n}\r\n\r\n<div [class]=\"rowClass\">\r\n <div [class]=\"dataColClass\">\r\n <div class=\"row g-1\">\r\n\r\n <div [class]=\"typeColClass\">\r\n <p [class]=\"labelClass\">{{ 'Type' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"numberColClass\">\r\n <p [class]=\"labelClass\">{{ 'DocumentNumber' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"issueDateColClass\">\r\n <p [class]=\"labelClass\">{{ 'IssueDate' | translate }}</p>\r\n </div>\r\n\r\n <div [class]=\"expiryDateColClass\">\r\n <p [class]=\"labelClass\">{{ 'ExpiryDate' | translate }}</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsColClass\"></div>\r\n</div>\r\n\r\n@for(doc of documents; track doc) {\r\n\r\n<hr-document-row [doc]=\"doc\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n</hr-document-row>\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HRTranslatePipe } from '../../../../shared/pipes/translate.pipe';\r\nimport { DocumentRow } from '../../../../shared/types/common';\r\n \r\n@Component({\r\n selector: 'hr-document-tablet-card',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, HRTranslatePipe],\r\n templateUrl: './document-tablet-card.component.html'\r\n})\r\nexport class HrDocumentTabletCardComponent {\r\n \r\n @Input() doc!: DocumentRow;\r\n @Input() isOdd: boolean = false;\r\n \r\n @Input() downloadIcon: any;\r\n @Input() viewIcon: any;\r\n @Input() cardHeight = '175px';\r\n\r\n // Shared classes (same as large screen)\r\n @Input() labelClass: string = 'field-secondary-label-sm';\r\n @Input() valueClass: string = 'table-cell-md text-break';\r\n @Input() downloadIconClass: string = 'fs-6 text-dark';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex justify-content-center align-items-center cursor-pointer px-2';\r\n @Input() downloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n // Tablet-specific classes\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n \r\n @Output() view = new EventEmitter<DocumentRow>();\r\n @Output() download = new EventEmitter<DocumentRow>();\r\n \r\n onView() {\r\n this.view.emit(this.doc);\r\n }\r\n \r\n onDownload() {\r\n this.download.emit(this.doc);\r\n }\r\n}","<div [class]=\"tabletContainerClass\">\r\n<div [class]=\"tabletCardClass\" [style.height]=\"cardHeight\"\r\n [ngClass]=\"{'me-1': !isOdd, 'ms-1': isOdd}\">\r\n \r\n <div [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'Type' | translate }}</p>\r\n<p [class]=\"valueClass\">{{ doc.DocumentTypeName }}</p>\r\n</div>\r\n \r\n <div [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'Number' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.DocumentNumber || '—' }}\r\n</p>\r\n</div>\r\n \r\n @if(doc.Attachments?.length) {\r\n<div [class]=\"tabletActionsColClass\"> \r\n \r\n <div [class]=\"downloadContainerClass\"\r\n (click)=\"onDownload()\">\r\n<fa-icon [icon]=\"downloadIcon\" [class]=\"downloadIconClass\"></fa-icon>\r\n<span [class]=\"downloadCountClass\">\r\n {{ doc.Attachments.length }}\r\n</span>\r\n</div>\r\n \r\n </div>\r\n }\r\n \r\n <div [class]=\"tabletBottomRowSpacingClass\"\r\n [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'IssueDate' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.IssueDate ? (doc.IssueDate | date:'dd/MM/yyyy') : '—' }}\r\n</p>\r\n</div>\r\n \r\n <div [class]=\"tabletBottomRowSpacingClass\"\r\n [ngClass]=\"doc.Attachments?.length ? tabletColWithAttachmentClass : tabletColWithoutAttachmentClass\">\r\n<p [class]=\"labelClass\">{{ 'ExpiryDate' | translate }}</p>\r\n<p [class]=\"valueClass\">\r\n {{ doc.ExpiryDate ? (doc.ExpiryDate | date:'dd/MM/yyyy') : '—' }}\r\n</p>\r\n</div>\r\n \r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileLines, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { HRDocumentCardComponent } from '../documents-widgets/components/document-card/document-card.component';\r\nimport { HrDocumentTabletCardComponent } from '../documents-widgets/components/document-tablet-card/document-tablet-card.component';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\nimport { DependentDocumentGroup } from '../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-dependents-documents-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRDocumentCardComponent, HrDocumentTabletCardComponent],\r\n templateUrl: './my-profile-dependents-documents-widget.html'\r\n})\r\nexport class MyProfileDependentsDocumentsWidgetComponent implements OnInit {\r\n documents: DependentDocumentGroup[] = [];\r\n groupedDocuments: DependentDocumentGroup[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() sectionTitle: string = 'DependentsDocuments';\r\n @Input() icon = faFileLines;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-break';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative p-4';\r\n @Input() topSpacingColClass: string = 'col-md-3 col-6 mt-4';\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() actionsColumnClass: string = 'col-2 d-flex flex-column mt-3';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletCardHeight: string = '175px';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n @Input() tabletDownloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n groups: any[] = [];\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoadingChanged.emit(true);\r\n\r\n this.service.getDependentDocuments(this.baseUrl).subscribe({\r\n next: (res: any) => {\r\n this.groups = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.groups = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(doc: any): void {\r\n if (doc.Attachments?.length) {\r\n this.attachmentViewed.emit(doc.Attachments[0]);\r\n }\r\n }\r\n\r\n onDownload(group: any): void {\r\n const attachments = group.Attachments\r\n\r\n if (!attachments.length) return;\r\n\r\n this.attachmentDownloaded.emit(attachments);\r\n }\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n\r\n @if(groups.length) {\r\n\r\n @for(group of groups; track group; let first = $first) {\r\n\r\n <div [class]=\"!(isTablet || isMobile) ? cardClass : ''\" [class.mt-3]=\"!first\">\r\n\r\n @if(!(isTablet || isMobile)) {\r\n\r\n <hr-document-card [title]=\"group.DependentName + ' (' + group.DependentTypeName + ')'\"\r\n [documents]=\"group.Documents\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [titleContainerClass]=\"titleContainerClass\"\r\n [titleClass]=\"titleClass\"\r\n [labelClass]=\"labelClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n </hr-document-card>\r\n }\r\n @else{\r\n <div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">\r\n {{ group.DependentName }} ({{ group.DependentTypeName }})\r\n </p>\r\n </div>\r\n <div class=\"row mx-1\">\r\n @for(doc of group.Documents; track doc; let odd = $odd) {\r\n <div class=\"col-6 mb-2\">\r\n <hr-document-tablet-card [doc]=\"doc\"\r\n [isOdd]=\"odd\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n [downloadCountClass]=\"tabletDownloadCountClass\"\r\n [tabletContainerClass]=\"tabletContainerClass\"\r\n [tabletCardClass]=\"tabletCardClass\"\r\n [cardHeight]=\"tabletCardHeight\"\r\n [tabletColWithAttachmentClass]=\"tabletColWithAttachmentClass\"\r\n [tabletColWithoutAttachmentClass]=\"tabletColWithoutAttachmentClass\"\r\n [tabletActionsColClass]=\"tabletActionsColClass\"\r\n [tabletBottomRowSpacingClass]=\"tabletBottomRowSpacingClass\"\r\n (view)=\"onAttachmentView(doc)\"\r\n (download)=\"onDownload(doc)\">\r\n </hr-document-tablet-card>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n\r\n } @else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoDependentsDocumentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n\r\n }\r\n\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SkyEmptyDesignCardComponent, SkySectionDividerComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { faFileLines, faFolderArrowDown } from '@fortawesome/pro-light-svg-icons';\r\nimport { faEye } from '@fortawesome/pro-regular-svg-icons';\r\nimport { HRSelfWidgetsService } from '../../services/hr-self-widgets.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { HRDocumentCardComponent } from '../documents-widgets/components/document-card/document-card.component';\r\nimport { HrDocumentTabletCardComponent } from '../documents-widgets/components/document-tablet-card/document-tablet-card.component';\r\nimport { HRTranslatePipe } from '../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'hr-my-profile-personal-documents-widget',\r\n standalone: true,\r\n imports: [CommonModule, SkySectionDividerComponent, HRTranslatePipe, SkyEmptyDesignCardComponent, FontAwesomeModule, HRDocumentCardComponent, HrDocumentTabletCardComponent],\r\n templateUrl: './my-profile-official-documents-widget.html'\r\n})\r\nexport class MyProfilePersonalDocumentsWidgetComponent implements OnInit {\r\n documents: any[] = [];\r\n isLoading = true;\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() employeeName: string = '';\r\n @Input() sectionTitle: string = 'EmployeeDocuments';\r\n @Input() icon = faFileLines;\r\n @Input() viewIcon: IconDefinition = faEye;\r\n @Input() downloadIcon = faFolderArrowDown;\r\n @Input() headerIconClass: string = 'primary-icon-xl';\r\n @Input() headerTextClass: string = 'fs-16 mt-2 text-secondary';\r\n @Input() headerDividerClass: string = 'flex-grow-1 ms-2';\r\n @Input() valueClass: string = 'text-dark-gray fs-14 text-break';\r\n @Input() viewIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() downloadIconClass: string = 'fs-15 text-dark cursor-pointer';\r\n @Input() emptyStateContainerClass: string = 'd-flex flex-column justify-content-center align-items-center my-5';\r\n @Input() emptyStateTextClass: string = 'field-secondary-label-md';\r\n @Input() cardClass: string = 'mt-4 card-shadow position-relative p-4';\r\n @Input() topSpacingColClass: string = 'col-md-3 col-6 mt-4';\r\n @Input() titleContainerClass: string = 'mb-3';\r\n @Input() titleClass: string = 'text-dark fs-16 mb-0';\r\n @Input() labelClass: string = 'field-secondary-label-sm mb-1';\r\n @Input() actionsColumnClass: string = 'col-2 d-flex flex-column mt-3';\r\n @Input() rowClass: string = 'row';\r\n @Input() dataColClass: string = 'col-10';\r\n @Input() dataColSpacingClass: string = 'mt-2';\r\n @Input() dataRowClass: string = 'row align-items-center py-1 gx-0';\r\n @Input() typeColClass: string = 'col-3';\r\n @Input() numberColClass: string = 'col-3';\r\n @Input() issueDateColClass: string = 'col-3';\r\n @Input() expiryDateColClass: string = 'col-3';\r\n @Input() actionsColClass: string = 'col-2 d-flex align-items-center';\r\n @Input() actionsWrapperClass: string = 'd-flex align-items-center gap-2';\r\n @Input() downloadContainerClass: string = 'bg-light-gray rounded-3 d-flex align-items-center justify-content-center px-1 cursor-pointer';\r\n\r\n @Input() tabletContainerClass: string = 'mt-3';\r\n @Input() tabletCardClass: string = 'row px-4 py-3 card-shadow';\r\n @Input() tabletCardHeight: string = '175px';\r\n @Input() tabletColWithAttachmentClass: string = 'col-5';\r\n @Input() tabletColWithoutAttachmentClass: string = 'col-6';\r\n @Input() tabletActionsColClass: string = 'col-1 d-flex align-items-center';\r\n @Input() tabletBottomRowSpacingClass: string = 'mt-4';\r\n @Input() tabletDownloadCountClass: string = 'text-dark fs-12 fw-bold ps-2';\r\n\r\n @Input() isMobile: boolean = false;\r\n @Input() isTablet: boolean = false;\r\n\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n @Output() attachmentViewed = new EventEmitter<any>();\r\n @Output() attachmentDownloaded = new EventEmitter<any>();\r\n @Output() errorOccurred = new EventEmitter<string>();\r\n\r\n constructor(private readonly service: HRSelfWidgetsService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.baseUrl) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.isLoadingChanged.emit(true);\r\n this.service.getPersonalDocuments(this.baseUrl).subscribe({\r\n next: (res: any) => {\r\n this.documents = res ?? [];\r\n this.isLoading = false;\r\n this.isLoadingChanged.emit(false);\r\n },\r\n error: (error: any) => {\r\n this.documents = [];\r\n this.isLoading = false;\r\n this.errorOccurred.emit(error.error.ResponseData.Errors[0].Message);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n });\r\n }\r\n\r\n onAttachmentView(doc: any): void {\r\n if (doc.Attachments?.length) {\r\n this.attachmentViewed.emit(doc.Attachments[0]);\r\n }\r\n }\r\n\r\n onDownload(doc: any): void {\r\n const attachments = doc.Attachments ?? [];\r\n if (!attachments.length) return;\r\n this.attachmentDownloaded.emit(attachments);\r\n }\r\n\r\n}\r\n","<sky-section-divider [fontAwesomeIcon]=\"icon\"\r\n [text]=\"(sectionTitle | translate | uppercase)\"\r\n [iconClass]=\"headerIconClass\"\r\n [textClass]=\"headerTextClass\"\r\n [dividerClass]=\"headerDividerClass\">\r\n</sky-section-divider>\r\n\r\n<div class=\"mt-4\">\r\n\r\n @if(documents.length) {\r\n\r\n <div [class]=\"!(isTablet || isMobile) ? cardClass : ''\">\r\n @if(!(isTablet || isMobile)) {\r\n\r\n <hr-document-card [title]=\"employeeName + ' (' + ('Me' | translate) + ')'\"\r\n [documents]=\"documents\"\r\n [valueClass]=\"valueClass\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [viewIconClass]=\"viewIconClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [titleContainerClass]=\"titleContainerClass\"\r\n [titleClass]=\"titleClass\"\r\n [labelClass]=\"labelClass\"\r\n [rowClass]=\"rowClass\"\r\n [dataColClass]=\"dataColClass\"\r\n [dataColSpacingClass]=\"dataColSpacingClass\"\r\n [dataRowClass]=\"dataRowClass\"\r\n [typeColClass]=\"typeColClass\"\r\n [numberColClass]=\"numberColClass\"\r\n [issueDateColClass]=\"issueDateColClass\"\r\n [expiryDateColClass]=\"expiryDateColClass\"\r\n [actionsColClass]=\"actionsColClass\"\r\n [actionsWrapperClass]=\"actionsWrapperClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n (attachmentView)=\"onAttachmentView($event)\"\r\n (download)=\"onDownload($event)\">\r\n </hr-document-card>\r\n }\r\n @else {\r\n <div [class]=\"titleContainerClass\">\r\n <p [class]=\"titleClass\">\r\n {{ employeeName }} ({{ 'Me' | translate}})\r\n </p>\r\n </div>\r\n\r\n <div class=\"row mx-1\">\r\n @for(doc of documents; track doc; let odd = $odd) {\r\n <div class=\"col-6 mb-2\">\r\n <hr-document-tablet-card [doc]=\"doc\"\r\n [isOdd]=\"odd\"\r\n [viewIcon]=\"viewIcon\"\r\n [downloadIcon]=\"downloadIcon\"\r\n [labelClass]=\"labelClass\"\r\n [valueClass]=\"valueClass\"\r\n [downloadIconClass]=\"downloadIconClass\"\r\n [downloadContainerClass]=\"downloadContainerClass\"\r\n [downloadCountClass]=\"tabletDownloadCountClass\"\r\n [tabletContainerClass]=\"tabletContainerClass\"\r\n [tabletCardClass]=\"tabletCardClass\"\r\n [cardHeight]=\"tabletCardHeight\"\r\n [tabletColWithAttachmentClass]=\"tabletColWithAttachmentClass\"\r\n [tabletColWithoutAttachmentClass]=\"tabletColWithoutAttachmentClass\"\r\n [tabletActionsColClass]=\"tabletActionsColClass\"\r\n [tabletBottomRowSpacingClass]=\"tabletBottomRowSpacingClass\"\r\n (view)=\"onAttachmentView(doc)\"\r\n (download)=\"onDownload(doc)\">\r\n </hr-document-tablet-card>\r\n </div>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n\r\n } @else {\r\n <sky-empty-design-card [visibleIcon]=\"false\"\r\n [visibleQuickAction]=\"false\"\r\n [containerClass]=\"emptyStateContainerClass\"\r\n [emptyTextClass]=\"emptyStateTextClass\"\r\n [emptyText]=\"isLoading ? ((sectionTitle | translate) + ' ' + ('IsLoading' | translate)) : ('ThereAreNoEmployeeDocumentsYet' | translate)\">\r\n </sky-empty-design-card>\r\n }\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, effect, input, output } from '@angular/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faChevronDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { HighlightPipe, isRTL } from '@skysoftware-co/sky-components-ui';\r\nimport { EmployeeMainInfo } from '../../../shared/types/common';\r\n\r\n@Component({\r\n selector: 'app-employee-main-info-card',\r\n standalone: true,\r\n imports: [FontAwesomeModule, NgClass, BayanEmployeeBadgeComponent, HighlightPipe],\r\n templateUrl: './employee-main-info-card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EmployeeMainInfoCardComponent {\r\n readonly employeeMainInfo = input<EmployeeMainInfo | null>(null);\r\n readonly searchValue = input<string>('');\r\n readonly showGrade = input<boolean>(false);\r\n readonly showPropertySymbol = input<boolean>(true);\r\n readonly showChangeEmployeeButton = input<boolean>(false);\r\n readonly alignCenter = input<boolean>(true);\r\n\r\n readonly ChangeEmployeeButtonHandler = output<void>();\r\n readonly isRTL = isRTL();\r\n employeeBadge: BayanEmployeeBadgeDTO = {\r\n EmployeePhotoKey: null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: '',\r\n };\r\n\r\n dropDownIcon = faChevronDown;\r\n faildToLoadEmployeePhoto = false;\r\n\r\n constructor() {\r\n effect(() => {\r\n const info = this.employeeMainInfo();\r\n if (info) {\r\n this.employeeBadge.EmployeePhotoKey = info.PhotoKey || null;\r\n this.employeeBadge.EmployeeNameInitials = info.EmployeeNameInitials || '';\r\n this.employeeBadge.EmployeePhotoFailed = false;\r\n }\r\n });\r\n }\r\n\r\n convertEmployee() {\r\n this.ChangeEmployeeButtonHandler.emit();\r\n }\r\n\r\n handleEmployeePhotoError() {\r\n this.employeeBadge.EmployeePhotoFailed = true;\r\n }\r\n}\r\n","@if (employeeMainInfo(); as info) {\r\n <div class=\"d-flex align-content-center\" [ngClass]=\"{ 'align-items-center': alignCenter }\">\r\n <bayan-employee-badge\r\n [badge]=\"employeeBadge\"\r\n badgeClass=\"badge employee-rounded-badge-xl fs-5\"\r\n imageClass=\"rounded-circle shadow-lg\"\r\n [width]=\"'50px'\"\r\n [height]=\"'50px'\"\r\n (employeePhotoError)=\"handleEmployeePhotoError()\"\r\n ></bayan-employee-badge>\r\n\r\n <div class=\"ms-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div\r\n class=\"fs-14 text-dark-gray fw-medium text-ellipsis-one-line\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"info.EmployeeNumber + ' | ' + info.EmployeeName\"\r\n [innerHTML]=\"info.EmployeeNumber + ' | ' + info.EmployeeName | highlight: searchValue()\"\r\n ></div>\r\n @if (showChangeEmployeeButton()) {\r\n <button type=\"button\" class=\"border-0 ms-2 bg-none\" (click)=\"convertEmployee()\">\r\n <fa-icon [icon]=\"dropDownIcon\" class=\"text-primary fs-5\"></fa-icon>\r\n </button>\r\n }\r\n </div>\r\n @if (info.PositionName != null && info.PositionName != '') {\r\n <div class=\"fs-12 fw-normal text-dark-gray text-ellipsis-one-line mb-1\" data-bs-toggle=\"tooltip\" [title]=\"info.PositionName\">\r\n <span [innerHTML]=\"info.PositionName | highlight: searchValue()\"></span>\r\n </div>\r\n }\r\n @if (showGrade() && info.GradeName != null) {\r\n <div class=\"fs-12 text-dark-gray\" [title]=\"info.GradeName\">\r\n <span [innerHTML]=\"info.GradeName | highlight: searchValue()\"></span>\r\n </div>\r\n }\r\n <div\r\n class=\"d-flex text-dark-gray mb-0\"\r\n data-bs-toggle=\"tooltip\"\r\n [title]=\"showPropertySymbol() ? info.PropertySymbol + ' | ' + info.AdminUnitName : info.AdminUnitName\"\r\n >\r\n <div class=\"fs-12\">\r\n @if (showPropertySymbol()) {\r\n <span class=\"property-badge cursor-pointer\" title=\"{{ info.PropertyName }}\">\r\n <span [innerHTML]=\"info.PropertySymbol | highlight: searchValue()\"></span>\r\n </span>\r\n }\r\n <span class=\"fw-normal ms-1\" [ngClass]=\"{ 'me-1': isRTL, 'ms-1': !isRTL }\" \r\n [title]=\"info.AdminUnitName\" [innerHTML]=\"info.AdminUnitName | highlight: searchValue()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SubordinatesApiResponse } from '../types/common';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MyTeamWidgetsService {\r\n \r\n private readonly headers = { 'api-version': '1' };\r\n\r\n constructor(private readonly http: HttpClient) {}\r\n\r\n getSubordinates(baseUrl: string, params: {\r\n showDirectSubordinatesOnly: boolean;\r\n pageIndex: number;\r\n pageSize: number;\r\n searchValue?: string;\r\n }): Observable<{ ResponseData: SubordinatesApiResponse }> {\r\n const httpParams = new HttpParams()\r\n .set('p.showDirectSubordinatesOnly', params.showDirectSubordinatesOnly)\r\n .set('p.loadOptions.pageIndex', params.pageIndex + 1)\r\n .set('p.loadOptions.pageSize', params.pageSize)\r\n .set('p.loadOptions.searchValue', params.searchValue ?? '');\r\n\r\n return this.http.get<{ ResponseData: SubordinatesApiResponse }>(\r\n `${baseUrl}/hr/widgets/me/team/subordinates`,\r\n {\r\n params: httpParams,\r\n headers: this.headers,\r\n },\r\n );\r\n }\r\n}\r\n","import { NgTemplateOutlet } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, inject, input, output, signal, ViewChild } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n DxScrollViewComponent,\r\n DxTextBoxModule,\r\n DxPopupModule,\r\n DxScrollViewModule,\r\n DxLoadIndicatorModule,\r\n} from 'devextreme-angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { HighlightPipe } from '@skysoftware-co/sky-components-ui';\r\nimport { SubordinateDTO, EmployeeMainInfo } from '../../../shared/types/common';\r\nimport { EmployeeMainInfoCardComponent } from '../employee-main-info-card/employee-information-card.component';\r\nimport { HRTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { faEnvelope, faPhone } from '@fortawesome/pro-solid-svg-icons';\r\nimport { MyTeamWidgetsService } from '../../../shared/services/my-team-popup.service';\r\n\r\nexport const myTeamSubordinatesVisible = signal(false);\r\n\r\nexport function openMyTeamSubordinatesPopup(): void {\r\n myTeamSubordinatesVisible.set(true);\r\n}\r\n\r\n@Component({\r\n selector: 'hr-my-team-popup',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n FontAwesomeModule,\r\n DxPopupModule,\r\n DxTextBoxModule,\r\n DxScrollViewModule,\r\n DxLoadIndicatorModule,\r\n EmployeeMainInfoCardComponent,\r\n NgTemplateOutlet,\r\n HighlightPipe,\r\n HRTranslatePipe,\r\n ],\r\n templateUrl: './my-team-popup.component.html',\r\n})\r\nexport class MyTeamPopupComponent {\r\n private readonly myTeamWidgetsService = inject(MyTeamWidgetsService);\r\n @ViewChild('dataScrollView') dataScrollView?: DxScrollViewComponent;\r\n\r\n readonly baseUrl = input.required<string>();\r\n\r\n readonly isLoadingChanged = output<boolean>();\r\n readonly errorOccurred = output<string>();\r\n readonly showGrade = input<boolean>(false);\r\n\r\n readonly isPopupVisible = myTeamSubordinatesVisible;\r\n readonly isLoading = signal(false);\r\n readonly showAllSubordinates = signal(false);\r\n readonly searchValue = signal('');\r\n readonly items = signal<{ adminUnitName: string; employees: SubordinateDTO[] }[]>([]);\r\n readonly isDataLoading = signal(false);\r\n readonly hasMoreData = signal(true);\r\n\r\n readonly phoneIcon = input(faPhone);\r\n readonly emailIcon = input(faEnvelope);\r\n readonly headerRowClass = input('d-flex justify-content-between align-items-center mb-2');\r\n readonly switchContainerClass = input('form-check form-switch d-flex align-items-center custom-switch-dark ps-0');\r\n readonly switchInputClass = input('form-check-input text-dark ms-0');\r\n readonly switchLabelClass = input('form-check-label mx-2 fs-13');\r\n readonly scrollViewClass = input('position-relative');\r\n readonly emptyStateClass = input(\r\n 'position-absolute top-50 start-50 translate-middle w-100 text-center text-dark-gray fs-14',\r\n );\r\n readonly groupHeaderClass = input('fs-16 text-dark pt-2 pb-1');\r\n readonly employeeCardClass = input(\r\n 'bg-light-gray rounded p-4 mb-2 d-flex align-items-center justify-content-between border-start border-4 border-start-primary',\r\n );\r\n readonly contactContainerClass = input('d-flex flex-column gap-1 border-start border-2 ps-3 w-100');\r\n readonly contactTitleClass = input('fs-10 fw-medium mb-1 text-dark');\r\n readonly contactRowClass = input('d-flex align-items-center gap-2 fs-12 fw-normal lh-21 text-dark');\r\n readonly contactIconClass = input('fs-10 text-light-gray');\r\n readonly emailTextClass = input('d-inline-block flex-grow-1 text-ellipsis-one-line');\r\n readonly groupedListClass = input('d-flex flex-column gap-2 pb-2');\r\n readonly loadingContainerClass = input('d-flex justify-content-center py-2');\r\n readonly loadingIndicatorClass = input('w-30 h-30');\r\n readonly employeeInfoColumnClass = input('col-8 overflow-hidden pe-2');\r\n readonly contactColumnClass = input('col-4 d-flex justify-content-end');\r\n\r\n readonly pageSize = input(100);\r\n\r\n private pageIndex = 0;\r\n private totalCount = 0;\r\n private loadedCount = 0;\r\n\r\n toEmployeeMainInfo(emp: SubordinateDTO): EmployeeMainInfo {\r\n return {\r\n EmployeeNumber: emp.EmployeeNumber,\r\n EmployeeName: emp.EmployeeName,\r\n PhotoKey: emp.PhotoPath,\r\n PositionName: emp.PositionName,\r\n AdminUnitName: emp.AdminUnitName ?? '-',\r\n GradeName: emp.GradeName ?? null,\r\n PropertyName: emp.PropertyName ?? '-',\r\n PropertySymbol: emp.PropertySymbol ?? '-',\r\n EmployeeNameInitials: emp.EmployeeNameInitials,\r\n };\r\n }\r\n\r\n closePopup(): void {\r\n myTeamSubordinatesVisible.set(false);\r\n this.showAllSubordinates.set(false);\r\n this.searchValue.set('');\r\n this.resetState();\r\n }\r\n\r\n getEmployeeEmail(employee: SubordinateDTO): string {\r\n return employee.BusinessEmail ?? employee.PersonalEmail ?? '-';\r\n }\r\n\r\n onSearchChanged(value: string): void {\r\n const nextSearchValue = value ?? '';\r\n if (nextSearchValue === this.searchValue()) {\r\n return;\r\n }\r\n this.searchValue.set(nextSearchValue);\r\n this.loadPage(true);\r\n }\r\n\r\n onToggleChange(event: Event): void {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n this.showAllSubordinates.set(checked);\r\n this.loadPage(true);\r\n }\r\n\r\n onReachBottom(event: any): void {\r\n if (!this.hasMoreData()) {\r\n event?.component?.release?.();\r\n return;\r\n }\r\n\r\n const scrollTop = event?.component?.scrollOffset?.().top ?? 0;\r\n if (scrollTop <= 0) {\r\n event?.component?.release?.();\r\n return;\r\n }\r\n\r\n this.loadPage(false).finally(() => {\r\n event?.component?.release?.();\r\n });\r\n }\r\n\r\n private resetState(): void {\r\n this.items.set([]);\r\n this.hasMoreData.set(true);\r\n this.pageIndex = 0;\r\n this.totalCount = 0;\r\n this.loadedCount = 0;\r\n }\r\n\r\n private resetScrollPosition(): void {\r\n this.dataScrollView?.instance?.scrollTo({ top: 0, left: 0 });\r\n }\r\n\r\n private appendEmployees(pageData: SubordinateDTO[]): void {\r\n const groupedMap = new Map(this.items().map(group => [group.adminUnitName, [...group.employees]]));\r\n\r\n for (const employee of pageData) {\r\n const key = employee.AdminUnitName!;\r\n const employees = groupedMap.get(key) ?? [];\r\n employees.push(employee);\r\n groupedMap.set(key, employees);\r\n }\r\n\r\n this.items.set(Array.from(groupedMap.entries()).map(([adminUnitName, employees]) => ({ adminUnitName, employees })));\r\n }\r\n\r\n async loadPage(reset: boolean): Promise<void> {\r\n if (this.isDataLoading() || (!reset && !this.hasMoreData())) {\r\n return;\r\n }\r\n\r\n if (reset) {\r\n this.resetState();\r\n }\r\n\r\n this.isDataLoading.set(true);\r\n if (reset) {\r\n this.isLoading.set(true);\r\n this.isLoadingChanged.emit(true);\r\n }\r\n\r\n try {\r\n const response = await firstValueFrom(\r\n this.myTeamWidgetsService.getSubordinates(this.baseUrl(), {\r\n showDirectSubordinatesOnly: !this.showAllSubordinates(),\r\n pageIndex: this.pageIndex,\r\n pageSize: this.pageSize(),\r\n searchValue: this.searchValue(),\r\n }),\r\n );\r\n\r\n this.totalCount = response.ResponseData.Pagination.TotalCount;\r\n const pageData = response.ResponseData.Data;\r\n\r\n if (reset) {\r\n this.resetScrollPosition();\r\n }\r\n\r\n this.appendEmployees(pageData);\r\n this.loadedCount += pageData.length;\r\n this.pageIndex += 1;\r\n\r\n const hasMore = this.loadedCount < this.totalCount && pageData.length > 0;\r\n this.hasMoreData.set(hasMore);\r\n } catch (err: any) {\r\n this.errorOccurred.emit(err?.error?.ResponseData?.Errors?.[0]?.Message);\r\n } finally {\r\n this.isDataLoading.set(false);\r\n if (reset) {\r\n this.isLoading.set(false);\r\n this.isLoadingChanged.emit(false);\r\n }\r\n }\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"isPopupVisible()\"\r\n [width]=\"'755px'\"\r\n [height]=\"'680px'\"\r\n [showCloseButton]=\"true\"\r\n [showTitle]=\"true\"\r\n [title]=\"'MyTeam' | translate\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n (onShown)=\"loadPage(true)\"\r\n (onHiding)=\"closePopup()\"\r\n>\r\n <ng-template #loadingIndicatorTemplate>\r\n <div [class]=\"loadingContainerClass()\">\r\n <dx-load-indicator [visible]=\"true\" [class]=\"loadingIndicatorClass()\"></dx-load-indicator>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #employeeCardTemplate let-employee>\r\n <div [class]=\"employeeCardClass()\">\r\n <div class=\"row g-0 w-100 align-items-center flex-nowrap\">\r\n <div [class]=\"employeeInfoColumnClass()\">\r\n <app-employee-main-info-card\r\n [employeeMainInfo]=\"toEmployeeMainInfo(employee)\"\r\n [searchValue]=\"searchValue()\"\r\n [showGrade]=\"showGrade()\"\r\n [showPropertySymbol]=\"true\"\r\n [showChangeEmployeeButton]=\"false\"\r\n ></app-employee-main-info-card>\r\n </div>\r\n <div [class]=\"contactColumnClass()\">\r\n <div [class]=\"contactContainerClass()\">\r\n <span [class]=\"contactTitleClass()\">{{ 'ContactInfo' | translate }}:</span>\r\n <span [class]=\"contactRowClass()\">\r\n <fa-icon [icon]=\"emailIcon()\" [class]=\"contactIconClass()\"></fa-icon>\r\n <span [class]=\"emailTextClass()\" [title]=\"getEmployeeEmail(employee)\" [innerHTML]=\"getEmployeeEmail(employee)\"></span>\r\n </span>\r\n <span [class]=\"contactRowClass()\">\r\n <fa-icon [icon]=\"phoneIcon()\" [class]=\"contactIconClass()\"></fa-icon>\r\n <span [innerHTML]=\"employee.MobileNumber ?? '-'\"></span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div [class]=\"headerRowClass()\">\r\n <div [class]=\"switchContainerClass()\">\r\n <input\r\n [class]=\"switchInputClass()\"\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n id=\"myTeamDirectOnlySwitch\"\r\n [checked]=\"showAllSubordinates()\"\r\n (change)=\"onToggleChange($event)\"\r\n />\r\n <label [class]=\"switchLabelClass()\" for=\"myTeamDirectOnlySwitch\">\r\n {{ 'ShowAllSubordinates' | translate }}\r\n </label>\r\n </div>\r\n <dx-text-box\r\n [value]=\"searchValue()\"\r\n [placeholder]=\"'Search...' | translate\"\r\n [width]=\"'250px'\"\r\n mode=\"search\"\r\n (onValueChanged)=\"onSearchChanged($event.value)\"\r\n ></dx-text-box>\r\n </div>\r\n\r\n <dx-scroll-view\r\n #dataScrollView\r\n [height]=\"500\"\r\n [width]=\"'100%'\"\r\n [elementAttr]=\"{ class: scrollViewClass() }\"\r\n [scrollByContent]=\"true\"\r\n [scrollByThumb]=\"true\"\r\n [showScrollbar]=\"'always'\"\r\n [bounceEnabled]=\"false\"\r\n (onReachBottom)=\"onReachBottom($event)\"\r\n >\r\n <div [class]=\"groupedListClass()\">\r\n @if (isDataLoading() && items().length === 0) {\r\n <ng-container *ngTemplateOutlet=\"loadingIndicatorTemplate\"></ng-container>\r\n } @else if (items().length === 0) {\r\n <div [class]=\"emptyStateClass()\">\r\n {{ 'NoDataToDisplay' | translate }}\r\n </div>\r\n } @else {\r\n @for (group of items(); track group.adminUnitName) {\r\n @if (showAllSubordinates()) {\r\n <div [class]=\"groupHeaderClass()\" [innerHTML]=\"group.adminUnitName | highlight: searchValue()\"></div>\r\n }\r\n @for (emp of group.employees; track emp.EmployeeNumber) {\r\n <ng-container *ngTemplateOutlet=\"employeeCardTemplate; context: { $implicit: emp }\"></ng-container>\r\n }\r\n }\r\n @if (isDataLoading()) {\r\n <ng-container *ngTemplateOutlet=\"loadingIndicatorTemplate\"></ng-container>\r\n }\r\n }\r\n </div>\r\n </dx-scroll-view>\r\n</dx-popup>\r\n","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib/my-main-details-widget/my-main-details-widget.component';\r\nexport * from './lib/my-upcoming-events-widget/my-upcoming-events-widget.component';\r\nexport * from './lib/shared/types/common';\r\nexport * from './lib/shared/services/constants.service';\r\nexport * from './lib/shared/components/card-header/card-header.component';\r\nexport * from './lib/my-calendar-widget/my-calendar-widget.component';\r\nexport * from './lib/shared/components/hr-employee-calendar/hr-employee-calendar.component';\r\nexport * from './lib/my-profile/bank-info-widget/my-profile-bank-info-widget.component';\r\nexport * from './lib/my-profile/personal-info-main-widget/my-profile-personal-info-main-widget.component';\r\nexport * from './lib/my-profile/contact-widget/my-profile-contact-widget.component';\r\nexport * from './lib/my-profile/languages-widget/my-profile-languages-widget.component';\r\nexport * from './lib/my-profile/other-nationalities-widget/my-profile-other-nationalities-widget.component';\r\nexport * from './lib/my-profile/address-widget/my-profile-address-widget.component';\r\nexport * from './lib/my-profile/job-info-widget/my-profile-job-info-widget.component';\r\nexport * from './lib/my-profile/contract-widget/my-profile-contract-widget.component';\r\nexport * from './lib/my-profile/salary-widget/my-profile-salary-widget.component';\r\nexport * from './lib/my-profile/service-charge-widget/my-profile-service-charge-widget.component';\r\nexport * from './lib/my-next-week-vacation-insights-widget/my-next-week-vacation-insights-widget.component';\r\nexport * from './lib/my-profile/experiences-widget/my-profile-experiences-widget-component';\r\nexport * from './lib/my-profile/degrees-widget/my-profile-degrees-widget-component';\r\nexport * from './lib/my-profile/employee-dependents-widget/my-profile-employee-dependents-component';\r\nexport * from './lib/my-profile/vacations-widget/my-profile-vacations-widget.component';\r\nexport * from './lib/my-profile/indemnity-widget/my-profile-indemnity-widget.component';\r\nexport * from './lib/my-profile/ticket-widget/my-profile-ticket-widget.component';\r\nexport * from './lib/my-profile/medical-insurance-widget/my-profile-medical-insurance-widget.component';\r\nexport * from './lib/my-profile/entitlements-others-widget/my-profile-entitlements-others-widget.component';\r\nexport * from './lib/my-profile/dependents-documents-widget/my-profile-dependents-documents-widget';\r\nexport * from './lib/my-profile/official-documents-widget/my-profile-official-documents-widget';\r\nexport * from './lib/shared/services/translate.service';\r\nexport * from './lib/shared/pipes/translate.pipe';\r\nexport * from './lib/my-team-subordinates-popup-widget/components/my-team-subordinates-popup/my-team-popup.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HRTranslateService","i2.BankInformationCacheService","i3.EntitlementsCacheService","i4.JobInformationCacheService","i5.PersonalInformationCacheService","i6.QualificationsCacheService","i7.ProfileEmployeeDependentsCach","i8.ProfileDocumentsCacheService","i1.HRSelfWidgetsService","i2.HRConstantsService","i3.HRTranslatePipe","i4","i1","i1.HRTranslatePipe","i2","i1.HRCommonMethodsService","i2.HRSelfWidgetsService","i3","i2.HRCommonMethodsService","i2.HRTranslatePipe","faPhone"],"mappings":"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"}
|