@skysoftware-co/bayan-hr-widgets-ui 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skysoftware-co-bayan-hr-widgets-ui.mjs","sources":["../../../projects/shared-ui/src/lib/types/common.ts","../../../projects/shared-ui/src/lib/common/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/my-upcoming-events-widget/card-header/card-header.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/card-header/card-header.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/event-item/event-item.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/event-item/event-item.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/event-tab-bar/event-tab-bar.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/event-tab-bar/event-tab-bar.component.html","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/events-popup/events-popup.component.ts","../../../projects/shared-ui/src/lib/my-upcoming-events-widget/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/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\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\nexport type UpcomingEventsLabels = {\r\n upcomingEvents: string;\r\n birthday: string;\r\n publicHoliday: string;\r\n during: string;\r\n isIn: string;\r\n is: string;\r\n in: string;\r\n noEvents: string;\r\n all: string;\r\n viewAll: string;\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}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { DxTooltipModule } from 'devextreme-angular';\r\nimport { DecimalPipe, NgClass } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\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 '../types/common';\r\nimport { HrConstantsService } from '../common/constants.service';\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],\r\n templateUrl: './my-main-details-widget.component.html',\r\n})\r\nexport class HrMyMainDetailsWidgetComponent implements OnInit {\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() reportingToLabel: string = 'ReportingTo';\r\n @Input() emptyReportingToLabel: string = 'NotAnknown';\r\n @Input() serviceYearsLabel: string = 'ServiceYears';\r\n @Input() moreLabel: string = 'More';\r\n @Input() dayLabel: string = 'day';\r\n @Input() daysLabel: string = 'days';\r\n @Input() yearsLabel: string = 'Years';\r\n @Input() monthsLabel: string = 'Months';\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 http: HttpClient,\r\n private constants: HrConstantsService) {\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 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.yearsLabel} ${responses.ServicePeriod.Months} ${this.monthsLabel}`,\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.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 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 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.http.get<any>(`${this.baseUrl}/hr/employee-portal/main-details`, {\r\n headers: { 'api-version': '2' }\r\n });\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 {{reportingToLabel}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n @if(employeeMainInfo?.ReportingTo){\r\n {{employeeMainInfo?.ReportingTo}}\r\n }@else{\r\n {{emptyReportingToLabel}}\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 {{serviceYearsLabel}}\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 ? dayLabel : daysLabel}}</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)}} {{moreLabel}}\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\">{{moreLabel}}</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 ? dayLabel : daysLabel}}</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, UpcomingEventsLabels } from '../../types/common';\r\n\r\n@Component({\r\n selector: 'hr-event-item',\r\n standalone: true,\r\n imports: [FontAwesomeModule, DatePipe, LowerCasePipe],\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() labels!: UpcomingEventsLabels;\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 ' + (showDates ? 'my-3' : 'my-1')\">\r\n <fa-icon [icon]=\"isBirthday(event) ? cakeCandles : treePalm\"\r\n [class]=\"eventIconClass\"\r\n [title]=\"isBirthday(event) ? labels.birthday : labels.publicHoliday\">\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>{{ labels.birthday }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ labels.during }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ labels.birthday }} {{ (event.IsIn2Days ? labels.isIn : labels.is) | lowercase }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ labels.in + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (labels.is | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description }}</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\">{{ weekendWarningDescription }}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ labels.noEvents }}</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, UpcomingEventsLabels } from '../../types/common';\r\nimport { faCakeCandles, faTreePalm } from '@fortawesome/pro-light-svg-icons';\r\n\r\n@Component({\r\n selector: 'hr-event-tab-bar',\r\n standalone: true,\r\n imports: [FontAwesomeModule, NgClass],\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() labels!: UpcomingEventsLabels;\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 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.labels.all;\r\n if (tab.id === EventTypeEnum.Birthdays) return this.labels.birthday;\r\n return this.labels.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, UpcomingEventsLabels } from '../../types/common';\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],\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() labels!: UpcomingEventsLabels;\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 [labels]=\"labels\"\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 [labels]=\"labels\"\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\">{{ labels.noEvents }}</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 { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCalendarStar } from '@fortawesome/pro-light-svg-icons';\r\nimport { SkyAlertToastService, SkyAlertType } from '@skysoftware-co/sky-components-ui';\r\nimport { HrCardHeaderComponent } from './card-header/card-header.component';\r\nimport { HrEventItemComponent } from './event-item/event-item.component';\r\nimport { HrEventTabBarComponent } from './event-tab-bar/event-tab-bar.component';\r\nimport { HrEventsPopupComponent } from './events-popup/events-popup.component';\r\nimport {\r\n EventOption, RelativeDay, Birthday, PublicHoliday, UpcomingEventsV2,\r\n EventTypeEnum, FilteredUpcomingEvent, UpcomingEventsLabels\r\n} from '../types/common';\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],\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-4 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 @Input() labels: UpcomingEventsLabels = {\r\n upcomingEvents: 'Upcoming Events',\r\n birthday: 'Birthday',\r\n publicHoliday: 'Public Holiday',\r\n during: 'During',\r\n isIn: 'is in',\r\n is: 'is',\r\n in: 'In',\r\n noEvents: 'There are no events',\r\n all: 'All',\r\n viewAll: 'View All',\r\n };\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 http: HttpClient,\r\n private alertToastService: SkyAlertToastService\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 let params = new HttpParams().set('EventOption', eventOption);\r\n return this.http.get<any>(`${this.baseUrl}/hr/employee-portal/upcoming-events`, {\r\n params,\r\n headers: { 'api-version': '2' }\r\n });\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 if (error.status == 401) return;\r\n this.alertToastService.toastInformation(error.error.ResponseData.Errors[0].Message, SkyAlertType.Error);\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 filtered = birthdays.map(b => this.mapBirthday(b));\r\n } else if (eventType === EventTypeEnum.PublicHolidays) {\r\n filtered = holidays.map(h => this.mapHoliday(h));\r\n } else {\r\n if (birthdays.length > 0 && holidays.length > 0) {\r\n if (limit) {\r\n filtered = [this.mapBirthday(birthdays[0]), this.mapHoliday(holidays[0])];\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 } else if (birthdays.length > 0) {\r\n filtered = birthdays.map(b => this.mapBirthday(b));\r\n } else {\r\n filtered = holidays.map(h => this.mapHoliday(h));\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 return {\r\n EventDate: new Date(b.Birthdate),\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]=\"labels.upcomingEvents\"></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 [labels]=\"labels\"\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 [labels]=\"labels\"\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()\">{{ labels.viewAll }}</a>\r\n </div>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ labels.noEvents }}</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]=\"labels.upcomingEvents\"\r\n [selectedEventType]=\"selectedPopupEventType\"\r\n [labels]=\"labels\"\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","/*\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/types/common';\r\nexport * from './lib/common/constants.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.HrConstantsService","i3","i1","i2"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@skysoftware-co/bayan-hr-widgets-ui" />
5
+ export * from './public-api';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HrConstantsService {
3
+ defaultVacationBalanceColor: string;
4
+ defaultVacationColor: string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrConstantsService, never>;
6
+ static ɵprov: i0.ɵɵInjectableDeclaration<HrConstantsService>;
7
+ }
@@ -0,0 +1,71 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';
4
+ import { ShortcutIconDTO } from '@skysoftware-co/sky-components-ui';
5
+ import { MyMainDetailsWidgetDetails } from '../types/common';
6
+ import { HrConstantsService } from '../common/constants.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class HrMyMainDetailsWidgetComponent implements OnInit {
9
+ private http;
10
+ private constants;
11
+ employeeMainInfo: MyMainDetailsWidgetDetails | null;
12
+ onShortcutClicked: EventEmitter<ShortcutIconDTO>;
13
+ isLoadingChanged: EventEmitter<boolean>;
14
+ badgeClass: string;
15
+ badgeImageClass: string;
16
+ badgeWidth: string;
17
+ badgeHeight: string;
18
+ employeeInfoContainerClass: string;
19
+ employeeDetailsClass: string;
20
+ employeeNameContainerClass: string;
21
+ employeeNameClass: string;
22
+ employeePositionClass: string;
23
+ employeeGradeClass: string;
24
+ containerClass: string;
25
+ cardBodyClass: string;
26
+ headerRowClass: string;
27
+ shortcutsContainerClass: string;
28
+ shortcutItemClass: string;
29
+ shortcutIconContainerClass: string;
30
+ shortcutIconClass: string;
31
+ shortcutTextClass: string;
32
+ detailsRowClass: string;
33
+ reportingBlockClass: string;
34
+ captionLabelClasses: string;
35
+ captionLabelValueClass: string;
36
+ vacationBalancesContainerClass: string;
37
+ vacationBalanceItemClass: string;
38
+ vacationBalanceHeaderClass: string;
39
+ vacationColorDotClass: string;
40
+ vacationTypeNameClass: string;
41
+ vacationBalanceValueRowClass: string;
42
+ vacationBalanceValueClass: string;
43
+ tooltipTriggerLinkClass: string;
44
+ tooltipTriggerTextClass: string;
45
+ tooltipVacationRowClass: string;
46
+ tooltipVacationNameContainerClass: string;
47
+ tooltipVacationNameClass: string;
48
+ reportingToLabel: string;
49
+ emptyReportingToLabel: string;
50
+ serviceYearsLabel: string;
51
+ moreLabel: string;
52
+ dayLabel: string;
53
+ daysLabel: string;
54
+ yearsLabel: string;
55
+ monthsLabel: string;
56
+ defaultVacationBalanceColor: string;
57
+ defaultVacationColor: string;
58
+ baseUrl: string;
59
+ employeeBadge: BayanEmployeeBadgeDTO;
60
+ isMobile: boolean;
61
+ isTablet: boolean;
62
+ shortcuts: ShortcutIconDTO[];
63
+ constructor(http: HttpClient, constants: HrConstantsService);
64
+ ngOnInit(): void;
65
+ loadEmployeeMainInfo(): void;
66
+ shortcutClicked(icon: ShortcutIconDTO): void;
67
+ handleEmployeePhotoError(): void;
68
+ getEmployeeMainDetails(): import("rxjs").Observable<any>;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrMyMainDetailsWidgetComponent, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrMyMainDetailsWidgetComponent, "hr-my-main-details-widget", never, { "badgeClass": { "alias": "badgeClass"; "required": false; }; "badgeImageClass": { "alias": "badgeImageClass"; "required": false; }; "badgeWidth": { "alias": "badgeWidth"; "required": false; }; "badgeHeight": { "alias": "badgeHeight"; "required": false; }; "employeeInfoContainerClass": { "alias": "employeeInfoContainerClass"; "required": false; }; "employeeDetailsClass": { "alias": "employeeDetailsClass"; "required": false; }; "employeeNameContainerClass": { "alias": "employeeNameContainerClass"; "required": false; }; "employeeNameClass": { "alias": "employeeNameClass"; "required": false; }; "employeePositionClass": { "alias": "employeePositionClass"; "required": false; }; "employeeGradeClass": { "alias": "employeeGradeClass"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "cardBodyClass": { "alias": "cardBodyClass"; "required": false; }; "headerRowClass": { "alias": "headerRowClass"; "required": false; }; "shortcutsContainerClass": { "alias": "shortcutsContainerClass"; "required": false; }; "shortcutItemClass": { "alias": "shortcutItemClass"; "required": false; }; "shortcutIconContainerClass": { "alias": "shortcutIconContainerClass"; "required": false; }; "shortcutIconClass": { "alias": "shortcutIconClass"; "required": false; }; "shortcutTextClass": { "alias": "shortcutTextClass"; "required": false; }; "detailsRowClass": { "alias": "detailsRowClass"; "required": false; }; "reportingBlockClass": { "alias": "reportingBlockClass"; "required": false; }; "captionLabelClasses": { "alias": "captionLabelClasses"; "required": false; }; "captionLabelValueClass": { "alias": "captionLabelValueClass"; "required": false; }; "vacationBalancesContainerClass": { "alias": "vacationBalancesContainerClass"; "required": false; }; "vacationBalanceItemClass": { "alias": "vacationBalanceItemClass"; "required": false; }; "vacationBalanceHeaderClass": { "alias": "vacationBalanceHeaderClass"; "required": false; }; "vacationColorDotClass": { "alias": "vacationColorDotClass"; "required": false; }; "vacationTypeNameClass": { "alias": "vacationTypeNameClass"; "required": false; }; "vacationBalanceValueRowClass": { "alias": "vacationBalanceValueRowClass"; "required": false; }; "vacationBalanceValueClass": { "alias": "vacationBalanceValueClass"; "required": false; }; "tooltipTriggerLinkClass": { "alias": "tooltipTriggerLinkClass"; "required": false; }; "tooltipTriggerTextClass": { "alias": "tooltipTriggerTextClass"; "required": false; }; "tooltipVacationRowClass": { "alias": "tooltipVacationRowClass"; "required": false; }; "tooltipVacationNameContainerClass": { "alias": "tooltipVacationNameContainerClass"; "required": false; }; "tooltipVacationNameClass": { "alias": "tooltipVacationNameClass"; "required": false; }; "reportingToLabel": { "alias": "reportingToLabel"; "required": false; }; "emptyReportingToLabel": { "alias": "emptyReportingToLabel"; "required": false; }; "serviceYearsLabel": { "alias": "serviceYearsLabel"; "required": false; }; "moreLabel": { "alias": "moreLabel"; "required": false; }; "dayLabel": { "alias": "dayLabel"; "required": false; }; "daysLabel": { "alias": "daysLabel"; "required": false; }; "yearsLabel": { "alias": "yearsLabel"; "required": false; }; "monthsLabel": { "alias": "monthsLabel"; "required": false; }; "defaultVacationBalanceColor": { "alias": "defaultVacationBalanceColor"; "required": false; }; "defaultVacationColor": { "alias": "defaultVacationColor"; "required": false; }; "baseUrl": { "alias": "baseUrl"; "required": false; }; "isMobile": { "alias": "isMobile"; "required": false; }; "isTablet": { "alias": "isTablet"; "required": false; }; "shortcuts": { "alias": "shortcuts"; "required": false; }; }, { "onShortcutClicked": "onShortcutClicked"; "isLoadingChanged": "isLoadingChanged"; }, never, never, true, never>;
71
+ }
@@ -0,0 +1,11 @@
1
+ import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class HrCardHeaderComponent {
4
+ icon: IconDefinition;
5
+ title: string;
6
+ containerClass: string;
7
+ iconClass: string;
8
+ titleClass: string;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrCardHeaderComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrCardHeaderComponent, "hr-card-header", never, { "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "iconClass": { "alias": "iconClass"; "required": false; }; "titleClass": { "alias": "titleClass"; "required": false; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,26 @@
1
+ import { EventTypeEnum, FilteredUpcomingEvent, UpcomingEventsLabels } from '../../types/common';
2
+ import * as i0 from "@angular/core";
3
+ export declare class HrEventItemComponent {
4
+ events: FilteredUpcomingEvent[];
5
+ showDates: boolean;
6
+ showProperty: boolean;
7
+ selectedLanguage: string;
8
+ selectedEventType: EventTypeEnum | null;
9
+ weekendWarningDescription: string | null;
10
+ labels: UpcomingEventsLabels;
11
+ eventIconClass: string;
12
+ eventNameBoldClass: string;
13
+ eventDescriptionClass: string;
14
+ propertyBadgeClass: string;
15
+ noEventsTextClass: string;
16
+ warningTextClass: string;
17
+ dateFormat: string;
18
+ eventTypeEnum: typeof EventTypeEnum;
19
+ cakeCandles: import("@fortawesome/pro-light-svg-icons").IconDefinition;
20
+ treePalm: import("@fortawesome/pro-light-svg-icons").IconDefinition;
21
+ get isArabic(): boolean;
22
+ isBirthday(event: FilteredUpcomingEvent): boolean;
23
+ hasPropertyBadge(event: FilteredUpcomingEvent): boolean;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrEventItemComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrEventItemComponent, "hr-event-item", never, { "events": { "alias": "events"; "required": false; }; "showDates": { "alias": "showDates"; "required": false; }; "showProperty": { "alias": "showProperty"; "required": false; }; "selectedLanguage": { "alias": "selectedLanguage"; "required": false; }; "selectedEventType": { "alias": "selectedEventType"; "required": false; }; "weekendWarningDescription": { "alias": "weekendWarningDescription"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "eventIconClass": { "alias": "eventIconClass"; "required": false; }; "eventNameBoldClass": { "alias": "eventNameBoldClass"; "required": false; }; "eventDescriptionClass": { "alias": "eventDescriptionClass"; "required": false; }; "propertyBadgeClass": { "alias": "propertyBadgeClass"; "required": false; }; "noEventsTextClass": { "alias": "noEventsTextClass"; "required": false; }; "warningTextClass": { "alias": "warningTextClass"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; }, {}, never, never, true, never>;
26
+ }
@@ -0,0 +1,29 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { EventTypeEnum, UpcomingEventsLabels } from '../../types/common';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HrEventTabBarComponent {
5
+ selectedType: EventTypeEnum | null;
6
+ selectedLanguage: string;
7
+ labels: UpcomingEventsLabels;
8
+ tabSelectedClass: string;
9
+ tabNotSelectedClass: string;
10
+ tabTextSelectedClass: string;
11
+ tabTextNotSelectedClass: string;
12
+ containerClass: string;
13
+ tabItemClass: string;
14
+ tabTextClass: string;
15
+ tabIconClass: string;
16
+ tabSelected: EventEmitter<EventTypeEnum | null>;
17
+ tabList: ({
18
+ id: null;
19
+ icon: null;
20
+ } | {
21
+ id: EventTypeEnum;
22
+ icon: import("@fortawesome/pro-light-svg-icons").IconDefinition;
23
+ })[];
24
+ getTabText(tab: {
25
+ id: EventTypeEnum | null;
26
+ }): string;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrEventTabBarComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrEventTabBarComponent, "hr-event-tab-bar", never, { "selectedType": { "alias": "selectedType"; "required": false; }; "selectedLanguage": { "alias": "selectedLanguage"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "tabSelectedClass": { "alias": "tabSelectedClass"; "required": false; }; "tabNotSelectedClass": { "alias": "tabNotSelectedClass"; "required": false; }; "tabTextSelectedClass": { "alias": "tabTextSelectedClass"; "required": false; }; "tabTextNotSelectedClass": { "alias": "tabTextNotSelectedClass"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "tabItemClass": { "alias": "tabItemClass"; "required": false; }; "tabTextClass": { "alias": "tabTextClass"; "required": false; }; "tabIconClass": { "alias": "tabIconClass"; "required": false; }; }, { "tabSelected": "tabSelected"; }, never, never, true, never>;
29
+ }
@@ -0,0 +1,38 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { EventTypeEnum, FilteredUpcomingEvent, UpcomingEventsLabels } from '../../types/common';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HrEventsPopupComponent {
5
+ visible: boolean;
6
+ events: FilteredUpcomingEvent[];
7
+ hasBirthdays: boolean;
8
+ hasHolidays: boolean;
9
+ isLoading: boolean;
10
+ selectedLanguage: string;
11
+ showProperty: boolean;
12
+ weekendWarningDescription: string | null;
13
+ popupTitle: string;
14
+ selectedEventType: EventTypeEnum | null;
15
+ labels: UpcomingEventsLabels;
16
+ tabSelectedClass: string;
17
+ tabNotSelectedClass: string;
18
+ tabTextSelectedClass: string;
19
+ tabTextNotSelectedClass: string;
20
+ tabContainerClass: string;
21
+ tabItemClass: string;
22
+ tabTextClass: string;
23
+ tabIconClass: string;
24
+ eventIconClass: string;
25
+ eventNameBoldClass: string;
26
+ eventDescriptionClass: string;
27
+ propertyBadgeClass: string;
28
+ noEventsTextClass: string;
29
+ warningTextClass: string;
30
+ dateFormat: string;
31
+ visibleChange: EventEmitter<boolean>;
32
+ tabSelected: EventEmitter<EventTypeEnum | null>;
33
+ closed: EventEmitter<void>;
34
+ onTabSelected(eventType: EventTypeEnum | null): void;
35
+ onPopupClose(): void;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrEventsPopupComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrEventsPopupComponent, "hr-upcoming-events-popup", never, { "visible": { "alias": "visible"; "required": false; }; "events": { "alias": "events"; "required": false; }; "hasBirthdays": { "alias": "hasBirthdays"; "required": false; }; "hasHolidays": { "alias": "hasHolidays"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "selectedLanguage": { "alias": "selectedLanguage"; "required": false; }; "showProperty": { "alias": "showProperty"; "required": false; }; "weekendWarningDescription": { "alias": "weekendWarningDescription"; "required": false; }; "popupTitle": { "alias": "popupTitle"; "required": false; }; "selectedEventType": { "alias": "selectedEventType"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "tabSelectedClass": { "alias": "tabSelectedClass"; "required": false; }; "tabNotSelectedClass": { "alias": "tabNotSelectedClass"; "required": false; }; "tabTextSelectedClass": { "alias": "tabTextSelectedClass"; "required": false; }; "tabTextNotSelectedClass": { "alias": "tabTextNotSelectedClass"; "required": false; }; "tabContainerClass": { "alias": "tabContainerClass"; "required": false; }; "tabItemClass": { "alias": "tabItemClass"; "required": false; }; "tabTextClass": { "alias": "tabTextClass"; "required": false; }; "tabIconClass": { "alias": "tabIconClass"; "required": false; }; "eventIconClass": { "alias": "eventIconClass"; "required": false; }; "eventNameBoldClass": { "alias": "eventNameBoldClass"; "required": false; }; "eventDescriptionClass": { "alias": "eventDescriptionClass"; "required": false; }; "propertyBadgeClass": { "alias": "propertyBadgeClass"; "required": false; }; "noEventsTextClass": { "alias": "noEventsTextClass"; "required": false; }; "warningTextClass": { "alias": "warningTextClass"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; }, { "visibleChange": "visibleChange"; "tabSelected": "tabSelected"; "closed": "closed"; }, never, never, true, never>;
38
+ }
@@ -0,0 +1,58 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { SkyAlertToastService } from '@skysoftware-co/sky-components-ui';
4
+ import { Birthday, PublicHoliday, EventTypeEnum, FilteredUpcomingEvent, UpcomingEventsLabels } from '../types/common';
5
+ import * as i0 from "@angular/core";
6
+ export declare class MyUpcomingEventsWidgetComponent implements OnInit {
7
+ private http;
8
+ private alertToastService;
9
+ baseUrl: string;
10
+ weekendWarningDescription: string;
11
+ selectedLanguage: string;
12
+ showProperty: boolean;
13
+ cardClass: string;
14
+ noEventsTextClass: string;
15
+ viewAllLinkClass: string;
16
+ viewAllContainerClass: string;
17
+ warningTextClass: string;
18
+ tabSelectedClass: string;
19
+ tabNotSelectedClass: string;
20
+ tabTextSelectedClass: string;
21
+ tabTextNotSelectedClass: string;
22
+ tabContainerClass: string;
23
+ tabItemClass: string;
24
+ tabTextClass: string;
25
+ tabIconClass: string;
26
+ eventIconClass: string;
27
+ eventNameBoldClass: string;
28
+ eventDescriptionClass: string;
29
+ propertyBadgeClass: string;
30
+ dateFormat: string;
31
+ labels: UpcomingEventsLabels;
32
+ isLoadingChanged: EventEmitter<boolean>;
33
+ viewAllClicked: EventEmitter<void>;
34
+ externalViewAll: boolean;
35
+ selectedEventType: EventTypeEnum | null;
36
+ selectedPopupEventType: EventTypeEnum | null;
37
+ calendarStar: import("@fortawesome/pro-light-svg-icons").IconDefinition;
38
+ filteredEvents: FilteredUpcomingEvent[];
39
+ birthdays: Birthday[];
40
+ holidays: PublicHoliday[];
41
+ popupEvents: FilteredUpcomingEvent[];
42
+ popupVisible: boolean;
43
+ weekendWarning: string | null;
44
+ constructor(http: HttpClient, alertToastService: SkyAlertToastService);
45
+ ngOnInit(): void;
46
+ onTabClick(eventType: EventTypeEnum | null): void;
47
+ onPopupTabClick(eventType: EventTypeEnum | null): void;
48
+ showPopup(): void;
49
+ onPopupClose(): void;
50
+ private cardData;
51
+ private getUpcomingEvents;
52
+ private loadEvents;
53
+ private buildEvents;
54
+ private mapBirthday;
55
+ private mapHoliday;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<MyUpcomingEventsWidgetComponent, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<MyUpcomingEventsWidgetComponent, "hr-my-upcoming-events-widget", never, { "baseUrl": { "alias": "baseUrl"; "required": false; }; "weekendWarningDescription": { "alias": "weekendWarningDescription"; "required": false; }; "selectedLanguage": { "alias": "selectedLanguage"; "required": false; }; "showProperty": { "alias": "showProperty"; "required": false; }; "cardClass": { "alias": "cardClass"; "required": false; }; "noEventsTextClass": { "alias": "noEventsTextClass"; "required": false; }; "viewAllLinkClass": { "alias": "viewAllLinkClass"; "required": false; }; "viewAllContainerClass": { "alias": "viewAllContainerClass"; "required": false; }; "warningTextClass": { "alias": "warningTextClass"; "required": false; }; "tabSelectedClass": { "alias": "tabSelectedClass"; "required": false; }; "tabNotSelectedClass": { "alias": "tabNotSelectedClass"; "required": false; }; "tabTextSelectedClass": { "alias": "tabTextSelectedClass"; "required": false; }; "tabTextNotSelectedClass": { "alias": "tabTextNotSelectedClass"; "required": false; }; "tabContainerClass": { "alias": "tabContainerClass"; "required": false; }; "tabItemClass": { "alias": "tabItemClass"; "required": false; }; "tabTextClass": { "alias": "tabTextClass"; "required": false; }; "tabIconClass": { "alias": "tabIconClass"; "required": false; }; "eventIconClass": { "alias": "eventIconClass"; "required": false; }; "eventNameBoldClass": { "alias": "eventNameBoldClass"; "required": false; }; "eventDescriptionClass": { "alias": "eventDescriptionClass"; "required": false; }; "propertyBadgeClass": { "alias": "propertyBadgeClass"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "externalViewAll": { "alias": "externalViewAll"; "required": false; }; }, { "isLoadingChanged": "isLoadingChanged"; "viewAllClicked": "viewAllClicked"; }, never, never, true, never>;
58
+ }
@@ -0,0 +1,84 @@
1
+ export type MyMainDetailsWidgetDetails = {
2
+ EmployeeNumber: string;
3
+ EmployeeName: string;
4
+ EmployeeNameInitials: string;
5
+ PositionName: string;
6
+ GradeName: string | null;
7
+ PhotoPath: string | null;
8
+ ReportingTo: string | null;
9
+ ServiceYears: string;
10
+ VacationBalances: VacationBalance[];
11
+ AttendanceUrl: string | null;
12
+ VacationStatementUrl: string | null;
13
+ };
14
+ export type VacationBalance = {
15
+ VacationTypeName: string;
16
+ VacationTypeColor: string;
17
+ CurrentBalance: number | null;
18
+ };
19
+ export declare enum MainWidgetShortcut {
20
+ Profile = 0,
21
+ PaySlip = 1,
22
+ Attendance = 2,
23
+ VacationStatement = 3,
24
+ Loans = 4
25
+ }
26
+ export declare enum EventOption {
27
+ Birthday = 1,
28
+ PublicHoliday = 2,
29
+ All = 3
30
+ }
31
+ export declare enum RelativeDay {
32
+ Today = 0,
33
+ Tomorrow = 1,
34
+ TwoDays = 2
35
+ }
36
+ export declare enum PublicHolidayWeekContext {
37
+ ThisWeek = 0,
38
+ NextWeek = 1
39
+ }
40
+ export type Birthday = {
41
+ EmployeePropertySymbol: string;
42
+ EmployeePropertyName: string;
43
+ EmployeeShortName: string;
44
+ Birthdate: Date;
45
+ RelativeDay: RelativeDay;
46
+ };
47
+ export type PublicHoliday = {
48
+ StartDate: Date;
49
+ EndDate: Date;
50
+ Description: string;
51
+ WeekContext: PublicHolidayWeekContext;
52
+ };
53
+ export type UpcomingEventsV2 = {
54
+ Birthdays: Birthday[];
55
+ PublicHolidays: PublicHoliday[];
56
+ IsWeekendConfigured: boolean;
57
+ };
58
+ export declare enum EventTypeEnum {
59
+ Birthdays = 1,
60
+ PublicHolidays = 2
61
+ }
62
+ export type FilteredUpcomingEvent = {
63
+ EventDate: Date;
64
+ Name: string;
65
+ EventType: EventTypeEnum;
66
+ Description: string;
67
+ StartDate?: Date;
68
+ EndDate?: Date;
69
+ IsIn2Days?: boolean;
70
+ PropertyName?: string;
71
+ PropertySymbol?: string;
72
+ };
73
+ export type UpcomingEventsLabels = {
74
+ upcomingEvents: string;
75
+ birthday: string;
76
+ publicHoliday: string;
77
+ during: string;
78
+ isIn: string;
79
+ is: string;
80
+ in: string;
81
+ noEvents: string;
82
+ all: string;
83
+ viewAll: string;
84
+ };
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@skysoftware-co/bayan-hr-widgets-ui",
3
+ "version": "1.0.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "19.2.14",
6
+ "@angular/core": "19.2.14"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./fesm2022/skysoftware-co-bayan-hr-widgets-ui.mjs"
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,4 @@
1
+ export * from './lib/my-main-details-widget/my-main-details-widget.component';
2
+ export * from './lib/my-upcoming-events-widget/my-upcoming-events-widget.component';
3
+ export * from './lib/types/common';
4
+ export * from './lib/common/constants.service';