@skysoftware-co/bayan-hr-widgets-ui 1.0.5 → 1.0.6
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.
|
@@ -600,11 +600,11 @@ class HREventItemComponent {
|
|
|
600
600
|
isBirthday(event) { return event.EventType === EventTypeEnum.Birthdays; }
|
|
601
601
|
hasPropertyBadge(event) { return this.showProperty && !!event.PropertySymbol; }
|
|
602
602
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HREventItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
603
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: HREventItemComponent, isStandalone: true, selector: "hr-event-item", inputs: { events: "events", showDates: "showDates", showProperty: "showProperty", selectedLanguage: "selectedLanguage", selectedEventType: "selectedEventType", weekendWarningDescription: "weekendWarningDescription", eventIconClass: "eventIconClass", eventNameBoldClass: "eventNameBoldClass", eventDescriptionClass: "eventDescriptionClass", propertyBadgeClass: "propertyBadgeClass", noEventsTextClass: "noEventsTextClass", warningTextClass: "warningTextClass", dateFormat: "dateFormat" }, ngImport: i0, template: "@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) ? ('Birthday' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</div>\r\n}\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
|
|
603
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: HREventItemComponent, isStandalone: true, selector: "hr-event-item", inputs: { events: "events", showDates: "showDates", showProperty: "showProperty", selectedLanguage: "selectedLanguage", selectedEventType: "selectedEventType", weekendWarningDescription: "weekendWarningDescription", eventIconClass: "eventIconClass", eventNameBoldClass: "eventNameBoldClass", eventDescriptionClass: "eventDescriptionClass", propertyBadgeClass: "propertyBadgeClass", noEventsTextClass: "noEventsTextClass", warningTextClass: "warningTextClass", dateFormat: "dateFormat" }, ngImport: i0, template: "@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' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</div>\r\n}\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: HRTranslatePipe, name: "HRTranslate" }] });
|
|
604
604
|
}
|
|
605
605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: HREventItemComponent, decorators: [{
|
|
606
606
|
type: Component,
|
|
607
|
-
args: [{ selector: 'hr-event-item', standalone: true, imports: [FontAwesomeModule, DatePipe, LowerCasePipe, HRTranslatePipe], template: "@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) ? ('Birthday' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</div>\r\n}\r\n}\r\n" }]
|
|
607
|
+
args: [{ selector: 'hr-event-item', standalone: true, imports: [FontAwesomeModule, DatePipe, LowerCasePipe, HRTranslatePipe], template: "@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' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</div>\r\n}\r\n}\r\n" }]
|
|
608
608
|
}], propDecorators: { events: [{
|
|
609
609
|
type: Input
|
|
610
610
|
}], showDates: [{
|
|
@@ -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/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/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/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/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\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\n","import { Injectable } from '@angular/core';\r\n\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@Injectable({\r\n providedIn: 'root'\r\n})\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 standalone: true,\r\n name: 'HRTranslate'\r\n})\r\nexport class HRTranslatePipe implements PipeTransform {\r\n\r\n constructor(private translateService: HRTranslateService) {}\r\n\r\n transform(key?: string): string {\r\n if (!key) return '';\r\n\r\n key = this.translateService.translateBuiltIn(key);\r\n\r\n const lexicon = this.translateService.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 return keyValue;\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 { 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 '../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 templateUrl: './my-main-details-widget.component.html',\r\n})\r\nexport class HRMyMainDetailsWidgetComponent 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 http: HttpClient,\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 }\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.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 {{'ReportingTo' | HRTranslate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n @if(employeeMainInfo?.ReportingTo){\r\n {{employeeMainInfo?.ReportingTo}}\r\n }@else{\r\n {{'NotAnknown' | HRTranslate}}\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' | HRTranslate}}\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') | HRTranslate}}</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' | HRTranslate}}\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' | HRTranslate}}</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') | HRTranslate}}</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 ' + (showDates ? 'my-3' : 'my-1')\">\r\n <fa-icon [icon]=\"isBirthday(event) ? cakeCandles : treePalm\"\r\n [class]=\"eventIconClass\"\r\n [title]=\"isBirthday(event) ? ('Birthday' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</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, 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' | HRTranslate }}</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 { 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 './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\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-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 @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 ) {}\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 },\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' | HRTranslate\"></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' | HRTranslate }}</a>\r\n </div>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</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' | HRTranslate\"\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRCommonMethodsService {\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","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' | HRTranslate}}</p></div>\r\n </div>\r\n <div [class]=\"legendItemClass\">\r\n <div [class]=\"legendDotClass + ' ' + dayOffDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'DayOff' | HRTranslate}}</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' | HRTranslate}}</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' | HRTranslate}}</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, OnInit, Output, ViewChild, inject } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { CalendarResponse, ScheduleCalenderVacation, 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 HRMyCalendarWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() headerContainerClass: string = '';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n 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 constants = inject(HRConstantsService);\r\n private 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 = new Date();\r\n maxDate: Date;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\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 ngOnInit(): void {\r\n this.loadCalendar();\r\n }\r\n\r\n private getCalendar(month: number, year: number, monthsCount: number) {\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>(`${this.baseUrl}/hr/employee-portal/calendar`, {\r\n params,\r\n headers: { 'api-version': '2' }\r\n });\r\n }\r\n\r\n private loadCalendar() {\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: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private mapCalendarData(data: CalendarResponse) {\r\n const result: ScheduleCalenderVacation[] = [];\r\n\r\n for (const v of data.Vacations) {\r\n result.push({\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\r\n for (const ph of data.PublicHolidays) {\r\n result.push({\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 }\r\n\r\n for (const od of data.OffDays) {\r\n result.push({\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 for (const ev of data.Events) {\r\n result.push({\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\r\n this.scheduleCalenderVacation = result;\r\n\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","<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | HRTranslate\"\r\n [containerClass]=\"'d-flex align-items-center mb-3 ' + headerContainerClass\">\r\n</hr-card-header>\r\n<hr-employee-calendar\r\n [showEvents]=\"true\"\r\n [showUpComingVacations]=\"true\"\r\n [scheduleCalenderVacation]=\"scheduleCalenderVacation\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [legendContainerClass]=\"legendContainerClass\"\r\n [legendRowClass]=\"legendRowClass\"\r\n [legendItemClass]=\"legendItemClass\"\r\n [legendDotClass]=\"legendDotClass\"\r\n [legendLabelClass]=\"legendLabelClass\"\r\n [publicHolidayDotClass]=\"publicHolidayDotClass\"\r\n [dayOffDotClass]=\"dayOffDotClass\"\r\n [eventsDotClass]=\"eventsDotClass\"\r\n [vacationsContainerClass]=\"vacationsContainerClass\"\r\n [vacationsItemClass]=\"vacationsItemClass\"\r\n [vacationsIconClass]=\"vacationsIconClass\"\r\n [calendarContainerClass]=\"calendarContainerClass\"\r\n [calendarClass]=\"calendarClass\">\r\n</hr-employee-calendar>\r\n","/*\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/services/translate.service';\r\nexport * from './lib/shared/pipes/translate.pipe';\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HRTranslateService","i2.HRConstantsService","i3.HRTranslatePipe","i1","i1.HRTranslatePipe","i2"],"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/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/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/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/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\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\n","import { Injectable } from '@angular/core';\r\n\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@Injectable({\r\n providedIn: 'root'\r\n})\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 standalone: true,\r\n name: 'HRTranslate'\r\n})\r\nexport class HRTranslatePipe implements PipeTransform {\r\n\r\n constructor(private translateService: HRTranslateService) {}\r\n\r\n transform(key?: string): string {\r\n if (!key) return '';\r\n\r\n key = this.translateService.translateBuiltIn(key);\r\n\r\n const lexicon = this.translateService.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 return keyValue;\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 { 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 '../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 templateUrl: './my-main-details-widget.component.html',\r\n})\r\nexport class HRMyMainDetailsWidgetComponent 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 http: HttpClient,\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 }\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.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 {{'ReportingTo' | HRTranslate}}\r\n </div>\r\n <div [class]=\"captionLabelValueClass\">\r\n @if(employeeMainInfo?.ReportingTo){\r\n {{employeeMainInfo?.ReportingTo}}\r\n }@else{\r\n {{'NotAnknown' | HRTranslate}}\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' | HRTranslate}}\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') | HRTranslate}}</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' | HRTranslate}}\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' | HRTranslate}}</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') | HRTranslate}}</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' | HRTranslate) : ('PublicHoliday' | HRTranslate)\">\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' | HRTranslate }}</span>\r\n <span [class]=\"eventNameBoldClass\">{{ ' ' + event.Name + ' ' }}</span>\r\n @if (event.IsIn2Days) { <span>{{ 'During' | HRTranslate }} </span> }\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}'s </span>\r\n <span>{{ ('Birthday' | HRTranslate) + ' ' + ((event.IsIn2Days ? ('isIn' | HRTranslate) : ('is' | HRTranslate)) | lowercase) }} </span>\r\n }\r\n } @else {\r\n @if (isArabic) {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }}</span> <span> {{ ('In' | HRTranslate) + ' ' }}</span>\r\n } @else {\r\n <span [class]=\"eventNameBoldClass\">{{ event.Name }} </span><span>{{ ' ' + (('is' | HRTranslate) | lowercase) }} </span>\r\n }\r\n }\r\n\r\n <span [class]=\"eventDescriptionClass\">{{ event.Description | HRTranslate }}</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 | HRTranslate}}</div>\r\n} @else {\r\n<div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</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, 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' | HRTranslate }}</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 { 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 './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\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-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 @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 ) {}\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 },\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' | HRTranslate\"></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' | HRTranslate }}</a>\r\n </div>\r\n } @else {\r\n <div [class]=\"noEventsTextClass\">{{ 'NoEvents' | HRTranslate }}</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' | HRTranslate\"\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class HRCommonMethodsService {\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","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' | HRTranslate}}</p></div>\r\n </div>\r\n <div [class]=\"legendItemClass\">\r\n <div [class]=\"legendDotClass + ' ' + dayOffDotClass\"></div>\r\n <div [class]=\"legendLabelClass\"><p>{{'DayOff' | HRTranslate}}</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' | HRTranslate}}</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' | HRTranslate}}</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, OnInit, Output, ViewChild, inject } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { CalendarResponse, ScheduleCalenderVacation, 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 HRMyCalendarWidgetComponent implements OnInit {\r\n\r\n @Input() baseUrl: string = '';\r\n @Input() headerContainerClass: string = '';\r\n @Output() isLoadingChanged = new EventEmitter<boolean>();\r\n\r\n 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 constants = inject(HRConstantsService);\r\n private 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 = new Date();\r\n maxDate: Date;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\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 ngOnInit(): void {\r\n this.loadCalendar();\r\n }\r\n\r\n private getCalendar(month: number, year: number, monthsCount: number) {\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>(`${this.baseUrl}/hr/employee-portal/calendar`, {\r\n params,\r\n headers: { 'api-version': '2' }\r\n });\r\n }\r\n\r\n private loadCalendar() {\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: (error: any) => {\r\n this.isLoadingChanged.emit(false);\r\n },\r\n });\r\n }\r\n\r\n private mapCalendarData(data: CalendarResponse) {\r\n const result: ScheduleCalenderVacation[] = [];\r\n\r\n for (const v of data.Vacations) {\r\n result.push({\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\r\n for (const ph of data.PublicHolidays) {\r\n result.push({\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 }\r\n\r\n for (const od of data.OffDays) {\r\n result.push({\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 for (const ev of data.Events) {\r\n result.push({\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\r\n this.scheduleCalenderVacation = result;\r\n\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","<hr-card-header\r\n [icon]=\"calendarIcon\"\r\n [title]=\"'Calendar' | HRTranslate\"\r\n [containerClass]=\"'d-flex align-items-center mb-3 ' + headerContainerClass\">\r\n</hr-card-header>\r\n<hr-employee-calendar\r\n [showEvents]=\"true\"\r\n [showUpComingVacations]=\"true\"\r\n [scheduleCalenderVacation]=\"scheduleCalenderVacation\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [legendContainerClass]=\"legendContainerClass\"\r\n [legendRowClass]=\"legendRowClass\"\r\n [legendItemClass]=\"legendItemClass\"\r\n [legendDotClass]=\"legendDotClass\"\r\n [legendLabelClass]=\"legendLabelClass\"\r\n [publicHolidayDotClass]=\"publicHolidayDotClass\"\r\n [dayOffDotClass]=\"dayOffDotClass\"\r\n [eventsDotClass]=\"eventsDotClass\"\r\n [vacationsContainerClass]=\"vacationsContainerClass\"\r\n [vacationsItemClass]=\"vacationsItemClass\"\r\n [vacationsIconClass]=\"vacationsIconClass\"\r\n [calendarContainerClass]=\"calendarContainerClass\"\r\n [calendarClass]=\"calendarClass\">\r\n</hr-employee-calendar>\r\n","/*\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/services/translate.service';\r\nexport * from './lib/shared/pipes/translate.pipe';\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HRTranslateService","i2.HRConstantsService","i3.HRTranslatePipe","i1","i1.HRTranslatePipe","i2"],"mappings":";;;;;;;;;;;;;;;;IAoBY;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB;AACjB,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACP,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IASlB;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;AACjB,IAAA,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;AACT,CAAC,EAJW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;IAMX;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EAJW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;IAMX;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,wBAAA,CAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACd,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;IA2BxB;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACb,IAAA,aAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AACpB,CAAC,EAHW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;IAsCb;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;AACjB,IAAA,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACb,IAAA,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;AAClB,IAAA,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACZ,CAAC,EANW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpGjC,MAAM,iBAAiB,GAA2C,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;MAKnE,kBAAkB,CAAA;IACrB,eAAe,GAAW,IAAI;IAC9B,OAAO,GAA2B,EAAE;AAE5C,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ;IACjC;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,eAAe;IAC7B;AAEA,IAAA,UAAU,CAAC,OAA+B,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;IAEA,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,gBAAgB,CAAC,GAAW,EAAA;AAC1B,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;QACnB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;AACtF,QAAA,OAAO,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG;IAC3C;wGAzBW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCHY,eAAe,CAAA;AAEN,IAAA,gBAAA;AAApB,IAAA,WAAA,CAAoB,gBAAoC,EAAA;QAApC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAAuB;AAE3D,IAAA,SAAS,CAAC,GAAY,EAAA;AACpB,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,EAAE;QAEnB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;QAClD,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,GAAI,CAAC,WAAW,EAAE,CAAC;AACrF,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,OAAO,CAAC,QAAQ,CAAC;QAEtC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7B,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC;gBAAE,QAAQ,IAAI,GAAG;YAC5B,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtF,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YAC/B;iBAAO;AACL,gBAAA,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC;YACvB;QACF;AACA,QAAA,OAAO,QAAQ;IACjB;wGAzBW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA;;4FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACP,iBAAA;;;MCDY,kBAAkB,CAAA;IAC7B,2BAA2B,GAAW,SAAS;IAC/C,oBAAoB,GAAW,SAAS;IACxC,yBAAyB,GAAW,SAAS;IAC7C,kBAAkB,GAAW,SAAS;IACtC,kBAAkB,GAAW,SAAS;wGAL3B,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCaY,8BAA8B,CAAA;AAiE/B,IAAA,IAAA;AACA,IAAA,SAAA;AACA,IAAA,aAAA;IAlEV,gBAAgB,GAAsC,IAAI;AAEhD,IAAA,iBAAiB,GAAG,IAAI,YAAY,EAAmB;AACvD,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;IAE/C,UAAU,GAAW,sCAAsC;IAC3D,eAAe,GAAW,0BAA0B;IACpD,UAAU,GAAW,MAAM;IAC3B,WAAW,GAAW,MAAM;IAC5B,0BAA0B,GAAW,6BAA6B;IAClE,oBAAoB,GAAW,MAAM;IACrC,0BAA0B,GAAW,2BAA2B;IAChE,iBAAiB,GAAW,uDAAuD;IACnF,qBAAqB,GAAW,4DAA4D;IAC5F,kBAAkB,GAAW,sBAAsB;IAEnD,cAAc,GAAW,2DAA2D;IACpF,aAAa,GAAW,eAAe;IACvC,cAAc,GAAW,gEAAgE;IAEzF,uBAAuB,GAAW,oGAAoG;IACtI,iBAAiB,GAAW,kDAAkD;IAC9E,0BAA0B,GAAW,mFAAmF;IACxH,iBAAiB,GAAW,MAAM;IAClC,iBAAiB,GAAW,kBAAkB;IAE9C,eAAe,GAAW,aAAa;IAEvC,mBAAmB,GAAW,oDAAoD;IAClF,mBAAmB,GAAW,0DAA0D;IACxF,sBAAsB,GAAW,gBAAgB;IAEjD,8BAA8B,GAAW,+CAA+C;IACxF,wBAAwB,GAAW,yBAAyB;IAC5D,0BAA0B,GAAW,2BAA2B;IAChE,qBAAqB,GAAW,6BAA6B;IAC7D,qBAAqB,GAAW,qCAAqC;IACrE,4BAA4B,GAAW,aAAa;IACpD,yBAAyB,GAAW,qCAAqC;IAEzE,uBAAuB,GAAW,0CAA0C;IAC5E,uBAAuB,GAAW,2BAA2B;IAE7D,uBAAuB,GAAW,6DAA6D;IAC/F,iCAAiC,GAAW,4CAA4C;IACxF,wBAAwB,GAAW,MAAM;AAEzC,IAAA,2BAA2B;AAE3B,IAAA,oBAAoB;IAEpB,OAAO,GAAW,EAAE;AAE7B,IAAA,aAAa,GAA0B;AACrC,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,mBAAmB,EAAE,KAAK;AAC1B,QAAA,oBAAoB,EAAE;KACvB;IAEQ,QAAQ,GAAY,KAAK;IACzB,QAAQ,GAAY,KAAK;IACvB,SAAS,GAAsB,EAAE;AAE5C,IAAA,WAAA,CACU,IAAgB,EAChB,SAA6B,EAC7B,aAA8B,EAAA;QAF9B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,aAAa,GAAb,aAAa;QACrB,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B;QAC7E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB;IACjE;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK;AACxC,gBAAA,GAAG,CAAC;gBACJ,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAC5C,aAAA,CAAC,CAAC;QACL;IACF;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAEhC,QAAA,IAAI,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC;AACtC,YAAA,IAAI,EAAE,CAAC,IAAS,KAAI;AAClB,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY;gBACnC,IAAI,CAAC,gBAAgB,GAAG;oBACtB,cAAc,EAAE,SAAS,CAAC,cAAc;oBACxC,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;oBACpD,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,WAAW,EAAE,SAAS,CAAC,uBAAuB;AAC9C,oBAAA,YAAY,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,SAAS,CAAC,aAAa,CAAC,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA,CAAE;oBACrK,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;oBAC5C,aAAa,EAAE,SAAS,CAAC,mBAAmB;oBAC5C,oBAAoB,EAAE,SAAS,CAAC,0BAA0B;iBAC3D;AAED,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,IAAI;AAC7E,gBAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,EAAE;AAC1F,gBAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,KAAK;gBAE9C,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAG;AACjD,oBAAA,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAI;AAC7B,wBAAA,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB;AACnD,gBAAA,CAAC,CAAC;AAEF,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;AAC5B,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE,aAAa,IAAI,IAAI;wBAClG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,gBAAiB,CAAC,aAAa,CAAC;AAC3D,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,IAAI;wBAChH,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,gBAAiB,CAAC,oBAAoB,CAAC;AACpE,gBAAA,CAAC,CAAC;AAEF,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,gBAAA,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;oBACrB;YACJ,CAAC;AACF,SAAA,CAAC;IACJ;AAEA,IAAA,eAAe,CAAC,IAAqB,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;IAEA,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,IAAI;IAC/C;IAEA,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,gCAAA,CAAkC,EAAE;AAC3E,YAAA,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG;AAC9B,SAAA,CAAC;IACJ;wGA/IW,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,mCAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB3C,y6NAyIA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3HY,eAAe,mlCAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,WAAW,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,wBAAwB,oKAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA;;4FAG/H,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,cACzB,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,y6NAAA,EAAA;wIAMjI,iBAAiB,EAAA,CAAA;sBAA1B;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAEQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAEQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,eAAe,EAAA,CAAA;sBAAvB;gBAEQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,8BAA8B,EAAA,CAAA;sBAAtC;gBACQ,wBAAwB,EAAA,CAAA;sBAAhC;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,4BAA4B,EAAA,CAAA;sBAApC;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBAEQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBAEQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,iCAAiC,EAAA,CAAA;sBAAzC;gBACQ,wBAAwB,EAAA,CAAA;sBAAhC;gBAEQ,2BAA2B,EAAA,CAAA;sBAAnC;gBAEQ,oBAAoB,EAAA,CAAA;sBAA5B;gBAEQ,OAAO,EAAA,CAAA;sBAAf;gBAQQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACU,SAAS,EAAA,CAAA;sBAAjB;;;MErEQ,qBAAqB,CAAA;AACvB,IAAA,IAAI;AACJ,IAAA,KAAK;IACL,cAAc,GAAW,gCAAgC;IACzD,SAAS,GAAW,wBAAwB;IAC5C,UAAU,GAAW,uCAAuC;wGAL1D,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVlC,oKAIA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAGhB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,oKAAA,EAAA;8BAInB,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;;;MEFU,oBAAoB,CAAA;IACtB,MAAM,GAA4B,EAAE;IACpC,SAAS,GAAY,KAAK;IAC1B,YAAY,GAAY,IAAI;IAC5B,gBAAgB,GAAW,IAAI;IAC/B,iBAAiB,GAAyB,IAAI;IAC9C,yBAAyB,GAAkB,IAAI;IAC/C,cAAc,GAAW,wBAAwB;IACjD,kBAAkB,GAAW,WAAW;IACxC,qBAAqB,GAAW,wBAAwB;IACxD,kBAAkB,GAAW,oCAAoC;IACjE,iBAAiB,GAAW,kCAAkC;IAC9D,gBAAgB,GAAW,kCAAkC;IAC7D,UAAU,GAAW,YAAY;IAE1C,aAAa,GAAG,aAAa;IAC7B,WAAW,GAAG,aAAa;IAC3B,QAAQ,GAAG,UAAU;IAErB,IAAI,QAAQ,GAAA,EAAc,OAAO,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC;AAEjE,IAAA,UAAU,CAAC,KAA4B,EAAA,EAAa,OAAO,KAAK,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC;AACxG,IAAA,gBAAgB,CAAC,KAA4B,EAAA,EAAa,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wGAtBnG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbjC,+gEA8CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpCY,iBAAiB,0PAAE,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA;;4FAG1D,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,+gEAAA,EAAA;8BAI7D,MAAM,EAAA,CAAA;sBAAd;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;;;MEbU,sBAAsB,CAAA;AAab,IAAA,aAAA;IAZX,YAAY,GAAyB,IAAI;IACzC,gBAAgB,GAAW,IAAI;IAC/B,gBAAgB,GAAW,uBAAuB;IAClD,mBAAmB,GAAW,2BAA2B;IACzD,oBAAoB,GAAW,YAAY;IAC3C,uBAAuB,GAAW,cAAc;IAChD,cAAc,GAAW,mBAAmB;IAC5C,YAAY,GAAW,+GAA+G;IACtI,YAAY,GAAW,OAAO;IAC9B,YAAY,GAAW,MAAM;AAC5B,IAAA,WAAW,GAAG,IAAI,YAAY,EAAwB;AAEhE,IAAA,WAAA,CAAoB,aAA8B,EAAA;QAA9B,IAAA,CAAA,aAAa,GAAb,aAAa;IAAoB;AAErD,IAAA,OAAO,GAAG;AACR,QAAA,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QACxB,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;QACpD,EAAE,EAAE,EAAE,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU;KACrD;AAED,IAAA,UAAU,CAAC,GAAiC,EAAA;AAC1C,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/D,QAAA,IAAI,GAAG,CAAC,EAAE,KAAK,aAAa,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC;QACvF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC;IACtD;wGAzBW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbnC,mtBAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,iBAAiB,+PAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAGzB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,EAAE,OAAO,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,mtBAAA,EAAA;iFAI7C,YAAY,EAAA,CAAA;sBAApB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACS,WAAW,EAAA,CAAA;sBAApB;;;MEVU,sBAAsB,CAAA;IACxB,OAAO,GAAY,KAAK;IACxB,MAAM,GAA4B,EAAE;IACpC,YAAY,GAAY,KAAK;IAC7B,WAAW,GAAY,KAAK;IAC5B,SAAS,GAAY,KAAK;IAC1B,gBAAgB,GAAW,IAAI;IAC/B,YAAY,GAAY,IAAI;IAC5B,yBAAyB,GAAkB,IAAI;IAC/C,UAAU,GAAW,EAAE;IACvB,iBAAiB,GAAyB,IAAI;IAC9C,gBAAgB,GAAW,uBAAuB;IAClD,mBAAmB,GAAW,2BAA2B;IACzD,oBAAoB,GAAW,YAAY;IAC3C,uBAAuB,GAAW,cAAc;IAChD,iBAAiB,GAAW,mBAAmB;IAC/C,YAAY,GAAW,+GAA+G;IACtI,YAAY,GAAW,OAAO;IAC9B,YAAY,GAAW,MAAM;IAC7B,cAAc,GAAW,wBAAwB;IACjD,kBAAkB,GAAW,WAAW;IACxC,qBAAqB,GAAW,wBAAwB;IACxD,kBAAkB,GAAW,oCAAoC;IACjE,iBAAiB,GAAW,kCAAkC;IAC9D,gBAAgB,GAAW,kCAAkC;IAC7D,UAAU,GAAW,YAAY;AAEhC,IAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAC3C,IAAA,WAAW,GAAG,IAAI,YAAY,EAAwB;AACtD,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AAE3C,IAAA,aAAa,CAAC,SAA+B,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;IAClC;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;wGArCW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdnC,y4FA4DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDjDY,YAAY,8BAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,cAAA,EAAA,SAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,gSAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA;;4FAGhI,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cACxB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,y4FAAA,EAAA;8BAInI,OAAO,EAAA,CAAA;sBAAf;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,aAAa,EAAA,CAAA;sBAAtB;gBACS,WAAW,EAAA,CAAA;sBAApB;gBACS,MAAM,EAAA,CAAA;sBAAf;;;MEvBU,+BAA+B,CAAA;AA6ChC,IAAA,IAAA;IA5CD,OAAO,GAAW,EAAE;IACpB,yBAAyB,GAAW,sBAAsB;IAC1D,gBAAgB,GAAW,IAAI;IAC/B,YAAY,GAAY,IAAI;IAE5B,SAAS,GAAW,oEAAoE;IACxF,iBAAiB,GAAW,kCAAkC;IAC9D,gBAAgB,GAAW,YAAY;IACvC,qBAAqB,GAAW,2CAA2C;IAC3E,gBAAgB,GAAW,kCAAkC;IAC7D,gBAAgB,GAAW,uBAAuB;IAClD,mBAAmB,GAAW,2BAA2B;IACzD,oBAAoB,GAAW,YAAY;IAC3C,uBAAuB,GAAW,cAAc;IAChD,iBAAiB,GAAW,mBAAmB;IAC/C,YAAY,GAAW,+GAA+G;IACtI,YAAY,GAAW,OAAO;IAC9B,YAAY,GAAW,MAAM;IAC7B,cAAc,GAAW,wBAAwB;IACjD,kBAAkB,GAAW,WAAW;IACxC,qBAAqB,GAAW,wBAAwB;IACxD,kBAAkB,GAAW,oCAAoC;IACjE,UAAU,GAAW,YAAY;AAEhC,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;AAC9C,IAAA,cAAc,GAAG,IAAI,YAAY,EAAQ;IAE1C,eAAe,GAAY,KAAK;IAEzC,iBAAiB,GAAyB,IAAI;IAC9C,sBAAsB,GAAyB,IAAI;IAEnD,YAAY,GAAG,cAAc;IAE7B,cAAc,GAA4B,EAAE;IAC5C,SAAS,GAAe,EAAE;IAC1B,QAAQ,GAAoB,EAAE;IAE9B,WAAW,GAA4B,EAAE;IACzC,YAAY,GAAY,KAAK;IAE7B,cAAc,GAAkB,IAAI;AAEpC,IAAA,WAAA,CACU,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;IACX;IAEH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;IAClC;AAEA,IAAA,UAAU,CAAC,SAA+B,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACrE;AAEA,IAAA,eAAe,CAAC,SAA+B,EAAA;AAC7C,QAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC/D;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC1B;QACF;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC;AAC/E,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;IAC1B;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;IACpC;;AAIQ,IAAA,QAAQ;AAER,IAAA,iBAAiB,CAAC,WAAwB,EAAA;AAChD,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,mCAAA,CAAqC,EAAE;YAC9E,MAAM;AACN,YAAA,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG;AAC9B,SAAA,CAAC;IACJ;AAEQ,IAAA,UAAU,CAAC,WAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;AAC5C,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY;gBACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;gBAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE;gBACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,KAAK;sBACzD,IAAI,CAAC;sBACL,IAAI;AACR,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,CAAC;AACF,SAAA,CAAC;IACJ;AAEQ,IAAA,WAAW,CAAC,MAAwB,EAAE,SAA+B,EAAE,KAAc,EAAA;AAC3F,QAAA,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,EAAE;AACzC,QAAA,MAAM,QAAQ,GAAG,MAAM,EAAE,cAAc,IAAI,EAAE;AAE7C,QAAA,IAAI,QAAiC;AAErC,QAAA,IAAI,SAAS,KAAK,aAAa,CAAC,SAAS,EAAE;YAEzC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACtI;AAAO,aAAA,IAAI,SAAS,KAAK,aAAa,CAAC,cAAc,EAAE;YACrD,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACpI;aAAO;YACL,IAAI,KAAK,EAAE;AACT,gBAAA,QAAQ,GAAG;AACT,oBAAA,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1C,oBAAA,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,iBAAA,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACjG;iBAAO;AACL,gBAAA,QAAQ,GAAG;AACT,oBAAA,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1C,oBAAA,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;iBACxC;YACH;QACF;QAEA,IAAI,KAAK,EAAE;YACT,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACrC;AAEA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACnG;AAEQ,IAAA,WAAW,CAAC,CAAW,EAAA;QAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/F,OAAO;AACL,YAAA,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,CAAC,CAAC,iBAAiB;YACzB,SAAS,EAAE,aAAa,CAAC,SAAS;AAClC,YAAA,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE;YACrC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,WAAkD,CAAC,KAAK,WAAW,CAAC,OAAO;YACpG,YAAY,EAAE,CAAC,CAAC,oBAAoB;YACpC,cAAc,EAAE,CAAC,CAAC;SACnB;IACH;AAEQ,IAAA,UAAU,CAAC,CAAgB,EAAA;QACjC,OAAO;AACL,YAAA,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChC,YAAA,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChC,YAAA,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,IAAI,EAAE,CAAC,CAAC,WAAW;YACnB,SAAS,EAAE,aAAa,CAAC,cAAc;AACvC,YAAA,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;SACpC;IACH;wGAlKW,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB5C,o7FA0EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzDY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,qlBAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA;;4FAG9H,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,o7FAAA,EAAA;+EAIjI,OAAO,EAAA,CAAA;sBAAf;gBACQ,yBAAyB,EAAA,CAAA;sBAAjC;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBAES,gBAAgB,EAAA,CAAA;sBAAzB;gBACS,cAAc,EAAA,CAAA;sBAAvB;gBAEQ,eAAe,EAAA,CAAA;sBAAvB;;;ME3CU,sBAAsB,CAAA;IAEjC,uBAAuB,CAAC,OAAsB,EAAE,OAAsB,EAAA;AACpE,QAAA,MAAM,SAAS,GAAG,CAAC,SAAe,KAAU;AAC1C,YAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;YACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5B,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC7E;wGAXW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCUY,2BAA2B,CAAA;AAEf,IAAA,QAAQ;IACtB,UAAU,GAAY,KAAK;IAC3B,qBAAqB,GAAY,KAAK;IACtC,wBAAwB,GAA+B,EAAE;AACzD,IAAA,OAAO,GAAS,IAAI,IAAI,EAAE;AAC1B,IAAA,OAAO,GAAS,IAAI,IAAI,EAAE;IAE1B,oBAAoB,GAAW,UAAU;IACzC,cAAc,GAAW,QAAQ;IACjC,eAAe,GAAW,2BAA2B;IACrD,cAAc,GAAW,gBAAgB;IACzC,gBAAgB,GAAW,YAAY;IACvC,qBAAqB,GAAW,WAAW;IAC3C,cAAc,GAAW,WAAW;IACpC,cAAc,GAAW,YAAY;IACrC,uBAAuB,GAAW,aAAa;IAC/C,kBAAkB,GAAW,2BAA2B;IACxD,kBAAkB,GAAW,WAAW;IACxC,sBAAsB,GAAW,iBAAiB;IAClD,aAAa,GAAW,oBAAoB;IAErD,cAAc,GAAG,QAAQ;AACzB,IAAA,oBAAoB,GAAG,qBAAqB,CAAC,OAAO;AACpD,IAAA,2BAA2B,GAAG,qBAAqB,CAAC,aAAa;AACzD,IAAA,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAEtD,IAAA,kBAAkB,GAAG,CAAC,QAAa,KAA0B;AAC3D,QAAA,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QACtC;AAEA,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI;QAE9B,IAAI,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,KAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CACrD;AAED,QAAA,IAAI,+BAA+B,GAAyC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,KACtH,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,IAAI,qBAAqB,CAAC,SAAS,IAAI,QAAQ,CAAC,YAAY,IAAI,qBAAqB,CAAC,cAAc,CAClL;QAED,IAAI,eAAe,EAAE;YACnB,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAClI,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,+BAA+B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YAC7G;AAEA,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC;AACrH,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;AAEjH,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,+BAA+B,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC;QACxH;AAEA,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AACtC,IAAA,CAAC;AAEO,IAAA,cAAc,GAAG,CACvB,QAAa,EACb,eAAA,GAAwD,SAAS,EACjE,+BAAA,GAAwE,SAAS,EACjF,SAAA,GAAqB,KAAK,EAC1B,YAAA,GAAwB,KAAK,EAC7B,UAAA,GAAsB,KAAK,KAAI;QAE/B,MAAM,yBAAyB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAClD,QAAA,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI;AACvC,QAAA,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE;AACtC,QAAA,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM;AACvC,QAAA,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG;AACnC,QAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM;AACnC,QAAA,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;AAC9B,QAAA,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC/B,QAAA,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ;AACzC,QAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QAEvC,IAAI,eAAe,EAAE;AACnB,YAAA,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,WAAW;YAE/C,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,OAAO,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,aAAa,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,MAAM,EAAE;AACxM,gBAAA,IAAI,eAAe,CAAC,KAAK,EAAE;AACzB,oBAAA,WAAW,CAAC,KAAK,CAAC,eAAe,IAAI,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;AAClE,oBAAA,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS;gBACrC;qBAAO;AACL,oBAAA,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS;AAC7C,oBAAA,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS;gBACrC;gBAEA,IAAI,SAAS,EAAE;AACb,oBAAA,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAChC,oBAAA,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO;oBAExC,IAAI,YAAY,EAAE;AAChB,wBAAA,WAAW,CAAC,KAAK,CAAC,kBAAkB,GAAG,KAAK;AAC5C,wBAAA,WAAW,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK;oBAChD;oBAEA,IAAI,UAAU,EAAE;AACd,wBAAA,WAAW,CAAC,KAAK,CAAC,sBAAsB,GAAG,KAAK;AAChD,wBAAA,WAAW,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK;oBAChD;AAEA,oBAAA,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU;AAC9B,wBAAA,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK;gBAC1C;YACF;QACF;QAEA,IAAI,+BAA+B,EAAE;AACnC,YAAA,yBAAyB,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;AAC7C,YAAA,yBAAyB,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;AAC9C,YAAA,yBAAyB,CAAC,SAAS,GAAG,wBAAwB;AAC9D,YAAA,yBAAyB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACrD,YAAA,yBAAyB,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC7C,YAAA,yBAAyB,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM;AAC5C,YAAA,yBAAyB,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;AAC3C,YAAA,yBAAyB,CAAC,KAAK,GAAG,+BAA+B,CAAC,WAAW;YAE7E,IAAI,eAAe,EAAE;gBACnB,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,OAAO,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,aAAa,IAAI,eAAe,CAAC,YAAY,IAAI,qBAAqB,CAAC,MAAM,EAAE;oBACxM,IAAI,SAAS,EAAE;AACb,wBAAA,yBAAyB,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;oBAC/C;gBACF;YACF;YAEA,yBAAyB,CAAC,KAAK,CAAC,UAAU,GAAG,+BAA+B,CAAC,KAAK,IAAI,EAAE;AACxF,YAAA,yBAAyB,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK;AACjD,YAAA,WAAW,CAAC,WAAW,CAAC,yBAAyB,CAAC;QACpD;AAEA,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC;IAED,cAAc,CAAC,IAAU,EAAE,MAAkB,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACzE,YAAA,OAAO,IAAI;AAEb,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AACvE,YAAA,OAAO,IAAI;AAEb,QAAA,IAAI,2BAA2B,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACpG,QAAA,IAAI,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;AAEhG,QAAA,IAAI,2BAA2B,GAAG,CAAC,IAAI,yBAAyB,GAAG,CAAC;AAClE,YAAA,OAAO,KAAK;AAEd,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,wBAAwB,CAAC,WAAA,GAAoB,IAAI,IAAI,EAAE,EAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;IAC3D;AAEA,IAAA,kBAAkB,CAAC,KAAU,EAAA;QAC3B,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IACvC;wGA7JW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,o3BCdxC,shDAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBY,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,KAAA,EAAA,cAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,mDAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAEnD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,sBAAsB,EAAA,OAAA,EAEvB,CAAC,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,shDAAA,EAAA;8BAIxC,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU;gBACZ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,wBAAwB,EAAA,CAAA;sBAAhC;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAEQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBACQ,aAAa,EAAA,CAAA;sBAArB;;;MEnBU,2BAA2B,CAAA;AAoC5B,IAAA,IAAA;IAlCD,OAAO,GAAW,EAAE;IACpB,oBAAoB,GAAW,EAAE;AAChC,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAW;IAExD,YAAY,GAAG,cAAc;IAEpB,oBAAoB,GAAW,UAAU;IACzC,cAAc,GAAW,QAAQ;IACjC,eAAe,GAAW,2BAA2B;IACrD,cAAc,GAAW,gBAAgB;IACzC,gBAAgB,GAAW,YAAY;IACvC,qBAAqB,GAAW,WAAW;IAC3C,cAAc,GAAW,WAAW;IACpC,cAAc,GAAW,YAAY;IACrC,uBAAuB,GAAW,aAAa;IAC/C,kBAAkB,GAAW,2BAA2B;IACxD,kBAAkB,GAAW,WAAW;IACxC,sBAAsB,GAAW,iBAAiB;IAClD,aAAa,GAAW,oBAAoB;AAE7C,IAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACtC,IAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AAEtC,IAAA,kBAAkB,GAAW,IAAI,CAAC,SAAS,CAAC,yBAAyB;AACrE,IAAA,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC,kBAAkB;AACvD,IAAA,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC,kBAAkB;AAExB,IAAA,UAAU;IAElD,wBAAwB,GAA+B,EAAE;AACzD,IAAA,OAAO,GAAS,IAAI,IAAI,EAAE;AAC1B,IAAA,OAAO;AAEP,IAAA,WAAA,CACU,IAAgB,EAAA;QAAhB,IAAA,CAAA,IAAI,GAAJ,IAAI;AAEZ,QAAA,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzF;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE;IACrB;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAE,IAAY,EAAE,WAAmB,EAAA;AAClE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU;AAC1B,aAAA,GAAG,CAAC,OAAO,EAAE,KAAK;AAClB,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI;AAChB,aAAA,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,4BAAA,CAA8B,EAAE;YACvE,MAAM;AACN,YAAA,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG;AAC9B,SAAA,CAAC;IACJ;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;QACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;AACrE,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE;AAE/B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;AAC1C,YAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAgC,CAAC;YACjE,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACpB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,CAAC;AACF,SAAA,CAAC;IACJ;AAEQ,IAAA,eAAe,CAAC,IAAsB,EAAA;QAC5C,MAAM,MAAM,GAA+B,EAAE;AAE7C,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,qBAAqB,CAAC,SAAS;gBAC7C,WAAW,EAAE,CAAC,CAAC,gBAAgB;gBAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;AACd,gBAAA,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO;AAC3D,aAAA,CAAC;QACJ;AAEA,QAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,qBAAqB,CAAC,aAAa;gBACjD,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,KAAK,EAAE,IAAI,CAAC,kBAAkB;AAC9B,gBAAA,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO;AAC7D,aAAA,CAAC;QACJ;AAEA,QAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,qBAAqB,CAAC,OAAO;gBAC3C,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACnD,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;AAC3C,aAAA,CAAC;QACJ;AAEA,QAAA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,YAAY,EAAE,qBAAqB,CAAC,MAAM;gBAC1C,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,KAAK,EAAE,IAAI,CAAC,WAAW;AACvB,gBAAA,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO;AAC7D,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,wBAAwB,GAAG,MAAM;QAEtC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5C,gBAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE;YAC5C;QACF,CAAC,EAAE,GAAG,CAAC;IACT;wGA3HW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA6B3B,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7CxC,mhCAyBA,4CDXY,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA;;4FAElE,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,uBAAuB,EAAA,OAAA,EAExB,CAAC,2BAA2B,EAAE,qBAAqB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,mhCAAA,EAAA;+EAIrE,OAAO,EAAA,CAAA;sBAAf;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACS,gBAAgB,EAAA,CAAA;sBAAzB;gBAIQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,uBAAuB,EAAA,CAAA;sBAA/B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,sBAAsB,EAAA,CAAA;sBAA9B;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBAKQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBAEuC,UAAU,EAAA,CAAA;sBAAjD,SAAS;uBAAC,2BAA2B;;;AE7CxC;;AAEG;;ACFH;;AAEG;;;;"}
|