@skysoftware-co/bayan-core-widgets-ui 0.1.6 → 0.1.9
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.
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs +42 -26
- package/fesm2022/skysoftware-co-bayan-core-widgets-ui.mjs.map +1 -1
- package/lib/side-menu-widget/components/side-menu-item/side-menu-item-widget.component.d.ts +2 -0
- package/lib/side-menu-widget/side-menu-widget.component.d.ts +4 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skysoftware-co-bayan-core-widgets-ui.mjs","sources":["../../../projects/bayan-core-ui/src/lib/shared/menu.dtos.ts","../../../projects/bayan-core-ui/src/lib/shared/menu.service.ts","../../../projects/bayan-core-ui/src/lib/shared/services/translate.service.ts","../../../projects/bayan-core-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/bayan-core-ui/src/lib/shared/property-state.service.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/side-menu-item/side-menu-item-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/side-menu-item/side-menu-item-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/terms-dialog/terms-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/terms-dialog/terms-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/privacy-dialog/privacy-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/privacy-dialog/privacy-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/side-menu-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/side-menu-widget.component.html","../../../projects/bayan-core-ui/src/skysoftware-co-bayan-core-widgets-ui.ts"],"sourcesContent":["export interface ApiEnvelope<T> {\r\n ResponseData: T;\r\n ApiVersion: number;\r\n}\r\n\r\nexport interface TopMenuShortcut {\r\n MenuName: string;\r\n MenuUrl: string | null;\r\n Children: TopMenuShortcut[];\r\n}\r\n\r\nexport interface SystemMenu {\r\n MenuName: string;\r\n MenuUrl: string | null;\r\n IconClass: string | null;\r\n Expanded: boolean;\r\n Children: SystemMenu[];\r\n}\r\n\r\nexport interface GlobalSearchMenu {\r\n MenuTitle: string;\r\n MenuSubTitle: string;\r\n IconClass: string;\r\n MenuUrl: string;\r\n IsTranslatable: boolean;\r\n}\r\n\r\nexport interface PropertyOption {\r\n PropertyId: number;\r\n PropertyName: string;\r\n}\r\n\r\nexport interface UserPanel {\r\n UserDisplayName: string;\r\n ActivePropertyId: number;\r\n ActivePropertyName: string;\r\n PhotoPath: string | null;\r\n NameInitials: string;\r\n IsSSOLogin: boolean;\r\n Properties: PropertyOption[];\r\n}\r\n\r\nexport interface SwitchPropertyRequest {\r\n PropertyId: number;\r\n}\r\n\r\nexport interface SwitchPropertyResult {\r\n PropertyId: number;\r\n}\r\n\r\nexport enum EmployeeNamesModeOption {\r\n ShortNames = 1,\r\n StandardNames = 2,\r\n FullNames = 3,\r\n}\r\n\r\nexport interface AppFramePreferences {\r\n UseAlternateNames: boolean;\r\n DisplayAlternateNames: boolean;\r\n EmployeeNamesMode: EmployeeNamesModeOption;\r\n VersionNumber: string;\r\n}\r\n\r\nexport interface SetDisplayAlternateNamesRequest {\r\n DisplayAlternateNames: boolean;\r\n}\r\n\r\nexport interface SetEmployeeNamesModeRequest {\r\n EmployeeNamesMode: EmployeeNamesModeOption;\r\n}\r\n\r\nexport enum BlockableModule {\r\n HumanResources = 4,\r\n Timekeeping = 5,\r\n}\r\n\r\nexport interface ModuleBlockState {\r\n IsBlocked: boolean;\r\n UserCanBlockModule: boolean;\r\n}\r\n\r\nexport interface BlockReleaseModuleRequest {\r\n Module: BlockableModule;\r\n}\r\n\r\nexport interface NotificationsSummary {\r\n TotalNotificationsCount: number;\r\n NotificationsUrl: string;\r\n}\r\n\r\nexport interface ChangePasswordRequest {\r\n CurrentPassword: string;\r\n NewPassword: string;\r\n}\r\n\r\nexport enum SystemModule {\r\n Corporate = 1,\r\n Cluster = 2,\r\n Setup = 3,\r\n HumanResources = 4,\r\n Timekeeping = 5,\r\n Payroll = 6,\r\n Training = 7,\r\n Workflow = 8,\r\n Appraisal = 9,\r\n BusinessIntelligence = 10,\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { catchError, map, Observable, throwError } from 'rxjs';\r\nimport {\r\n ApiEnvelope,\r\n AppFramePreferences,\r\n BlockableModule,\r\n BlockReleaseModuleRequest,\r\n ChangePasswordRequest,\r\n GlobalSearchMenu,\r\n ModuleBlockState,\r\n NotificationsSummary,\r\n SetDisplayAlternateNamesRequest,\r\n SetEmployeeNamesModeRequest,\r\n SwitchPropertyRequest,\r\n SwitchPropertyResult,\r\n SystemMenu,\r\n SystemModule,\r\n TopMenuShortcut,\r\n UserPanel,\r\n} from './menu.dtos';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BayanCoreTopMenuService {\r\n private readonly http = inject(HttpClient);\r\n\r\n private unwrap<T>(obs: Observable<ApiEnvelope<T>>): Observable<T> {\r\n return obs.pipe(\r\n map((env) => {\r\n if (!env.ResponseData) {\r\n throw new Error('No data received');\r\n }\r\n\r\n return env.ResponseData;\r\n }),\r\n catchError((error) => throwError(() => error)),\r\n );\r\n }\r\n\r\n private getBaseUrl(baseUrl: string): string {\r\n let url = baseUrl.replace('/api','');\r\n return `${url.replace(/\\/$/, '')}/api/app-frame`;\r\n }\r\n\r\n getMicroserviceMenusByProperty(\r\n baseUrl: string,\r\n propertyId: number | string,\r\n systemModule: SystemModule,\r\n ): Observable<SystemMenu[]> {\r\n const params = new HttpParams()\r\n .set('PropertyId', propertyId)\r\n .set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<SystemMenu[]>>(`${this.getBaseUrl(baseUrl)}/left-menu`, { params }),\r\n );\r\n }\r\n\r\n getMicroserviceTopMenusShortcut(\r\n baseUrl: string,\r\n propertyId: number | string,\r\n systemModule: SystemModule,\r\n ): Observable<TopMenuShortcut[]> {\r\n const params = new HttpParams()\r\n .set('PropertyId', propertyId)\r\n .set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<TopMenuShortcut[]>>(`${this.getBaseUrl(baseUrl)}/top-shortcuts`, {\r\n params,\r\n }),\r\n );\r\n }\r\n\r\n getGlobalSearchMenus(baseUrl: string, propertyId?: number): Observable<GlobalSearchMenu[]> {\r\n let params = new HttpParams();\r\n\r\n if (propertyId != null) {\r\n params = params.set('PropertyId', propertyId);\r\n }\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<GlobalSearchMenu[]>>(\r\n `${this.getBaseUrl(baseUrl)}/global-search-menu`,\r\n { params },\r\n ),\r\n );\r\n }\r\n\r\n getUserPanel(baseUrl: string): Observable<UserPanel> {\r\n return this.unwrap(this.http.get<ApiEnvelope<UserPanel>>(`${this.getBaseUrl(baseUrl)}/user-panel`));\r\n }\r\n\r\n switchProperty(baseUrl: string, request: SwitchPropertyRequest): Observable<SwitchPropertyResult> {\r\n return this.unwrap(\r\n this.http.post<ApiEnvelope<SwitchPropertyResult>>(\r\n `${this.getBaseUrl(baseUrl)}/switch-property`,\r\n request,\r\n ),\r\n );\r\n }\r\n\r\n getPreferences(baseUrl: string): Observable<AppFramePreferences> {\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<AppFramePreferences>>(`${this.getBaseUrl(baseUrl)}/preferences`),\r\n );\r\n }\r\n\r\n setDisplayAlternateNames(\r\n baseUrl: string,\r\n request: SetDisplayAlternateNamesRequest,\r\n ): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/preferences/alternate-names`, request);\r\n }\r\n\r\n setEmployeeNamesMode(baseUrl: string, request: SetEmployeeNamesModeRequest): Observable<void> {\r\n return this.http.post<void>(\r\n `${this.getBaseUrl(baseUrl)}/preferences/employee-names-mode`,\r\n request,\r\n );\r\n }\r\n\r\n getModuleBlockState(\r\n baseUrl: string,\r\n systemModule: SystemModule | BlockableModule,\r\n ): Observable<ModuleBlockState> {\r\n const params = new HttpParams().set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<ModuleBlockState>>(`${this.getBaseUrl(baseUrl)}/module-block-state`, {\r\n params,\r\n }),\r\n );\r\n }\r\n\r\n blockModule(baseUrl: string, request: BlockReleaseModuleRequest): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/block-module`, request);\r\n }\r\n\r\n releaseModule(baseUrl: string, request: BlockReleaseModuleRequest): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/release-module`, request);\r\n }\r\n\r\n getNotificationsSummary(baseUrl: string): Observable<NotificationsSummary> {\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<NotificationsSummary>>(\r\n `${this.getBaseUrl(baseUrl)}/notifications-summary`,\r\n ),\r\n );\r\n }\r\n\r\n changePassword(baseUrl: string, request: ChangePasswordRequest): Observable<boolean> {\r\n return this.http.post<boolean>(`${this.getBaseUrl(baseUrl)}/change-password`, request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport en from '../i18n/en.json';\r\nimport ar from '../i18n/ar.json';\r\n\r\n// Touch: 2026-05-09\r\n// Add more languages as needed\r\n\r\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar };\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BayanCoreTranslateService {\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 { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { BayanCoreTranslateService } from '../services/translate.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class BayanCoreTranslatePipe implements PipeTransform {\r\n constructor(private translateService: BayanCoreTranslateService) {}\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 if (!key) return '';\r\n const arrKey = key.split(' ');\r\n let keyValue = '';\r\n for (let i = 0; i < arrKey.length; i++) {\r\n if (i !== 0) keyValue += ' ';\r\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\r\n if (foundKey) {\r\n keyValue += lexicon[foundKey];\r\n } else {\r\n keyValue += arrKey[i];\r\n }\r\n }\r\n\r\n return keyValue;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BayanCoreConfigService {\r\n private activePropertyId$ = new BehaviorSubject<number>(0);\r\n\r\n getActivePropertyId$(): Observable<number> {\r\n return this.activePropertyId$.asObservable();\r\n }\r\n\r\n setActivePropertyId(id: number) {\r\n this.activePropertyId$.next(id);\r\n }\r\n}\r\n","import { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\r\nimport { Observable, isObservable } from 'rxjs';\r\nimport { BayanCoreConfigService } from '../../../shared/property-state.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faDollar,\r\n faGraduationCap,\r\n faGrid,\r\n faMedal,\r\n faRightLeft,\r\n faTools,\r\n faUsers,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nimport { faClock } from '@fortawesome/pro-light-svg-icons';\r\nimport { Router } from '@angular/router';\r\nimport { DxAutocompleteComponent, DxAutocompleteModule } from 'devextreme-angular';\r\nimport { GlobalSearchMenu } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { BayanCoreTranslatePipe } from '../../../../public-api';\r\n\r\n@Component({\r\n selector: 'bayan-core-global-search-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxAutocompleteModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './global-search-widget.component.html',\r\n styles: [':host { display: flex; align-items: center; height: 56px; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreGlobalSearchWidgetComponent {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly router = inject(Router);\r\n private readonly propertyState = inject(BayanCoreConfigService);\r\n\r\n\r\n @ViewChild('searchAutoComplete') searchAutoComplete?: DxAutocompleteComponent;\r\n\r\n @Input() dataSource: GlobalSearchMenu[] = [];\r\n\r\n @Input() set baseUrl(url: string) {\r\n this._baseUrl = url;\r\n }\r\n private _baseUrl = '';\r\n @Input() placeholder = 'TypeToSearch';\r\n @Input() searchMode: 'contains' | 'startswith' = 'contains';\r\n @Input() stylingMode: 'filled' | 'outlined' | 'underlined' = 'filled';\r\n @Input() searchWrapperClass = '';\r\n @Input() searchItemClass = '';\r\n @Input() searchItemTitleClass = '';\r\n @Input() searchItemSubtitleClass = '';\r\n @Input() iconClass = '';\r\n\r\n @Output() search = new EventEmitter<string>();\r\n @Output() itemNavigate = new EventEmitter<GlobalSearchMenu>();\r\n\r\n readonly toolsIcon = faTools;\r\n readonly gridIcon = faGrid;\r\n readonly creditIcon = faDollar;\r\n readonly usersIcon = faUsers;\r\n readonly clockIcon = faClock;\r\n readonly swapIcon = faRightLeft;\r\n readonly medalIcon = faMedal;\r\n readonly graduateIcon = faGraduationCap;\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n onInput(event: { event?: { target?: { value?: string } }; component?: { option: (name: string, value: string) => void } } | any): void {\r\n const searchTerm = event.event?.target?.value;\r\n if (typeof searchTerm === 'string' && searchTerm.startsWith(' ')) {\r\n event.component?.option('value', searchTerm.trim());\r\n }\r\n }\r\n\r\n onEnterKey(event: { event?: { target?: { value?: string } } } | any, items?: GlobalSearchMenu[]): void {\r\n const searchTerm = (event.event?.target?.value ?? '').toString().trim();\r\n if (!searchTerm) {\r\n return;\r\n }\r\n\r\n // Use latest items if provided\r\n const dataSource = items || this.dataSource;\r\n const match = dataSource.find(\r\n (item) => item.MenuSubTitle.toLowerCase().trim() === searchTerm.toLowerCase().trim(),\r\n );\r\n\r\n if (match) {\r\n window.location.href = match.MenuUrl;\r\n this.itemNavigate.emit(match);\r\n return;\r\n }\r\n\r\n this.search.emit(searchTerm);\r\n }\r\n\r\n onItemSelected(event: Event, item: GlobalSearchMenu): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (item.MenuUrl) {\r\n window.location.href = item.MenuUrl;\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.searchAutoComplete?.instance?.option('value', '');\r\n }\r\n\r\n getIconForClass(iconClass: string) {\r\n switch (iconClass) {\r\n case 'icon icon-tools':\r\n return this.toolsIcon;\r\n case 'icon icon-grid':\r\n return this.gridIcon;\r\n case 'icon icon-credit':\r\n return this.creditIcon;\r\n case 'icon icon-users':\r\n return this.usersIcon;\r\n case 'icon icon-clock':\r\n return this.clockIcon;\r\n case 'icon icon-swap':\r\n return this.swapIcon;\r\n case 'icon icon-medal':\r\n return this.medalIcon;\r\n case 'icon icon-graduation-cap':\r\n return this.graduateIcon;\r\n default:\r\n return this.toolsIcon;\r\n }\r\n }\r\n}\r\n","<div class=\"global-search-wrapper\">\r\n <dx-autocomplete\r\n #searchAutoComplete\r\n [placeholder]=\"placeholder | translate\"\r\n [dataSource]=\"dataSource\"\r\n valueExpr=\"MenuSubTitle\"\r\n [searchExpr]=\"['MenuSubTitle']\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"false\"\r\n [searchMode]=\"searchMode\"\r\n [width]=\"'100%'\"\r\n [stylingMode]=\"stylingMode\"\r\n [wrapItemText]=\"true\"\r\n [searchTimeout]=\"100\"\r\n (onInput)=\"onInput($event)\"\r\n (onEnterKey)=\"onEnterKey($event)\">\r\n <div class=\"global-search-dropdown-item\" *dxTemplate=\"let item of 'item'\">\r\n <a class=\"global-search-link compact-search-item\" href=\"{{item.MenuUrl}}\">\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <div class=\"d-flex flex-grow-1 align-items-center\">\r\n <fa-icon [icon]=\"getIconForClass(item.IconClass)\" class=\"global-search-icon mx-1\"></fa-icon>\r\n <div class=\"search-title\">@if (item.IsTranslatable) { {{ item.MenuTitle | translate }} } @else { {{ item.MenuTitle }} }</div>\r\n </div>\r\n <div class=\"search-subtitle mx-3 ps-1 mt-1\">@if (item.IsTranslatable) { {{ item.MenuSubTitle | translate }} } @else { {{ item.MenuSubTitle }} }</div>\r\n </div>\r\n </a>\r\n </div>\r\n </dx-autocomplete>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { TopMenuShortcut } from '../../../shared/menu.dtos';\r\n\r\n@Component({\r\n selector: 'bayan-core-item-widget',\r\n standalone: true,\r\n imports: [CommonModule, BayanCoreTranslatePipe], // Pipe name is now 'translate'\r\n templateUrl: './item-widget.component.html',\r\n styles: [':host { display: contents; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreItemWidgetComponent {\r\n @Input() baseUrl = '';\r\n @Input() ActivePropertyChanged = false;\r\n @Input({ required: true }) item!: TopMenuShortcut;\r\n\r\n @Input() navItemClass = 'nav-item';\r\n @Input() navLinkClass = 'nav-link';\r\n @Input() dropdownClass = 'nav-item dropdown';\r\n @Input() dropdownOpenClass = 'open';\r\n @Input() dropdownToggleClass = 'nav-link dropdown-toggle';\r\n @Input() caretClass = 'caret';\r\n @Input() dropdownMenuClass = 'dropdown-menu menu-dropdown-panel';\r\n\r\n @Output() itemClick = new EventEmitter<TopMenuShortcut>();\r\n\r\n open = false;\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n onMouseEnter() {\r\n if (this.hasChildren()) {\r\n this.open = true;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n if (this.hasChildren()) {\r\n this.open = false;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\r\n\r\n hasChildren(): boolean {\r\n return (this.item.Children ?? []).length > 0;\r\n }\r\n\r\n onItemActivated(event: Event): void {\r\n event.preventDefault();\r\n if (this.hasChildren()) {\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n this.cdr.markForCheck();\r\n return;\r\n }\r\n this.itemClick.emit(this.item);\r\n if (typeof this.item.MenuUrl === 'string' && this.item.MenuName == 'Reports') {\r\n window.open(this.item.MenuUrl, '_blank');\r\n } else if (this.item.MenuUrl) {\r\n window.location.href = this.item.MenuUrl;\r\n }\r\n }\r\n\r\n onChildItemClick(item: TopMenuShortcut): void {\r\n this.itemClick.emit(item);\r\n }\r\n}\r\n","@if (!hasChildren()) {\r\n <li [class]=\"navItemClass\">\r\n <a\r\n [class]=\"navLinkClass\"\r\n href=\"#\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.MenuName | translate }}\r\n </a>\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li [class]=\"dropdownClass + (open ? ' ' + dropdownOpenClass : '')\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <a href=\"#\" [class]=\"dropdownToggleClass\" (click)=\"onItemActivated($event)\">\r\n {{ item.MenuName | translate }} <span [class]=\"caretClass\"></span>\r\n </a>\r\n\r\n <ul [class]=\"dropdownMenuClass\">\r\n @for (child of item.Children; track child.MenuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\"\r\n [navItemClass]=\"navItemClass\"\r\n [navLinkClass]=\"navLinkClass\"\r\n [dropdownClass]=\"dropdownClass\"\r\n [dropdownOpenClass]=\"dropdownOpenClass\"\r\n [dropdownToggleClass]=\"dropdownToggleClass\"\r\n [caretClass]=\"caretClass\"\r\n [dropdownMenuClass]=\"dropdownMenuClass\"\r\n >\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n </li>\r\n}\r\n","import { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faBell } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { NotificationsSummary } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-notifications-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './notifications-widget.component.html',\r\n styles: [':host { display: flex; align-items: center; height: 56px; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreNotificationsWidgetComponent implements OnInit, OnChanges {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly topMenuService = inject(BayanCoreTopMenuService);\r\n\r\n @Input() baseUrl = '';\r\n @Input() title = 'Notifications';\r\n @Input() wrapperClass = 'menu-dropdown-host';\r\n @Input() linkClass = 'menu-icon-btn notifications-icon-btn';\r\n @Input() iconClass = '';\r\n @Input() badgeClass = 'notifications-badge';\r\n\r\n readonly bellIcon = faBell;\r\n readonly notificationsSummary = signal<NotificationsSummary>({\r\n NotificationsUrl: '',\r\n TotalNotificationsCount: 0,\r\n });\r\n\r\n ngOnInit(): void {\r\n this.loadNotificationsSummary();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] && !changes['baseUrl'].firstChange) {\r\n this.loadNotificationsSummary();\r\n }\r\n }\r\n\r\n onNotificationClick(event?: Event): void {\r\n event?.preventDefault();\r\n const rawNotificationUrl = this.notificationsSummary().NotificationsUrl;\r\n\r\n if (rawNotificationUrl) {\r\n this.document.location.href = `${window.location.origin}${rawNotificationUrl}`;\r\n }\r\n }\r\n\r\n private loadNotificationsSummary(): void {\r\n if (!this.baseUrl) {\r\n this.resetNotificationsData();\r\n return;\r\n }\r\n\r\n this.topMenuService.getNotificationsSummary(this.baseUrl).subscribe({\r\n next: (summary) => {\r\n this.notificationsSummary.set({\r\n NotificationsUrl: summary.NotificationsUrl,\r\n TotalNotificationsCount: summary.TotalNotificationsCount,\r\n });\r\n },\r\n error: () => {\r\n this.resetNotificationsData();\r\n },\r\n });\r\n }\r\n\r\n private resetNotificationsData(): void {\r\n this.notificationsSummary.set({\r\n NotificationsUrl: '',\r\n TotalNotificationsCount: 0,\r\n });\r\n }\r\n}\r\n","<div [class]=\"wrapperClass\">\r\n <a [class]=\"linkClass\"\r\n [title]=\"title | translate\"\r\n (click)=\"onNotificationClick($event)\">\r\n <fa-icon [class]=\"iconClass\" [icon]=\"bellIcon\"></fa-icon>\r\n @if ((notificationsSummary().TotalNotificationsCount || 0) > 0) {\r\n <span [class]=\"badgeClass\">{{ notificationsSummary().TotalNotificationsCount }}</span>\r\n }\r\n </a>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, signal, WritableSignal, inject } from '@angular/core';\r\nimport { DxFormComponent, DxFormModule, DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport {\r\n TopMenuWidgetChangePasswordDialogConfig,\r\n TopMenuWidgetChangePasswordPayload,\r\n} from '../../top-menu-widget.models';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { SkyAlertToastService } from '@skysoftware-co/sky-components-ui';\r\n// import { SkyAlertType } from '@skysoftware-co/sky-components-ui/lib/constants/constants';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-change-password-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, DxFormModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './change-password-widget.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreChangePasswordWidgetComponent {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly alertToastService = inject(SkyAlertToastService);\r\n private readonly translatePipe = inject(BayanCoreTranslatePipe);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n @Input() baseUrl = '';\r\n @Input() visible = false;\r\n @Input({ required: true }) config!: TopMenuWidgetChangePasswordDialogConfig;\r\n @Input() isSubmitting = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n @ViewChild('changePasswordForm') changePasswordForm?: DxFormComponent;\r\n\r\n readonly currentPasswordMode = signal<'password' | 'text'>('password');\r\n readonly newPasswordMode = signal<'password' | 'text'>('password');\r\n readonly confirmNewPasswordMode = signal<'password' | 'text'>('password');\r\n\r\n formData: TopMenuWidgetChangePasswordPayload = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n };\r\n errorMessage: WritableSignal<string> = signal('');\r\n\r\n closeDialog(): void {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n this.resetForm();\r\n this.errorMessage.set('');\r\n }\r\n\r\n resetForm(): void {\r\n this.formData = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n };\r\n this.errorMessage.set('');\r\n }\r\n\r\n onSaveButtonClick(): void {\r\n const isValid = this.changePasswordForm?.instance.validate().isValid ?? false;\r\n if (!isValid) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n this.menuService.changePassword(this.baseUrl, {\r\n CurrentPassword: this.formData.currentPassword,\r\n NewPassword: this.formData.newPassword\r\n }).subscribe({\r\n next: () => {\r\n this.isSubmitting = false;\r\n this.closeDialog();\r\n this.showAlert('PasswordChangedSuccessfully');\r\n },\r\n error: (e: any) => {\r\n this.isSubmitting = false;\r\n this.errorMessage.set('FailedToChangePassword');\r\n // Optionally show error notification here\r\n }\r\n });\r\n }\r\n togglePasswordMode(field: 'currentPasswordMode' | 'newPasswordMode' | 'confirmNewPasswordMode'): void {\r\n const current = this[field]();\r\n this[field].set(current === 'text' ? 'password' : 'text');\r\n }\r\n\r\n updateField(field: keyof TopMenuWidgetChangePasswordPayload, value: string): void {\r\n this.formData = {\r\n ...this.formData,\r\n [field]: value,\r\n };\r\n this.cdr.markForCheck();\r\n }\r\n\r\n isChangePasswordValid(): boolean {\r\n return !!this.formData.currentPassword && !!this.formData.newPassword && !!this.formData.confirmNewPassword;\r\n }\r\n\r\n getCurrentPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.currentPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('currentPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.currentPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('currentPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n getNewPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.newPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('newPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.newPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('newPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n getConfirmPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.confirmNewPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('confirmNewPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.confirmNewPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('confirmNewPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n passwordComparison = (): string => this.formData.newPassword;\r\n\r\n showAlert(message: string, type: string = 'success') {\r\n const translated = this.translatePipe.transform(message);\r\n this.alertToastService.toastInformation(translated, type as any);\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"closeDialog()\"\r\n [title]=\"config.title | translate\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"450\"\r\n [height]=\"'auto'\"\r\n [dragEnabled]=\"false\"\r\n [shading]=\"true\"\r\n shadingColor=\"rgba(0,0,0,0.4)\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-form\r\n #changePasswordForm\r\n [formData]=\"formData\"\r\n labelLocation=\"top\"\r\n [showColonAfterLabel]=\"false\"\r\n class=\"mb-3 mx-2\">\r\n <dxi-item\r\n dataField=\"currentPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getCurrentPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.currentPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-item>\r\n\r\n <dxi-item\r\n dataField=\"newPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getNewPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.newPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-item>\r\n\r\n <dxi-item\r\n dataField=\"confirmNewPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getConfirmPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.confirmNewPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxi-validation-rule\r\n type=\"compare\"\r\n [comparisonTarget]=\"passwordComparison\">\r\n </dxi-validation-rule>\r\n </dxi-item>\r\n </dx-form>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"config.primaryButtonText | translate\"\r\n [showSecondaryButton]=\"false\"\r\n [isLoading]=\"isSubmitting\"\r\n [disabledPrimaryButton]=\"isSubmitting || !isChangePasswordValid()\"\r\n (PrimaryButtonClick)=\"onSaveButtonClick()\"\r\n [errorMessage]=\"errorMessage\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { BayanCoreTranslatePipe } from './../../../shared/pipes/translate.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheckCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport { TopMenuWidgetAboutDialogConfig } from '../../top-menu-widget.models';\r\n\r\n@Component({\r\n selector: 'bayan-core-about-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './about-dialog-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreAboutDialogWidgetComponent {\r\n\r\n @Input() baseUrl = '';\r\n @Input() visible = false;\r\n @Input({ required: true }) config!: TopMenuWidgetAboutDialogConfig;\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n // CSS class attributes as @Input with defaults\r\n @Input() backdropClass: string = 'about-backdrop';\r\n @Input() modalClass: string = 'about-modal';\r\n @Input() headerClass: string = 'about-modal-header';\r\n @Input() titleClass: string = 'about-modal-title';\r\n @Input() closeBtnClass: string = 'about-close-btn';\r\n @Input() bodyClass: string = 'about-modal-body';\r\n @Input() logoClass: string = 'about-logo';\r\n @Input() productNameClass: string = 'about-product-name';\r\n @Input() versionTextClass: string = 'about-version-text';\r\n @Input() upToDateClass: string = 'about-up-to-date';\r\n @Input() copyrightClass: string = 'about-copyright';\r\n @Input() actionsClass: string = 'about-modal-actions';\r\n @Input() actionBtnClass: string = 'about-action-btn';\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() licenseClick = new EventEmitter<void>();\r\n @Output() releaseNotesClick = new EventEmitter<void>();\r\n @Output() supportClick = new EventEmitter<void>();\r\n\r\n readonly checkCircleIcon = faCheckCircle;\r\n\r\n onBackdropClick(event: MouseEvent): void {\r\n if ((event.target as HTMLElement).classList.contains('about-backdrop')) {\r\n this.closeDialog();\r\n }\r\n }\r\n\r\n closeDialog(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n openLicense() {\r\n window.open(this.licenseUrl, '_blank');\r\n }\r\n\r\n openReleaseNotes() {\r\n window.open(this.releaseNotesUrl, '_blank');\r\n }\r\n\r\n openSupport() {\r\n window.open(this.supportUrl, '_blank');\r\n }\r\n}\r\n","@if (visible) {\r\n <div [class]=\"backdropClass\" (click)=\"onBackdropClick($event)\">\r\n <div [class]=\"modalClass\" role=\"dialog\" aria-labelledby=\"topMenuAboutDialogTitle\" aria-modal=\"true\">\r\n <div [class]=\"headerClass\">\r\n <h4 [class]=\"titleClass\" id=\"topMenuAboutDialogTitle\">{{ 'AboutSkyBayan' | translate }}</h4>\r\n <button type=\"button\" [class]=\"closeBtnClass\" (click)=\"closeDialog()\" [attr.aria-label]=\"(config.closeButtonLabel || 'Close') | translate\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n <div [class]=\"bodyClass\">\r\n <div class=\"row align-items-start\">\r\n <div class=\"col-4\">\r\n @if (config.logoUrl) {\r\n <img [src]=\"config.logoUrl\" alt=\"Logo\" [class]=\"logoClass\">\r\n }\r\n </div>\r\n <div class=\"col-8\">\r\n <h3 [class]=\"productNameClass\">{{ (config.title || 'AboutSkyBayan') | translate }}</h3>\r\n <p [class]=\"versionTextClass\">{{ (config.versionLabel || 'Version') | translate }} {{ config.version || '' }}</p>\r\n <p [class]=\"upToDateClass\">\r\n <fa-icon [icon]=\"checkCircleIcon\" class=\"text-info me-1\"></fa-icon>\r\n <small class=\"text-muted\">{{ (config.statusLabel || 'SkyBayanUpToDate') | translate }}</small>\r\n </p>\r\n <p [class]=\"copyrightClass\">{{ (config.copyright || '') | translate }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsClass\">\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openLicense()\">{{ (config.licenseButtonLabel || 'LicenseInformation') | translate }}</button>\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openReleaseNotes()\">{{ (config.releaseNotesButtonLabel || 'ReleaseNotes') | translate }}</button>\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openSupport()\">{{ (config.supportButtonLabel || 'TechnicalSupport') | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { BayanCoreTranslatePipe } from './../../../shared/pipes/translate.pipe';\r\nimport { ModuleBlockState, AppFramePreferences, EmployeeNamesModeOption, BlockableModule, SystemModule } from '../../../shared/menu.dtos';\r\nimport { SkyAlertToastService } from '@skysoftware-co/sky-components-ui';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BayanCoreChangePasswordWidgetComponent } from '../change-password-widget/change-password-widget.component';\r\nimport { BayanCoreAboutDialogWidgetComponent } from '../about-dialog-widget/about-dialog-widget.component';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, inject, signal } from '@angular/core';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheck, faCog, faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-settings-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n BayanCoreTranslatePipe,\r\n BayanCoreChangePasswordWidgetComponent,\r\n BayanCoreAboutDialogWidgetComponent\r\n ],\r\n templateUrl: './settings-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreSettingsWidgetComponent implements OnInit, OnChanges {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly alertToastService = inject(SkyAlertToastService);\r\n private readonly translatePipe = inject(BayanCoreTranslatePipe);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n @Input() baseUrl: string = '';\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n @Input() ActivePropertyChanged: boolean = false;\r\n @Input() systemModule : SystemModule | null =null;\r\n\r\n @Input() checkIcon: any = faCheck;\r\n @Input() cogIcon: any = faCog;\r\n @Input() infoIcon: any = faInfoCircle;\r\n @Input() dropdownOpen = signal(false);\r\n showChangePassword = false;\r\n showAbout = false;\r\n currentModule: SystemModule | null = null;\r\n SystemModule = SystemModule;\r\n // CSS class bindings for customization\r\n @Input() dropdownHostClass: string = 'dropdown menu-dropdown-host';\r\n @Input() toggleBtnClass: string = 'menu-icon-btn';\r\n @Input() menuPanelClass: string = 'settings-menu menu-dropdown-panel';\r\n @Input() sectionLabelClass: string = 'menu-section-label';\r\n @Input() menuRowClass: string = 'header-dropdown-item';\r\n @Input() dividerClass: string = 'dropdown-divider';\r\n @Input() indicatorClass: string = 'menu-indicator';\r\n @Input() indicatorActiveClass: string = 'menu-indicator menu-indicator-active';\r\n @Input() indicatorInvisibleClass: string = 'menu-indicator invisible';\r\n\r\n @Output() alternateNamesChange = new EventEmitter<boolean>();\r\n @Output() nameModeChange = new EventEmitter<EmployeeNamesModeOption>();\r\n\r\n preferences: AppFramePreferences | null = null;\r\n BlockableModule = BlockableModule;\r\n EmployeeNamesModeOption = EmployeeNamesModeOption;\r\n hrBlockState: ModuleBlockState | null = null;\r\n tkBlockState: ModuleBlockState | null = null;\r\n changePasswordDialog = {\r\n title: 'ChangePassword',\r\n currentPasswordLabel: 'CurrentPassword',\r\n newPasswordLabel: 'NewPassword',\r\n confirmNewPasswordLabel: 'ConfirmPassword',\r\n primaryButtonText: 'Change',\r\n };\r\n\r\n aboutDialog = {\r\n title: 'Sky Bayan Human Resources Management',\r\n logoUrl: 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise.png',\r\n version: '',\r\n versionLabel: 'Version',\r\n copyright: `Copyright 2026, Sky Software Co LLC All Rights Reserved\\nSky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,\r\n statusLabel: 'SkyBayanUpToDate',\r\n licenseButtonLabel: 'LicenseInformation',\r\n releaseNotesButtonLabel: 'ReleaseNotes',\r\n supportButtonLabel: 'TechnicalSupport',\r\n closeButtonLabel: 'Close',\r\n };\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {\r\n }\r\n\r\n // ...existing methods...\r\n\r\n showAlert(message: string, type: string = 'success') {\r\n const translated = this.translatePipe.transform(message);\r\n this.alertToastService.toastInformation(translated, type as any);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadPreferences();\r\n this.loadModuleBlockStates();\r\n }\r\n\r\n loadModuleBlockStates() {\r\n if (this.baseUrl) {\r\n this.menuService.getModuleBlockState(this.baseUrl, BlockableModule.HumanResources).subscribe({\r\n next: state => { this.hrBlockState = state; this.cdr.markForCheck(); },\r\n error: () => { this.hrBlockState = null; this.cdr.markForCheck(); }\r\n });\r\n this.menuService.getModuleBlockState(this.baseUrl, BlockableModule.Timekeeping).subscribe({\r\n next: state => { this.tkBlockState = state; this.cdr.markForCheck(); },\r\n error: () => { this.tkBlockState = null; this.cdr.markForCheck(); }\r\n });\r\n }\r\n }\r\n\r\n loadPreferences() {\r\n if (this.baseUrl) {\r\n this.menuService.getPreferences(this.baseUrl).subscribe({\r\n next: prefs => {\r\n this.preferences = prefs;\r\n this.aboutDialog.version = prefs.VersionNumber;\r\n this.cdr.markForCheck();\r\n },\r\n error: () => {\r\n this.preferences = null;\r\n this.cdr.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n\r\n // No need to derive flags, use preferences directly in template and logic.\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes['ActivePropertyChanged']\r\n && !changes['ActivePropertyChanged'].firstChange\r\n && changes['ActivePropertyChanged'].previousValue !== changes['ActivePropertyChanged'].currentValue\r\n ) {\r\n this.dropdownOpen.set(false);\r\n this.loadPreferences();\r\n this.loadModuleBlockStates();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n const target = event.target as Node | null;\r\n if (target && !this.elementRef.nativeElement.contains(target)) {\r\n this.dropdownOpen.set(false);\r\n }\r\n }\r\n\r\n toggleDropdown(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.update((value) => !value);\r\n }\r\n\r\n async onAlternateNamesClick(event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.preferences || !this.baseUrl) {\r\n return;\r\n }\r\n // Toggle the value\r\n const newValue = !this.preferences.DisplayAlternateNames;\r\n try {\r\n await this.menuService.setDisplayAlternateNames(this.baseUrl, { DisplayAlternateNames: newValue }).toPromise();\r\n await this.loadPreferences();\r\n this.alternateNamesChange.emit(newValue);\r\n } catch (err) {}\r\n }\r\n\r\n async onNameModeClick(nameMode: EmployeeNamesModeOption, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n\r\n if (!this.preferences || !this.baseUrl) {\r\n return;\r\n }\r\n\r\n try {\r\n await this.menuService.setEmployeeNamesMode(this.baseUrl, { EmployeeNamesMode: nameMode }).toPromise();\r\n // Reload preferences\r\n await this.loadPreferences();\r\n this.nameModeChange.emit(nameMode);\r\n } catch (err) {\r\n // Optionally handle error\r\n }\r\n }\r\n\r\n onChangePasswordClick(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.showChangePassword = true;\r\n }\r\n\r\n onOpenAboutClick(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.showAbout = true;\r\n }\r\n\r\n async blockModule(module: BlockableModule, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.baseUrl) return;\r\n try {\r\n await this.menuService.blockModule(this.baseUrl, { Module: module }).toPromise();\r\n await this.loadModuleBlockStates();\r\n const key = module === BlockableModule.HumanResources ? 'BlockHRSuccess' : 'BlockTKSuccess';\r\n this.showAlert(key);\r\n } catch {}\r\n }\r\n\r\n async releaseModule(module: BlockableModule, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.baseUrl) return;\r\n try {\r\n await this.menuService.releaseModule(this.baseUrl, { Module: module }).toPromise();\r\n await this.loadModuleBlockStates();\r\n const key = module === BlockableModule.HumanResources ? 'ReleaseHRSuccess' : 'ReleaseTKSuccess';\r\n this.showAlert(key);\r\n } catch {}\r\n }\r\n}\r\n","<div [class]=\"dropdownHostClass\" [class.open]=\"dropdownOpen()\">\r\n <a href=\"#\" [class]=\"toggleBtnClass\" (click)=\"toggleDropdown($event)\" [title]=\"'Settings' | translate\">\r\n <fa-icon [icon]=\"cogIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuPanelClass\">\r\n @if (preferences?.UseAlternateNames) {\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onAlternateNamesClick($event)\">\r\n @if (preferences?.DisplayAlternateNames) {\r\n <fa-icon [class]=\"indicatorActiveClass\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon [class]=\"indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ 'DisplayAlternateNames' | translate }}\r\n </a>\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n <li>\r\n <span [class]=\"sectionLabelClass + ' menu-section-label'\">{{ 'EmployeeNamesMode' | translate }}</span>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.FullNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.FullNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.FullNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'FullNames' | translate }}\r\n </a>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.ShortNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.ShortNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.ShortNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ShortNames' | translate }}\r\n </a>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.StandardNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.StandardNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.StandardNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'StandardNames' | translate }}\r\n </a>\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n\r\n @if (hrBlockState && hrBlockState.UserCanBlockModule && systemModule == SystemModule.Payroll) {\r\n <li>\r\n @if (hrBlockState.IsBlocked) {\r\n <a [class]=\"menuRowClass\" (click)=\"releaseModule(BlockableModule.HumanResources, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ReleaseHR' | translate }}\r\n </a>\r\n } @else {\r\n <a [class]=\"menuRowClass\" (click)=\"blockModule(BlockableModule.HumanResources, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'BlockHR' | translate }}\r\n </a>\r\n }\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (tkBlockState && tkBlockState.UserCanBlockModule && systemModule == SystemModule.HumanResources) {\r\n <li>\r\n @if (tkBlockState.IsBlocked) {\r\n <a [class]=\"menuRowClass\" (click)=\"releaseModule(BlockableModule.Timekeeping, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ReleaseTK' | translate }}\r\n </a>\r\n } @else {\r\n <a [class]=\"menuRowClass\" (click)=\"blockModule(BlockableModule.Timekeeping, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'BlockTK' | translate }}\r\n </a>\r\n }\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onChangePasswordClick($event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ChangePassword' | translate }}\r\n </a>\r\n </li>\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onOpenAboutClick($event)\">\r\n <fa-icon [class]=\"indicatorClass\" [icon]=\"infoIcon\"></fa-icon>\r\n {{ 'About' | translate }}\r\n </a>\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n\r\n<bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"showChangePassword\"\r\n [config]=\"changePasswordDialog\"\r\n (visibleChange)=\"showChangePassword = !!$event\">\r\n </bayan-core-change-password-widget>\r\n\r\n <bayan-core-about-dialog-widget\r\n [visible]=\"showAbout\"\r\n [config]=\"aboutDialog\"\r\n [licenseUrl]=\"licenseUrl\"\r\n [releaseNotesUrl]=\"releaseNotesUrl\"\r\n [supportUrl]=\"supportUrl\"\r\n (visibleChange)=\"showAbout = !!$event\">\r\n </bayan-core-about-dialog-widget>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, computed, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faPersonRunning } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { UserPanel, PropertyOption } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-user-panel-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanEmployeeBadgeComponent, BayanCoreTranslatePipe],\r\n templateUrl: './user-panel-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreUserPanelWidgetComponent implements OnInit, OnChanges {\r\n private readonly topMenuService = inject(BayanCoreTopMenuService);\r\n\r\n @Input() baseUrl = '';\r\n @Input() wrapperClass = 'menu-dropdown-host';\r\n @Input() dropdownOpenClass = 'open';\r\n @Input() toggleButtonClass = 'employee-toggle';\r\n @Input() employeeInfoClass = 'employee-info';\r\n @Input() userNameClass = 'user-name';\r\n @Input() propertyNameClass = 'property-name';\r\n @Input() caretClass = 'employee-caret';\r\n @Input() menuClass = 'employee-menu menu-dropdown-panel';\r\n @Input() sectionLabelClass = 'menu-section-label';\r\n @Input() menuItemClass = 'menu-item';\r\n @Input() menuItemActiveClass = 'menu-item-active';\r\n @Input() indicatorClass = 'menu-indicator';\r\n @Input() invisibleIndicatorClass = 'menu-indicator invisible';\r\n @Input() dividerClass = 'menu-divider';\r\n @Input() signOutButtonClass = 'menu-item menu-item-signout';\r\n @Input() showSignOutIcon = true;\r\n @Input() signOutIconClass = 'mx-2';\r\n\r\n @Output() propertyChanged = new EventEmitter<PropertyOption>();\r\n @Output() signOutClick = new EventEmitter<void>();\r\n\r\n readonly signOutIcon = faPersonRunning;\r\n readonly dropdownOpen = signal(false);\r\n readonly userPanel = signal<UserPanel | null>(null);\r\n\r\n readonly badge = computed<BayanEmployeeBadgeDTO>(() => ({\r\n EmployeePhotoKey: this.userPanel()?.PhotoPath ?? null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: this.userPanel()?.NameInitials ?? '',\r\n }));\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\r\n\r\n ngOnInit(): void {\r\n this.loadUserPanel();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] && !changes['baseUrl'].firstChange) {\r\n this.loadUserPanel();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n const target = event.target as Node | null;\r\n if (target && !this.elementRef.nativeElement.contains(target)) {\r\n this.dropdownOpen.set(false);\r\n }\r\n }\r\n\r\n toggleDropdown(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.update((value) => !value);\r\n }\r\n\r\n selectProperty(event: Event, property: PropertyOption): void {\r\n event.preventDefault();\r\n if (property.PropertyId === this.userPanel()?.ActivePropertyId) {\r\n this.dropdownOpen.set(false);\r\n return;\r\n }\r\n\r\n this.dropdownOpen.set(false);\r\n\r\n this.topMenuService\r\n .switchProperty(this.baseUrl, { PropertyId: property.PropertyId })\r\n .subscribe({\r\n next: () => {\r\n this.topMenuService.getUserPanel(this.baseUrl).subscribe({\r\n next: (userPanel) => {\r\n this.userPanel.set(userPanel);\r\n this.propertyChanged.emit(property);\r\n },\r\n });\r\n },\r\n });\r\n }\r\n\r\n signOut(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.signOutClick.emit();\r\n }\r\n\r\n reload(): void {\r\n this.loadUserPanel();\r\n }\r\n\r\n private loadUserPanel(): void {\r\n if (!this.baseUrl) {\r\n this.userPanel.set(null);\r\n return;\r\n }\r\n\r\n this.topMenuService.getUserPanel(this.baseUrl).subscribe({\r\n next: (userPanel) => {\r\n this.userPanel.set(userPanel);\r\n let property : PropertyOption = {\r\n PropertyId: userPanel.ActivePropertyId,\r\n PropertyName: userPanel.ActivePropertyName };\r\n this.propertyChanged.emit(property);\r\n },\r\n error: () => {\r\n this.userPanel.set(null);\r\n },\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"[wrapperClass, dropdownOpen() ? dropdownOpenClass : '']\">\r\n <a href=\"#\" [class]=\"toggleButtonClass\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeInfoClass\">\r\n <span [class]=\"userNameClass\">{{ userPanel()?.UserDisplayName || '' }}</span>\r\n\r\n @if (userPanel()?.ActivePropertyName) {\r\n <span [class]=\"propertyNameClass\">{{ userPanel()?.ActivePropertyName }}</span>\r\n }\r\n </div>\r\n\r\n <span [class]=\"caretClass\">▼</span>\r\n </a>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuClass\">\r\n @if ((userPanel()?.Properties?.length || 0) > 0) {\r\n <li [class]=\"sectionLabelClass\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of userPanel()?.Properties ?? []; track property.PropertyId) {\r\n <li>\r\n <a\r\n class=\"text-dark-gray\"\r\n [ngClass]=\"[menuItemClass, property.PropertyId === userPanel()?.ActivePropertyId ? menuItemActiveClass : '']\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.PropertyId === userPanel()?.ActivePropertyId) {\r\n <span [class]=\"indicatorClass\">►</span>\r\n } @else {\r\n <span [class]=\"indicatorClass + ' ' + invisibleIndicatorClass\"></span>\r\n }\r\n\r\n {{ property.PropertyName }}\r\n </a>\r\n </li>\r\n }\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (!userPanel()?.IsSSOLogin) {\r\n <li>\r\n <a class=\"text-dark-gray\" [class]=\"signOutButtonClass\"\r\n [ngClass]=\"{'ms-3': !showSignOutIcon}\" (click)=\"signOut($event)\">\r\n @if (showSignOutIcon) {\r\n <fa-icon [class]=\"signOutIconClass\" [icon]=\"signOutIcon\"></fa-icon>\r\n }\r\n {{ 'SignOut' | translate }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n","import { TranslatePipe } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslateService } from './../shared/services/translate.service';\r\nimport { BayanCoreTranslatePipe } from './../shared/pipes/translate.pipe';\r\nimport { GlobalSearchMenu } from '../shared/menu.dtos';\r\nimport { ElementRef } from '@angular/core';\r\nimport { BayanCoreTopMenuService } from '../shared/menu.service';\r\nimport { TopMenuShortcut, PropertyOption, SystemModule, EmployeeNamesModeOption } from '../shared/menu.dtos';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport { faQuestionCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Router } from '@angular/router';\r\nimport { DxToolbarModule } from 'devextreme-angular';\r\nimport { BayanCoreGlobalSearchWidgetComponent } from './components/global-search-widget/global-search-widget.component';\r\nimport { BayanCoreItemWidgetComponent } from './components/item-widget/item-widget.component';\r\nimport { BayanCoreNotificationsWidgetComponent } from './components/notifications-widget/notifications-widget.component';\r\nimport { BayanCoreSettingsWidgetComponent } from './components/settings-widget/settings-widget.component';\r\nimport { BayanCoreUserPanelWidgetComponent } from './components/user-panel-widget/user-panel-widget.component';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-top-menu-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n DxToolbarModule,\r\n FontAwesomeModule,\r\n BayanCoreItemWidgetComponent,\r\n BayanCoreGlobalSearchWidgetComponent,\r\n BayanCoreUserPanelWidgetComponent,\r\n BayanCoreSettingsWidgetComponent,\r\n BayanCoreNotificationsWidgetComponent,\r\n BayanCoreTranslatePipe\r\n ],\r\n templateUrl: './top-menu-widget.component.html',\r\n styleUrls: ['./top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreTopMenuWidgetComponent implements OnInit {\r\n constructor(private elementRef: ElementRef) {}\r\n private TranslateService = inject(BayanCoreTranslateService);\r\n globalSearchWidget?: BayanCoreGlobalSearchWidgetComponent;\r\n @ViewChild(BayanCoreUserPanelWidgetComponent) userPanelWidget?: BayanCoreUserPanelWidgetComponent;\r\n\r\n globalSearchResults: GlobalSearchMenu[] = [];\r\n private readonly document = inject(DOCUMENT);\r\n private readonly router = inject(Router);\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n openDropdownIndex: number | null = null;\r\n\r\n @Input() baseUrl = '';\r\n @Input() systemModule : SystemModule | null =null;\r\n menuItems: TopMenuShortcut[] = [];\r\n\r\n @Input() sidebarCollapsed = false;\r\n @Input() homeUrl: string | null = null;\r\n @Input() logoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise-dark.png';\r\n @Input() collapsedLogoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-collapsed.png';\r\n @Output() logoClick = new EventEmitter<void>();\r\n\r\n @Input() isSsoLogin = false;\r\n\r\n // Removed useInternalDialogs and all related logic\r\n\r\n @Input() showGlobalSearch = true;\r\n @Input() showUserPanel = true;\r\n @Input() showSettings = true;\r\n @Input() showShortcutMenus = true;\r\n @Input() showNotifications = true;\r\n @Input() notificationsTitle = 'Notifications';\r\n\r\n @Input() showHelp = true;\r\n @Input() helpTitle = 'Help';\r\n @Input() helpUrl: string | null = 'https://docs.bayan.solutions/Bayan/index.html';\r\n @Input() helpIcon: IconDefinition = faQuestionCircle;\r\n @Input() helpAnchorClass = 'menu-icon-btn';\r\n @Input() helpUrlTarget: '_self' | '_blank' | string = '_blank';\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n @Output() helpClick = new EventEmitter<void>();\r\n @Output() menuItemClick = new EventEmitter<TopMenuShortcut>();\r\n @Output() searchSubmit = new EventEmitter<string>();\r\n @Output() propertyChanged = new EventEmitter<PropertyOption>();\r\n @Output() signOutClick = new EventEmitter<void>();\r\n @Output() alternateNamesChange = new EventEmitter<boolean>();\r\n @Output() employeeNameModeChange = new EventEmitter<EmployeeNamesModeOption>();\r\n\r\n readonly aboutVisible = signal(false);\r\n readonly changePasswordVisible = signal(false);\r\n\r\n ActivePropertyChanged = false;\r\n ActivePropertyId: number = 0;\r\n\r\n ngOnInit(): void {\r\n this.loadShortcutMenus();\r\n this.loadGlobalSearchResults();\r\n }\r\n\r\n private loadGlobalSearchResults(): void {\r\n if (this.baseUrl && this.ActivePropertyId > 0) {\r\n this.menuService.getGlobalSearchMenus(this.baseUrl, this.ActivePropertyId).subscribe({\r\n next: (menus: any) => { this.globalSearchResults = menus ?? []; this.cdr.markForCheck(); },\r\n error: () => { this.globalSearchResults = []; this.cdr.markForCheck(); }\r\n });\r\n } else {\r\n this.globalSearchResults = [];\r\n }\r\n }\r\n\r\n onEmployeeNameModeChange(event: any): void {\r\n this.employeeNameModeChange.emit(event);\r\n }\r\n\r\n onAlternateNamesChange(value: boolean): void {\r\n this.userPanelWidget?.reload();\r\n this.alternateNamesChange.emit(value);\r\n }\r\n\r\n getLogoSrc(): string | null {\r\n if (this.sidebarCollapsed) {\r\n return this.collapsedLogoUrl || null;\r\n }\r\n\r\n return this.logoUrl || null;\r\n }\r\n\r\n onLogoClicked(event?: Event): void {\r\n event?.preventDefault();\r\n if(this.homeUrl){\r\n window.location.href = this.homeUrl;\r\n return;\r\n }\r\n\r\n this.logoClick.emit();\r\n }\r\n\r\n onHelpClicked(event?: Event): void {\r\n event?.preventDefault();\r\n if(this.helpUrl){\r\n window.open(this.helpUrl, this.helpUrlTarget);\r\n return;\r\n }\r\n this.helpClick.emit();\r\n }\r\n\r\n onPropertyChanged(property: PropertyOption): void {\r\n this.ActivePropertyChanged = !this.ActivePropertyChanged;\r\n this.ActivePropertyId = property.PropertyId;\r\n this.loadShortcutMenus();\r\n this.loadGlobalSearchResults();\r\n this.propertyChanged.emit(property);\r\n }\r\n\r\n private loadShortcutMenus(): void {\r\n this.menuItems=[];\r\n if(!this.showShortcutMenus) return;\r\n if(!this.baseUrl) return;\r\n if(!this.systemModule) return;\r\n\r\n if (this.ActivePropertyId > 0) {\r\n this.menuService.getMicroserviceTopMenusShortcut(this.baseUrl, this.ActivePropertyId, this.systemModule)\r\n .subscribe({\r\n next: (menus: any) => { this.menuItems = menus ?? []; this.cdr.markForCheck(); },\r\n error: () => { this.menuItems = []; this.cdr.markForCheck(); }\r\n });\r\n } else {\r\n this.menuItems = [];\r\n }\r\n }\r\n}\r\n","<header class=\"top-bar-header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"header-toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"navbar-brand-link\" href=\"#\"\r\n [class.collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n [class.header-logo]=\"!sidebarCollapsed\"\r\n [class.header-logo-collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showShortcutMenus) {\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"nav navbar-nav d-flex flex-row align-items-center mb-0 gap-1\">\r\n @for (item of menuItems; track item.MenuName) {\r\n <bayan-core-item-widget [item]=\"item\"\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n (itemClick)=\"menuItemClick.emit($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n #globalSearchWidget\r\n [baseUrl]=\"baseUrl\"\r\n [dataSource]=\"globalSearchResults\"\r\n (search)=\"searchSubmit.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n [showSignOutIcon]=\"false\"\r\n (propertyChanged)=\"onPropertyChanged($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [baseUrl]=\"baseUrl\"\r\n [licenseUrl]=\"licenseUrl\"\r\n [releaseNotesUrl]=\"releaseNotesUrl\"\r\n [supportUrl]=\"supportUrl\"\r\n [systemModule]=\"systemModule\"\r\n (alternateNamesChange)=\"onAlternateNamesChange($event)\"\r\n (employeeNameModeChange)=\"onEmployeeNameModeChange($event)\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n href=\"#\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n<!-- Dialogs are now rendered inside settings-widget, not here -->\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport {\r\n faAngleDown, faAngleRight, faUsers, faBolt, faCog, faCalendarDays,\r\n faCalculator, faHouseChimney, faMoneyBill, faMoneyBill1, faBuildingColumns,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nimport {\r\n faCalendarDays as faCalendarDaysRegular,\r\n faCalculator as faCalculatorRegular,\r\n faMoneyBill as faMoneyBillRegular,\r\n faMoneyBill1 as faMoneyBill1Regular,\r\n} from '@fortawesome/pro-regular-svg-icons';\r\nimport { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconPrefix, IconProp } from '@fortawesome/fontawesome-svg-core';\r\nimport { SystemMenu } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-side-menu-item-widget',\r\n standalone: true,\r\n imports: [CommonModule, RouterModule, FontAwesomeModule, BayanCoreTranslatePipe, BayanCoreSideMenuItemWidgetComponent],\r\n templateUrl: './side-menu-item-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreSideMenuItemWidgetComponent {\r\n @Input({ required: true }) item!: SystemMenu;\r\n @Input() level = 1;\r\n @Input() collapsed = false;\r\n @Output() itemClick = new EventEmitter<SystemMenu>();\r\n @Output() expanded = new EventEmitter<SystemMenu>();\r\n\r\n private readonly fallbackIcon: IconProp = ['fas', 'square'];\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private readonly elRef = inject(ElementRef);\r\n\r\n popoverTop = 0;\r\n\r\n getPopoverTop(): number {\r\n const rect = (this.elRef.nativeElement as HTMLElement).getBoundingClientRect();\r\n return rect.top;\r\n }\r\n\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(\r\n faAngleDown, faAngleRight,\r\n faUsers, faBolt, faCog, faCalendarDays, faCalculator, faHouseChimney,\r\n faMoneyBill, faMoneyBill1, faBuildingColumns,\r\n faCalendarDaysRegular, faCalculatorRegular, faMoneyBillRegular, faMoneyBill1Regular,\r\n );\r\n }\r\n\r\n hasChildren(): boolean {\r\n return (this.item.Children || []).length > 0;\r\n }\r\n\r\n toggle(event: Event): void {\r\n if (this.hasChildren()) {\r\n event.preventDefault();\r\n const opening = !this.item.Expanded;\r\n this.item.Expanded = opening;\r\n if (!opening) {\r\n // Recursively collapse all nested children when closing\r\n this.collapseRecursive(this.item.Children || []);\r\n }\r\n this.cdr.markForCheck();\r\n if (opening) {\r\n this.expanded.emit(this.item);\r\n }\r\n return;\r\n }\r\n\r\n if (!this.getResolvedUrl()) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n this.itemClick.emit(this.item);\r\n }\r\n\r\n getResolvedUrl(): string | null {\r\n const url = (this.item.MenuUrl || '').trim();\r\n\r\n if (this.hasChildren() || !url || url === '#') {\r\n return null;\r\n }\r\n\r\n try {\r\n return new URL(url, `${window.location.origin}/`).toString();\r\n } catch {\r\n return url;\r\n }\r\n }\r\n\r\n collapseAllExcept(excludeItem: SystemMenu): void {\r\n if (this.item !== excludeItem && this.item.Expanded) {\r\n this.item.Expanded = false;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onChildExpanded(expandedItem: SystemMenu, siblings: SystemMenu[]): void {\r\n siblings.forEach(sibling => {\r\n if (sibling !== expandedItem && sibling.Expanded) {\r\n sibling.Expanded = false;\r\n this.collapseRecursive(sibling.Children || []);\r\n }\r\n });\r\n this.cdr.markForCheck();\r\n this.expanded.emit(this.item);\r\n }\r\n\r\n private collapseRecursive(items: SystemMenu[]): void {\r\n items.forEach(item => {\r\n if (item.Expanded) {\r\n item.Expanded = false;\r\n }\r\n if (item.Children?.length) {\r\n this.collapseRecursive(item.Children);\r\n }\r\n });\r\n }\r\n\r\n shouldShowIcon(): boolean {\r\n if (this.level > 2) return false;\r\n\r\n const raw = (this.item?.IconClass || '').toString().trim().toLowerCase();\r\n if (!raw) return false;\r\n\r\n const styleTokens = new Set(['fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands', 'fa-fw']);\r\n const tokens = raw.split(/\\s+/).map((t) => t.trim()).filter((t) => !!t);\r\n\r\n const candidate =\r\n tokens.find((t) => t.startsWith('iconfa-')) ||\r\n tokens.find((t) => t.startsWith('fa-') && !styleTokens.has(t)) ||\r\n tokens.find((t) => !styleTokens.has(t));\r\n\r\n if (!candidate) return false;\r\n\r\n const normalized = candidate.replace(/^iconfa-/, '').replace(/^fa-/, '').trim();\r\n if (!normalized) return false;\r\n\r\n if (!this.hasChildren() && (normalized === 'check' || normalized === 'square')) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n parseFaIcon(icon: string | null | undefined): IconProp {\r\n const fallback: IconProp = this.fallbackIcon;\r\n\r\n if (icon) {\r\n icon = icon.toString().replaceAll('fa-solid', '').replaceAll('fa-brands', '').replaceAll('fa-fw', '');\r\n }\r\n\r\n if (!icon || typeof icon !== 'string' || icon.trim() === '') {\r\n return fallback;\r\n }\r\n\r\n const tokens = icon.toLowerCase().split(/\\s+/).map((t) => t.trim()).filter((t) => !!t);\r\n\r\n if (tokens.length === 0) return fallback;\r\n\r\n let prefix: IconPrefix = 'fas';\r\n if (tokens.includes('far') || tokens.includes('fa-regular')) {\r\n prefix = 'far';\r\n } else if (tokens.includes('fab') || tokens.includes('fa-brands')) {\r\n prefix = 'fab';\r\n }\r\n\r\n const iconFaToken = tokens.find((t) => t.startsWith('iconfa-'));\r\n if (iconFaToken) {\r\n const normalized = iconFaToken.replace(/^iconfa-/, '').trim();\r\n if (!normalized || !/^[a-z0-9-]+$/.test(normalized)) return fallback;\r\n return [prefix, normalized] as IconProp;\r\n }\r\n\r\n let iconName = tokens.find(\r\n (t) => t.startsWith('fa-') && !['fa-fw', 'fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands'].includes(t),\r\n );\r\n\r\n if (!iconName) {\r\n iconName = tokens.find((t) => !['fa-fw', 'fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands'].includes(t));\r\n if (iconName && !iconName.startsWith('fa-')) {\r\n iconName = `fa-${iconName}`;\r\n }\r\n }\r\n\r\n let normalized = (iconName || 'fa-square').replace(/^fa-/, '').trim();\r\n if (normalized === 'institution') normalized = 'building-columns';\r\n if (!normalized || !/^[a-z0-9-]+$/.test(normalized)) return fallback;\r\n\r\n return [prefix, normalized] as IconProp;\r\n }\r\n\r\n getSafeMenuIcon(icon: string | null | undefined): IconProp {\r\n try {\r\n const resolved = this.parseFaIcon(icon);\r\n if (Array.isArray(resolved) && resolved.length >= 2 && !!resolved[0] && !!resolved[1]) {\r\n return resolved;\r\n }\r\n return this.fallbackIcon;\r\n } catch {\r\n return this.fallbackIcon;\r\n }\r\n }\r\n}\r\n","<li [class.parent]=\"hasChildren()\" [class.open]=\"item.Expanded\" [class.collapsed]=\"collapsed\"\r\n [class.level-1]=\"level === 1\"\r\n [class.level-2]=\"level === 2\"\r\n [class.level-3]=\"level >= 3\"\r\n [class.level-last]=\"!hasChildren()\"\r\n (mouseenter)=\"collapsed && hasChildren() ? item.Expanded = true : null\"\r\n (mouseleave)=\"collapsed && hasChildren() ? item.Expanded = false : null\">\r\n <a (click)=\"toggle($event)\" [attr.href]=\"getResolvedUrl() || '#'\" [class.has-children]=\"hasChildren()\">\r\n <div class=\"d-flex flex-grow-1 menu-label-wrap\">\r\n @if (shouldShowIcon() || (collapsed && level === 1)) {\r\n <fa-icon [icon]=\"getSafeMenuIcon(item.IconClass)\" class=\"fa-fw me-2 text-secondary\"></fa-icon>\r\n }\r\n @if (!collapsed) {\r\n <span class=\"menu-name-text\">{{ item.MenuName | translate }}</span>\r\n }\r\n </div>\r\n @if (hasChildren() && !collapsed) {\r\n <fa-icon [icon]=\"item.Expanded ? ['fas', 'angle-down'] : ['fas', 'angle-right']\" class=\"fa-fw menu-expand-arrow text-secondary\"></fa-icon>\r\n }\r\n </a>\r\n @if (hasChildren() && !collapsed) {\r\n <ul class=\"sub-menu\">\r\n @for (child of item.Children; track child) {\r\n <bayan-core-side-menu-item-widget\r\n [item]=\"child\"\r\n [level]=\"level + 1\"\r\n [collapsed]=\"collapsed\"\r\n (itemClick)=\"itemClick.emit($event)\"\r\n (expanded)=\"onChildExpanded($event, item.Children)\">\r\n </bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n }\r\n @if (hasChildren() && item.Expanded && collapsed) {\r\n <div class=\"popover-sub-menu\" [style.top.px]=\"getPopoverTop()\">\r\n <div class=\"popover-arrow\"></div>\r\n <div class=\"popover-menu\">\r\n <div class=\"popover-menu-header\">\r\n @if (shouldShowIcon()) {\r\n <fa-icon [icon]=\"getSafeMenuIcon(item.IconClass)\" class=\"fa-fw me-2 popover-header-icon\"></fa-icon>\r\n }\r\n <span>{{ item.MenuName | translate }}</span>\r\n </div>\r\n <ul class=\"popover-items-list\">\r\n @for (child of item.Children; track child) {\r\n <bayan-core-side-menu-item-widget [item]=\"child\" [level]=\"level + 1\" [collapsed]=\"false\" (itemClick)=\"itemClick.emit($event)\"></bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n</li>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-terms-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './terms-dialog-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreTermsDialogWidgetComponent {\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n close() {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n onHiding() {\r\n this.close();\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"onHiding()\"\r\n [showTitle]=\"true\"\r\n [title]=\"'TermsAndConditions' | translate\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"580\"\r\n [height]=\"520\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [animation]=\"{\r\n show: { type: 'fade', duration: 300, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 200, from: 1, to: 0 }\r\n }\">\r\n <div *dxTemplate=\"let data of 'content'\" class=\"dialog-content\">\r\n <div class=\"dialog-body\">\r\n <h3>{{ 'TermsAndConditions' | translate }}</h3>\r\n <p>{{ 'TermsIntro1' | translate }}</p>\r\n <p>{{ 'TermsIntro2' | translate }}</p>\r\n\r\n <h4>{{ 'Trademarks' | translate }}</h4>\r\n <p>{{ 'TermsTrademarksText' | translate }}</p>\r\n\r\n <h4>{{ 'Copyrights' | translate }}</h4>\r\n <p>{{ 'TermsCopyrightsText' | translate }}</p>\r\n\r\n <h4>{{ 'SubmissionOfIdeas' | translate }}</h4>\r\n <p>{{ 'TermsSubmissionOfIdeasText' | translate }}</p>\r\n\r\n <h4>{{ 'Links' | translate }}</h4>\r\n <p>{{ 'TermsLinksText' | translate }}</p>\r\n\r\n <h4>{{ 'RulesOfConduct' | translate }}</h4>\r\n <p>{{ 'TermsRulesOfConductText1' | translate }}</p>\r\n <p>{{ 'TermsRulesOfConductText2' | translate }}</p>\r\n <p>{{ 'TermsRulesOfConductText3' | translate }}</p>\r\n\r\n <h4 class=\"text-uppercase\">{{ 'Disclaimer' | translate }}</h4>\r\n <p>{{ 'TermsDisclaimerText1' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText2' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText3' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText4' | translate }}</p>\r\n </div>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"'Close' | translate\"\r\n [showSecondaryButton]=\"false\"\r\n (PrimaryButtonClick)=\"close()\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-privacy-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './privacy-dialog-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCorePrivacyDialogWidgetComponent {\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n close() {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n onHiding() {\r\n this.close();\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"onHiding()\"\r\n [showTitle]=\"true\"\r\n [title]=\"'PrivacyStatement' | translate\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"580\"\r\n [height]=\"520\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [animation]=\"{\r\n show: { type: 'fade', duration: 300, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 200, from: 1, to: 0 }\r\n }\">\r\n <div *dxTemplate=\"let data of 'content'\" class=\"dialog-content\">\r\n <div class=\"dialog-body\">\r\n <h3>{{ 'PrivacyStatement' | translate }}</h3>\r\n <p>{{ 'PrivacyIntro' | translate }}</p>\r\n\r\n <h4>{{ 'DataSubmission' | translate }}</h4>\r\n <p>{{ 'PrivacyDataSubmissionText' | translate }}</p>\r\n\r\n <h4>{{ 'ProtectionOfData' | translate }}</h4>\r\n <p>{{ 'PrivacyProtectionOfDataText' | translate }}</p>\r\n\r\n <h4>{{ 'ChangesOnPrivacyPolicy' | translate }}</h4>\r\n <p>{{ 'PrivacyChangesText' | translate }}</p>\r\n <p [innerHTML]=\"'PrivacyContactUs' | translate\"></p>\r\n </div>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"'Close' | translate\"\r\n [showSecondaryButton]=\"false\"\r\n (PrimaryButtonClick)=\"close()\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BayanCoreSideMenuItemWidgetComponent } from './components/side-menu-item/side-menu-item-widget.component';\r\nimport { faAngleLeft, faAngleRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { BayanCoreTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { BayanCoreTermsDialogWidgetComponent } from './components/terms-dialog/terms-dialog-widget.component';\r\nimport { BayanCorePrivacyDialogWidgetComponent } from './components/privacy-dialog/privacy-dialog-widget.component';\r\nimport { SystemMenu, SystemModule } from '../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-side-menu-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n BayanCoreTranslatePipe,\r\n BayanCoreSideMenuItemWidgetComponent,\r\n BayanCoreTermsDialogWidgetComponent,\r\n BayanCorePrivacyDialogWidgetComponent,\r\n ],\r\n templateUrl: './side-menu-widget.component.html',\r\n styleUrls: ['./side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreSideMenuWidgetComponent implements OnChanges {\r\n @Input() collapsed = false;\r\n @Input() baseUrl = '';\r\n @Input() systemModule: SystemModule | null = null;\r\n @Input() activePropertyId = 0;\r\n @Input() ActivePropertyChanged = false;\r\n @Input() logoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise-dark.png';\r\n @Input() collapsedLogoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-collapsed.png';\r\n @Input() showFooter = true;\r\n\r\n @Output() collapsedChange = new EventEmitter<boolean>();\r\n @Output() itemClick = new EventEmitter<SystemMenu>();\r\n\r\n termsOpen = false;\r\n privacyOpen = false;\r\n menu: SystemMenu[] = [];\r\n\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(faAngleLeft, faAngleRight);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] || changes['systemModule'] || changes['activePropertyId'] || changes['ActivePropertyChanged']) {\r\n this.loadSideMenusData();\r\n }\r\n }\r\n\r\n loadSideMenusData(): void {\r\n if (!this.baseUrl || !this.systemModule || this.activePropertyId <= 0) {\r\n this.menu = [];\r\n return;\r\n }\r\n\r\n this.menuService.getMicroserviceMenusByProperty(this.baseUrl, this.activePropertyId, this.systemModule).subscribe({\r\n next: (data: SystemMenu[]) => {\r\n this.menu = this.normalizeMenuTree((data as any[]) || []);\r\n this.cdr.markForCheck();\r\n },\r\n error: () => {\r\n this.menu = [];\r\n this.cdr.markForCheck();\r\n },\r\n });\r\n }\r\n\r\n private normalizeMenuTree(items: any[]): SystemMenu[] {\r\n return (items || []).map((raw) => {\r\n const childItemsRaw = raw.Children ?? raw.MenuItems ?? raw.MenusItems ?? [];\r\n return {\r\n ...raw,\r\n Children: this.normalizeMenuTree(childItemsRaw),\r\n Expanded: raw.Expanded === true,\r\n } as SystemMenu;\r\n });\r\n }\r\n\r\n getLogoSrc(): string {\r\n return this.collapsed ? this.collapsedLogoUrl : this.logoUrl;\r\n }\r\n\r\n reloadMenu(): void {\r\n this.loadSideMenusData();\r\n }\r\n\r\n toggleSidebar(): void {\r\n this.collapsed = !this.collapsed;\r\n this.collapsedChange.emit(this.collapsed);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onItemClick(item: SystemMenu): void {\r\n this.itemClick.emit(item);\r\n }\r\n\r\n onMenuExpanded(expandedItem: SystemMenu): void {\r\n this.menu.forEach(item => {\r\n if (item !== expandedItem && item.Expanded) {\r\n item.Expanded = false;\r\n this.collapseChildrenRecursive(item.Children || []);\r\n }\r\n });\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private collapseChildrenRecursive(items: SystemMenu[]): void {\r\n items.forEach(item => {\r\n if (item.Expanded) item.Expanded = false;\r\n if (item.Children?.length) this.collapseChildrenRecursive(item.Children);\r\n });\r\n }\r\n}\r\n","<div class=\"sidebar\" [class.collapsed]=\"collapsed\">\r\n <div class=\"sidebar-logo\">\r\n <img [src]=\"getLogoSrc()\" alt=\"Logo\" />\r\n </div>\r\n <div class=\"sidebar-content\">\r\n <ul class=\"nav-sidebar\">\r\n @for (item of menu; track item) {\r\n <bayan-core-side-menu-item-widget [item]=\"item\" [level]=\"1\" [collapsed]=\"collapsed\" (itemClick)=\"onItemClick($event)\" (expanded)=\"onMenuExpanded($event)\"></bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n @if (showFooter) {\r\n <div class=\"sidebar-footer\">\r\n <small class=\"text-secondary flex-grow-1 d-flex align-items-center\" [class.d-none]=\"collapsed\">© {{'Sky Software' | translate}}\r\n <a href=\"#\" class=\"text-secondary mx-2\" (click)=\"termsOpen = true; $event.preventDefault()\">{{'Terms' | translate}}</a>\r\n <a href=\"#\" class=\"text-secondary mx-2\" (click)=\"privacyOpen = true; $event.preventDefault()\">{{'Privacy' | translate}}</a>\r\n </small>\r\n <button (click)=\"toggleSidebar()\" class=\"sidebar-toggle-btn fs-5\">\r\n <fa-icon class=\"sidebar-toggle-icon\" [icon]=\"collapsed ? ['fas', 'angle-right'] : ['fas', 'angle-left']\"></fa-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<bayan-core-terms-dialog-widget [(visible)]=\"termsOpen\"></bayan-core-terms-dialog-widget>\r\n<bayan-core-privacy-dialog-widget [(visible)]=\"privacyOpen\"></bayan-core-privacy-dialog-widget>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BayanCoreTranslateService","i3","i1","i2","faCalendarDaysRegular","faCalculatorRegular","faMoneyBillRegular","faMoneyBill1Regular"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"skysoftware-co-bayan-core-widgets-ui.mjs","sources":["../../../projects/bayan-core-ui/src/lib/shared/menu.dtos.ts","../../../projects/bayan-core-ui/src/lib/shared/menu.service.ts","../../../projects/bayan-core-ui/src/lib/shared/services/translate.service.ts","../../../projects/bayan-core-ui/src/lib/shared/pipes/translate.pipe.ts","../../../projects/bayan-core-ui/src/lib/shared/property-state.service.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/global-search-widget/global-search-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/item-widget/item-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/notifications-widget/notifications-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/change-password-widget/change-password-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/about-dialog-widget/about-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/settings-widget/settings-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/components/user-panel-widget/user-panel-widget.component.html","../../../projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.ts","../../../projects/bayan-core-ui/src/lib/top-menu-widget/top-menu-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/side-menu-item/side-menu-item-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/side-menu-item/side-menu-item-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/terms-dialog/terms-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/terms-dialog/terms-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/privacy-dialog/privacy-dialog-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/components/privacy-dialog/privacy-dialog-widget.component.html","../../../projects/bayan-core-ui/src/lib/side-menu-widget/side-menu-widget.component.ts","../../../projects/bayan-core-ui/src/lib/side-menu-widget/side-menu-widget.component.html","../../../projects/bayan-core-ui/src/skysoftware-co-bayan-core-widgets-ui.ts"],"sourcesContent":["export interface ApiEnvelope<T> {\r\n ResponseData: T;\r\n ApiVersion: number;\r\n}\r\n\r\nexport interface TopMenuShortcut {\r\n MenuName: string;\r\n MenuUrl: string | null;\r\n Children: TopMenuShortcut[];\r\n}\r\n\r\nexport interface SystemMenu {\r\n MenuName: string;\r\n MenuUrl: string | null;\r\n IconClass: string | null;\r\n Expanded: boolean;\r\n Children: SystemMenu[];\r\n}\r\n\r\nexport interface GlobalSearchMenu {\r\n MenuTitle: string;\r\n MenuSubTitle: string;\r\n IconClass: string;\r\n MenuUrl: string;\r\n IsTranslatable: boolean;\r\n}\r\n\r\nexport interface PropertyOption {\r\n PropertyId: number;\r\n PropertyName: string;\r\n}\r\n\r\nexport interface UserPanel {\r\n UserDisplayName: string;\r\n ActivePropertyId: number;\r\n ActivePropertyName: string;\r\n PhotoPath: string | null;\r\n NameInitials: string;\r\n IsSSOLogin: boolean;\r\n Properties: PropertyOption[];\r\n}\r\n\r\nexport interface SwitchPropertyRequest {\r\n PropertyId: number;\r\n}\r\n\r\nexport interface SwitchPropertyResult {\r\n PropertyId: number;\r\n}\r\n\r\nexport enum EmployeeNamesModeOption {\r\n ShortNames = 1,\r\n StandardNames = 2,\r\n FullNames = 3,\r\n}\r\n\r\nexport interface AppFramePreferences {\r\n UseAlternateNames: boolean;\r\n DisplayAlternateNames: boolean;\r\n EmployeeNamesMode: EmployeeNamesModeOption;\r\n VersionNumber: string;\r\n}\r\n\r\nexport interface SetDisplayAlternateNamesRequest {\r\n DisplayAlternateNames: boolean;\r\n}\r\n\r\nexport interface SetEmployeeNamesModeRequest {\r\n EmployeeNamesMode: EmployeeNamesModeOption;\r\n}\r\n\r\nexport enum BlockableModule {\r\n HumanResources = 4,\r\n Timekeeping = 5,\r\n}\r\n\r\nexport interface ModuleBlockState {\r\n IsBlocked: boolean;\r\n UserCanBlockModule: boolean;\r\n}\r\n\r\nexport interface BlockReleaseModuleRequest {\r\n Module: BlockableModule;\r\n}\r\n\r\nexport interface NotificationsSummary {\r\n TotalNotificationsCount: number;\r\n NotificationsUrl: string;\r\n}\r\n\r\nexport interface ChangePasswordRequest {\r\n CurrentPassword: string;\r\n NewPassword: string;\r\n}\r\n\r\nexport enum SystemModule {\r\n Corporate = 1,\r\n Cluster = 2,\r\n Setup = 3,\r\n HumanResources = 4,\r\n Timekeeping = 5,\r\n Payroll = 6,\r\n Training = 7,\r\n Workflow = 8,\r\n Appraisal = 9,\r\n BusinessIntelligence = 10,\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { catchError, map, Observable, throwError } from 'rxjs';\r\nimport {\r\n ApiEnvelope,\r\n AppFramePreferences,\r\n BlockableModule,\r\n BlockReleaseModuleRequest,\r\n ChangePasswordRequest,\r\n GlobalSearchMenu,\r\n ModuleBlockState,\r\n NotificationsSummary,\r\n SetDisplayAlternateNamesRequest,\r\n SetEmployeeNamesModeRequest,\r\n SwitchPropertyRequest,\r\n SwitchPropertyResult,\r\n SystemMenu,\r\n SystemModule,\r\n TopMenuShortcut,\r\n UserPanel,\r\n} from './menu.dtos';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BayanCoreTopMenuService {\r\n private readonly http = inject(HttpClient);\r\n\r\n private unwrap<T>(obs: Observable<ApiEnvelope<T>>): Observable<T> {\r\n return obs.pipe(\r\n map((env) => {\r\n if (!env.ResponseData) {\r\n throw new Error('No data received');\r\n }\r\n\r\n return env.ResponseData;\r\n }),\r\n catchError((error) => throwError(() => error)),\r\n );\r\n }\r\n\r\n private getBaseUrl(baseUrl: string): string {\r\n let url = baseUrl.replace('/api','');\r\n return `${url.replace(/\\/$/, '')}/api/app-frame`;\r\n }\r\n\r\n getMicroserviceMenusByProperty(\r\n baseUrl: string,\r\n propertyId: number | string,\r\n systemModule: SystemModule,\r\n ): Observable<SystemMenu[]> {\r\n const params = new HttpParams()\r\n .set('PropertyId', propertyId)\r\n .set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<SystemMenu[]>>(`${this.getBaseUrl(baseUrl)}/left-menu`, { params }),\r\n );\r\n }\r\n\r\n getMicroserviceTopMenusShortcut(\r\n baseUrl: string,\r\n propertyId: number | string,\r\n systemModule: SystemModule,\r\n ): Observable<TopMenuShortcut[]> {\r\n const params = new HttpParams()\r\n .set('PropertyId', propertyId)\r\n .set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<TopMenuShortcut[]>>(`${this.getBaseUrl(baseUrl)}/top-shortcuts`, {\r\n params,\r\n }),\r\n );\r\n }\r\n\r\n getGlobalSearchMenus(baseUrl: string, propertyId?: number): Observable<GlobalSearchMenu[]> {\r\n let params = new HttpParams();\r\n\r\n if (propertyId != null) {\r\n params = params.set('PropertyId', propertyId);\r\n }\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<GlobalSearchMenu[]>>(\r\n `${this.getBaseUrl(baseUrl)}/global-search-menu`,\r\n { params },\r\n ),\r\n );\r\n }\r\n\r\n getUserPanel(baseUrl: string): Observable<UserPanel> {\r\n return this.unwrap(this.http.get<ApiEnvelope<UserPanel>>(`${this.getBaseUrl(baseUrl)}/user-panel`));\r\n }\r\n\r\n switchProperty(baseUrl: string, request: SwitchPropertyRequest): Observable<SwitchPropertyResult> {\r\n return this.unwrap(\r\n this.http.post<ApiEnvelope<SwitchPropertyResult>>(\r\n `${this.getBaseUrl(baseUrl)}/switch-property`,\r\n request,\r\n ),\r\n );\r\n }\r\n\r\n getPreferences(baseUrl: string): Observable<AppFramePreferences> {\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<AppFramePreferences>>(`${this.getBaseUrl(baseUrl)}/preferences`),\r\n );\r\n }\r\n\r\n setDisplayAlternateNames(\r\n baseUrl: string,\r\n request: SetDisplayAlternateNamesRequest,\r\n ): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/preferences/alternate-names`, request);\r\n }\r\n\r\n setEmployeeNamesMode(baseUrl: string, request: SetEmployeeNamesModeRequest): Observable<void> {\r\n return this.http.post<void>(\r\n `${this.getBaseUrl(baseUrl)}/preferences/employee-names-mode`,\r\n request,\r\n );\r\n }\r\n\r\n getModuleBlockState(\r\n baseUrl: string,\r\n systemModule: SystemModule | BlockableModule,\r\n ): Observable<ModuleBlockState> {\r\n const params = new HttpParams().set('SystemModule', systemModule);\r\n\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<ModuleBlockState>>(`${this.getBaseUrl(baseUrl)}/module-block-state`, {\r\n params,\r\n }),\r\n );\r\n }\r\n\r\n blockModule(baseUrl: string, request: BlockReleaseModuleRequest): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/block-module`, request);\r\n }\r\n\r\n releaseModule(baseUrl: string, request: BlockReleaseModuleRequest): Observable<void> {\r\n return this.http.post<void>(`${this.getBaseUrl(baseUrl)}/release-module`, request);\r\n }\r\n\r\n getNotificationsSummary(baseUrl: string): Observable<NotificationsSummary> {\r\n return this.unwrap(\r\n this.http.get<ApiEnvelope<NotificationsSummary>>(\r\n `${this.getBaseUrl(baseUrl)}/notifications-summary`,\r\n ),\r\n );\r\n }\r\n\r\n changePassword(baseUrl: string, request: ChangePasswordRequest): Observable<boolean> {\r\n return this.http.post<boolean>(`${this.getBaseUrl(baseUrl)}/change-password`, request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport en from '../i18n/en.json';\r\nimport ar from '../i18n/ar.json';\r\n\r\n// Touch: 2026-05-09\r\n// Add more languages as needed\r\n\r\nconst BUILT_IN_LEXICONS: Record<string, Record<string, string>> = { en, ar };\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BayanCoreTranslateService {\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 { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { BayanCoreTranslateService } from '../services/translate.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n@Pipe({\r\n name: 'translate',\r\n standalone: true\r\n})\r\nexport class BayanCoreTranslatePipe implements PipeTransform {\r\n constructor(private translateService: BayanCoreTranslateService) {}\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 if (!key) return '';\r\n const arrKey = key.split(' ');\r\n let keyValue = '';\r\n for (let i = 0; i < arrKey.length; i++) {\r\n if (i !== 0) keyValue += ' ';\r\n foundKey = Object.keys(lexicon).find(k => k.toLowerCase() === arrKey[i].toLowerCase());\r\n if (foundKey) {\r\n keyValue += lexicon[foundKey];\r\n } else {\r\n keyValue += arrKey[i];\r\n }\r\n }\r\n\r\n return keyValue;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BayanCoreConfigService {\r\n private activePropertyId$ = new BehaviorSubject<number>(0);\r\n\r\n getActivePropertyId$(): Observable<number> {\r\n return this.activePropertyId$.asObservable();\r\n }\r\n\r\n setActivePropertyId(id: number) {\r\n this.activePropertyId$.next(id);\r\n }\r\n}\r\n","import { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, inject } from '@angular/core';\r\nimport { Observable, isObservable } from 'rxjs';\r\nimport { BayanCoreConfigService } from '../../../shared/property-state.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n faDollar,\r\n faGraduationCap,\r\n faGrid,\r\n faMedal,\r\n faRightLeft,\r\n faTools,\r\n faUsers,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nimport { faClock } from '@fortawesome/pro-light-svg-icons';\r\nimport { Router } from '@angular/router';\r\nimport { DxAutocompleteComponent, DxAutocompleteModule } from 'devextreme-angular';\r\nimport { GlobalSearchMenu } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { BayanCoreTranslatePipe } from '../../../../public-api';\r\n\r\n@Component({\r\n selector: 'bayan-core-global-search-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxAutocompleteModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './global-search-widget.component.html',\r\n styles: [':host { display: flex; align-items: center; height: 56px; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreGlobalSearchWidgetComponent {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly document = inject(DOCUMENT);\r\n private readonly router = inject(Router);\r\n private readonly propertyState = inject(BayanCoreConfigService);\r\n\r\n\r\n @ViewChild('searchAutoComplete') searchAutoComplete?: DxAutocompleteComponent;\r\n\r\n @Input() dataSource: GlobalSearchMenu[] = [];\r\n\r\n @Input() set baseUrl(url: string) {\r\n this._baseUrl = url;\r\n }\r\n private _baseUrl = '';\r\n @Input() placeholder = 'TypeToSearch';\r\n @Input() searchMode: 'contains' | 'startswith' = 'contains';\r\n @Input() stylingMode: 'filled' | 'outlined' | 'underlined' = 'filled';\r\n @Input() searchWrapperClass = '';\r\n @Input() searchItemClass = '';\r\n @Input() searchItemTitleClass = '';\r\n @Input() searchItemSubtitleClass = '';\r\n @Input() iconClass = '';\r\n\r\n @Output() search = new EventEmitter<string>();\r\n @Output() itemNavigate = new EventEmitter<GlobalSearchMenu>();\r\n\r\n readonly toolsIcon = faTools;\r\n readonly gridIcon = faGrid;\r\n readonly creditIcon = faDollar;\r\n readonly usersIcon = faUsers;\r\n readonly clockIcon = faClock;\r\n readonly swapIcon = faRightLeft;\r\n readonly medalIcon = faMedal;\r\n readonly graduateIcon = faGraduationCap;\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n onInput(event: { event?: { target?: { value?: string } }; component?: { option: (name: string, value: string) => void } } | any): void {\r\n const searchTerm = event.event?.target?.value;\r\n if (typeof searchTerm === 'string' && searchTerm.startsWith(' ')) {\r\n event.component?.option('value', searchTerm.trim());\r\n }\r\n }\r\n\r\n onEnterKey(event: { event?: { target?: { value?: string } } } | any, items?: GlobalSearchMenu[]): void {\r\n const searchTerm = (event.event?.target?.value ?? '').toString().trim();\r\n if (!searchTerm) {\r\n return;\r\n }\r\n\r\n // Use latest items if provided\r\n const dataSource = items || this.dataSource;\r\n const match = dataSource.find(\r\n (item) => item.MenuSubTitle.toLowerCase().trim() === searchTerm.toLowerCase().trim(),\r\n );\r\n\r\n if (match) {\r\n window.location.href = match.MenuUrl;\r\n this.itemNavigate.emit(match);\r\n return;\r\n }\r\n\r\n this.search.emit(searchTerm);\r\n }\r\n\r\n onItemSelected(event: Event, item: GlobalSearchMenu): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (item.MenuUrl) {\r\n window.location.href = item.MenuUrl;\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.searchAutoComplete?.instance?.option('value', '');\r\n }\r\n\r\n getIconForClass(iconClass: string) {\r\n switch (iconClass) {\r\n case 'icon icon-tools':\r\n return this.toolsIcon;\r\n case 'icon icon-grid':\r\n return this.gridIcon;\r\n case 'icon icon-credit':\r\n return this.creditIcon;\r\n case 'icon icon-users':\r\n return this.usersIcon;\r\n case 'icon icon-clock':\r\n return this.clockIcon;\r\n case 'icon icon-swap':\r\n return this.swapIcon;\r\n case 'icon icon-medal':\r\n return this.medalIcon;\r\n case 'icon icon-graduation-cap':\r\n return this.graduateIcon;\r\n default:\r\n return this.toolsIcon;\r\n }\r\n }\r\n}\r\n","<div class=\"global-search-wrapper\">\r\n <dx-autocomplete\r\n #searchAutoComplete\r\n [placeholder]=\"placeholder | translate\"\r\n [dataSource]=\"dataSource\"\r\n valueExpr=\"MenuSubTitle\"\r\n [searchExpr]=\"['MenuSubTitle']\"\r\n [showClearButton]=\"true\"\r\n [showDropDownButton]=\"false\"\r\n [searchMode]=\"searchMode\"\r\n [width]=\"'100%'\"\r\n [stylingMode]=\"stylingMode\"\r\n [wrapItemText]=\"true\"\r\n [searchTimeout]=\"100\"\r\n (onInput)=\"onInput($event)\"\r\n (onEnterKey)=\"onEnterKey($event)\">\r\n <div class=\"global-search-dropdown-item\" *dxTemplate=\"let item of 'item'\">\r\n <a class=\"global-search-link compact-search-item\" href=\"{{item.MenuUrl}}\">\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <div class=\"d-flex flex-grow-1 align-items-center\">\r\n <fa-icon [icon]=\"getIconForClass(item.IconClass)\" class=\"global-search-icon mx-1\"></fa-icon>\r\n <div class=\"search-title\">@if (item.IsTranslatable) { {{ item.MenuTitle | translate }} } @else { {{ item.MenuTitle }} }</div>\r\n </div>\r\n <div class=\"search-subtitle mx-3 ps-1 mt-1\">@if (item.IsTranslatable) { {{ item.MenuSubTitle | translate }} } @else { {{ item.MenuSubTitle }} }</div>\r\n </div>\r\n </a>\r\n </div>\r\n </dx-autocomplete>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { TopMenuShortcut } from '../../../shared/menu.dtos';\r\n\r\n@Component({\r\n selector: 'bayan-core-item-widget',\r\n standalone: true,\r\n imports: [CommonModule, BayanCoreTranslatePipe], // Pipe name is now 'translate'\r\n templateUrl: './item-widget.component.html',\r\n styles: [':host { display: contents; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreItemWidgetComponent {\r\n @Input() baseUrl = '';\r\n @Input() ActivePropertyChanged = false;\r\n @Input({ required: true }) item!: TopMenuShortcut;\r\n\r\n @Input() navItemClass = 'nav-item';\r\n @Input() navLinkClass = 'nav-link';\r\n @Input() dropdownClass = 'nav-item dropdown';\r\n @Input() dropdownOpenClass = 'open';\r\n @Input() dropdownToggleClass = 'nav-link dropdown-toggle';\r\n @Input() caretClass = 'caret';\r\n @Input() dropdownMenuClass = 'dropdown-menu menu-dropdown-panel';\r\n\r\n @Output() itemClick = new EventEmitter<TopMenuShortcut>();\r\n\r\n open = false;\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n onMouseEnter() {\r\n if (this.hasChildren()) {\r\n this.open = true;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onMouseLeave() {\r\n if (this.hasChildren()) {\r\n this.open = false;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\r\n\r\n hasChildren(): boolean {\r\n return (this.item.Children ?? []).length > 0;\r\n }\r\n\r\n onItemActivated(event: Event): void {\r\n event.preventDefault();\r\n if (this.hasChildren()) {\r\n event.stopPropagation();\r\n this.open = !this.open;\r\n this.cdr.markForCheck();\r\n return;\r\n }\r\n this.itemClick.emit(this.item);\r\n if (typeof this.item.MenuUrl === 'string' && this.item.MenuName == 'Reports') {\r\n window.open(this.item.MenuUrl, '_blank');\r\n } else if (this.item.MenuUrl) {\r\n window.location.href = this.item.MenuUrl;\r\n }\r\n }\r\n\r\n onChildItemClick(item: TopMenuShortcut): void {\r\n this.itemClick.emit(item);\r\n }\r\n}\r\n","@if (!hasChildren()) {\r\n <li [class]=\"navItemClass\">\r\n <a\r\n [class]=\"navLinkClass\"\r\n href=\"#\"\r\n (click)=\"onItemActivated($event)\">\r\n {{ item.MenuName | translate }}\r\n </a>\r\n </li>\r\n}\r\n\r\n@if (hasChildren()) {\r\n <li [class]=\"dropdownClass + (open ? ' ' + dropdownOpenClass : '')\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n <a href=\"#\" [class]=\"dropdownToggleClass\" (click)=\"onItemActivated($event)\">\r\n {{ item.MenuName | translate }} <span [class]=\"caretClass\"></span>\r\n </a>\r\n\r\n <ul [class]=\"dropdownMenuClass\">\r\n @for (child of item.Children; track child.MenuName) {\r\n <bayan-core-item-widget\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [item]=\"child\"\r\n (itemClick)=\"onChildItemClick($event)\"\r\n [navItemClass]=\"navItemClass\"\r\n [navLinkClass]=\"navLinkClass\"\r\n [dropdownClass]=\"dropdownClass\"\r\n [dropdownOpenClass]=\"dropdownOpenClass\"\r\n [dropdownToggleClass]=\"dropdownToggleClass\"\r\n [caretClass]=\"caretClass\"\r\n [dropdownMenuClass]=\"dropdownMenuClass\"\r\n >\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n </li>\r\n}\r\n","import { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faBell } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { NotificationsSummary } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-notifications-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './notifications-widget.component.html',\r\n styles: [':host { display: flex; align-items: center; height: 56px; }'],\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreNotificationsWidgetComponent implements OnInit, OnChanges {\r\n private readonly document = inject(DOCUMENT);\r\n private readonly topMenuService = inject(BayanCoreTopMenuService);\r\n\r\n @Input() baseUrl = '';\r\n @Input() title = 'Notifications';\r\n @Input() wrapperClass = 'menu-dropdown-host';\r\n @Input() linkClass = 'menu-icon-btn notifications-icon-btn';\r\n @Input() iconClass = '';\r\n @Input() badgeClass = 'notifications-badge';\r\n\r\n readonly bellIcon = faBell;\r\n readonly notificationsSummary = signal<NotificationsSummary>({\r\n NotificationsUrl: '',\r\n TotalNotificationsCount: 0,\r\n });\r\n\r\n ngOnInit(): void {\r\n this.loadNotificationsSummary();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] && !changes['baseUrl'].firstChange) {\r\n this.loadNotificationsSummary();\r\n }\r\n }\r\n\r\n onNotificationClick(event?: Event): void {\r\n event?.preventDefault();\r\n const rawNotificationUrl = this.notificationsSummary().NotificationsUrl;\r\n\r\n if (rawNotificationUrl) {\r\n this.document.location.href = `${window.location.origin}${rawNotificationUrl}`;\r\n }\r\n }\r\n\r\n private loadNotificationsSummary(): void {\r\n if (!this.baseUrl) {\r\n this.resetNotificationsData();\r\n return;\r\n }\r\n\r\n this.topMenuService.getNotificationsSummary(this.baseUrl).subscribe({\r\n next: (summary) => {\r\n this.notificationsSummary.set({\r\n NotificationsUrl: summary.NotificationsUrl,\r\n TotalNotificationsCount: summary.TotalNotificationsCount,\r\n });\r\n },\r\n error: () => {\r\n this.resetNotificationsData();\r\n },\r\n });\r\n }\r\n\r\n private resetNotificationsData(): void {\r\n this.notificationsSummary.set({\r\n NotificationsUrl: '',\r\n TotalNotificationsCount: 0,\r\n });\r\n }\r\n}\r\n","<div [class]=\"wrapperClass\">\r\n <a [class]=\"linkClass\"\r\n [title]=\"title | translate\"\r\n (click)=\"onNotificationClick($event)\">\r\n <fa-icon [class]=\"iconClass\" [icon]=\"bellIcon\"></fa-icon>\r\n @if ((notificationsSummary().TotalNotificationsCount || 0) > 0) {\r\n <span [class]=\"badgeClass\">{{ notificationsSummary().TotalNotificationsCount }}</span>\r\n }\r\n </a>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, signal, WritableSignal, inject } from '@angular/core';\r\nimport { DxFormComponent, DxFormModule, DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport {\r\n TopMenuWidgetChangePasswordDialogConfig,\r\n TopMenuWidgetChangePasswordPayload,\r\n} from '../../top-menu-widget.models';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { SkyAlertToastService } from '@skysoftware-co/sky-components-ui';\r\n// import { SkyAlertType } from '@skysoftware-co/sky-components-ui/lib/constants/constants';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-change-password-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, DxFormModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './change-password-widget.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreChangePasswordWidgetComponent {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly alertToastService = inject(SkyAlertToastService);\r\n private readonly translatePipe = inject(BayanCoreTranslatePipe);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n @Input() baseUrl = '';\r\n @Input() visible = false;\r\n @Input({ required: true }) config!: TopMenuWidgetChangePasswordDialogConfig;\r\n @Input() isSubmitting = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n @ViewChild('changePasswordForm') changePasswordForm?: DxFormComponent;\r\n\r\n readonly currentPasswordMode = signal<'password' | 'text'>('password');\r\n readonly newPasswordMode = signal<'password' | 'text'>('password');\r\n readonly confirmNewPasswordMode = signal<'password' | 'text'>('password');\r\n\r\n formData: TopMenuWidgetChangePasswordPayload = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n };\r\n errorMessage: WritableSignal<string> = signal('');\r\n\r\n closeDialog(): void {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n this.resetForm();\r\n this.errorMessage.set('');\r\n }\r\n\r\n resetForm(): void {\r\n this.formData = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n };\r\n this.errorMessage.set('');\r\n }\r\n\r\n onSaveButtonClick(): void {\r\n const isValid = this.changePasswordForm?.instance.validate().isValid ?? false;\r\n if (!isValid) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n this.menuService.changePassword(this.baseUrl, {\r\n CurrentPassword: this.formData.currentPassword,\r\n NewPassword: this.formData.newPassword\r\n }).subscribe({\r\n next: () => {\r\n this.isSubmitting = false;\r\n this.closeDialog();\r\n this.showAlert('PasswordChangedSuccessfully');\r\n },\r\n error: (e: any) => {\r\n this.isSubmitting = false;\r\n this.errorMessage.set('FailedToChangePassword');\r\n // Optionally show error notification here\r\n }\r\n });\r\n }\r\n togglePasswordMode(field: 'currentPasswordMode' | 'newPasswordMode' | 'confirmNewPasswordMode'): void {\r\n const current = this[field]();\r\n this[field].set(current === 'text' ? 'password' : 'text');\r\n }\r\n\r\n updateField(field: keyof TopMenuWidgetChangePasswordPayload, value: string): void {\r\n this.formData = {\r\n ...this.formData,\r\n [field]: value,\r\n };\r\n this.cdr.markForCheck();\r\n }\r\n\r\n isChangePasswordValid(): boolean {\r\n return !!this.formData.currentPassword && !!this.formData.newPassword && !!this.formData.confirmNewPassword;\r\n }\r\n\r\n getCurrentPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.currentPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('currentPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.currentPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('currentPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n getNewPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.newPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('newPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.newPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('newPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n getConfirmPasswordEditorOptions(): object {\r\n return {\r\n maxLength: 256,\r\n disabled: this.isSubmitting,\r\n mode: this.confirmNewPasswordMode(),\r\n onValueChanged: (event: { value?: string }) => this.updateField('confirmNewPassword', event.value ?? ''),\r\n buttons: [{\r\n name: 'password',\r\n location: 'after',\r\n options: {\r\n stylingMode: 'text',\r\n icon: this.confirmNewPasswordMode() === 'text' ? 'eyeopen' : 'eyeclose',\r\n onClick: () => this.togglePasswordMode('confirmNewPasswordMode'),\r\n },\r\n }],\r\n };\r\n }\r\n\r\n passwordComparison = (): string => this.formData.newPassword;\r\n\r\n showAlert(message: string, type: string = 'success') {\r\n const translated = this.translatePipe.transform(message);\r\n this.alertToastService.toastInformation(translated, type as any);\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"closeDialog()\"\r\n [title]=\"config.title | translate\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"450\"\r\n [height]=\"'auto'\"\r\n [dragEnabled]=\"false\"\r\n [shading]=\"true\"\r\n shadingColor=\"rgba(0,0,0,0.4)\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <dx-form\r\n #changePasswordForm\r\n [formData]=\"formData\"\r\n labelLocation=\"top\"\r\n [showColonAfterLabel]=\"false\"\r\n class=\"mb-3 mx-2\">\r\n <dxi-item\r\n dataField=\"currentPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getCurrentPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.currentPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-item>\r\n\r\n <dxi-item\r\n dataField=\"newPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getNewPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.newPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n </dxi-item>\r\n\r\n <dxi-item\r\n dataField=\"confirmNewPassword\"\r\n editorType=\"dxTextBox\"\r\n [editorOptions]=\"getConfirmPasswordEditorOptions()\">\r\n <dxo-label [text]=\"config.confirmNewPasswordLabel | translate\"></dxo-label>\r\n <dxi-validation-rule type=\"required\"></dxi-validation-rule>\r\n <dxi-validation-rule\r\n type=\"compare\"\r\n [comparisonTarget]=\"passwordComparison\">\r\n </dxi-validation-rule>\r\n </dxi-item>\r\n </dx-form>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"config.primaryButtonText | translate\"\r\n [showSecondaryButton]=\"false\"\r\n [isLoading]=\"isSubmitting\"\r\n [disabledPrimaryButton]=\"isSubmitting || !isChangePasswordValid()\"\r\n (PrimaryButtonClick)=\"onSaveButtonClick()\"\r\n [errorMessage]=\"errorMessage\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { BayanCoreTranslatePipe } from './../../../shared/pipes/translate.pipe';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheckCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport { TopMenuWidgetAboutDialogConfig } from '../../top-menu-widget.models';\r\n\r\n@Component({\r\n selector: 'bayan-core-about-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanCoreTranslatePipe],\r\n templateUrl: './about-dialog-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreAboutDialogWidgetComponent {\r\n\r\n @Input() baseUrl = '';\r\n @Input() visible = false;\r\n @Input({ required: true }) config!: TopMenuWidgetAboutDialogConfig;\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n // CSS class attributes as @Input with defaults\r\n @Input() backdropClass: string = 'about-backdrop';\r\n @Input() modalClass: string = 'about-modal';\r\n @Input() headerClass: string = 'about-modal-header';\r\n @Input() titleClass: string = 'about-modal-title';\r\n @Input() closeBtnClass: string = 'about-close-btn';\r\n @Input() bodyClass: string = 'about-modal-body';\r\n @Input() logoClass: string = 'about-logo';\r\n @Input() productNameClass: string = 'about-product-name';\r\n @Input() versionTextClass: string = 'about-version-text';\r\n @Input() upToDateClass: string = 'about-up-to-date';\r\n @Input() copyrightClass: string = 'about-copyright';\r\n @Input() actionsClass: string = 'about-modal-actions';\r\n @Input() actionBtnClass: string = 'about-action-btn';\r\n\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n @Output() licenseClick = new EventEmitter<void>();\r\n @Output() releaseNotesClick = new EventEmitter<void>();\r\n @Output() supportClick = new EventEmitter<void>();\r\n\r\n readonly checkCircleIcon = faCheckCircle;\r\n\r\n onBackdropClick(event: MouseEvent): void {\r\n if ((event.target as HTMLElement).classList.contains('about-backdrop')) {\r\n this.closeDialog();\r\n }\r\n }\r\n\r\n closeDialog(): void {\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n openLicense() {\r\n window.open(this.licenseUrl, '_blank');\r\n }\r\n\r\n openReleaseNotes() {\r\n window.open(this.releaseNotesUrl, '_blank');\r\n }\r\n\r\n openSupport() {\r\n window.open(this.supportUrl, '_blank');\r\n }\r\n}\r\n","@if (visible) {\r\n <div [class]=\"backdropClass\" (click)=\"onBackdropClick($event)\">\r\n <div [class]=\"modalClass\" role=\"dialog\" aria-labelledby=\"topMenuAboutDialogTitle\" aria-modal=\"true\">\r\n <div [class]=\"headerClass\">\r\n <h4 [class]=\"titleClass\" id=\"topMenuAboutDialogTitle\">{{ 'AboutSkyBayan' | translate }}</h4>\r\n <button type=\"button\" [class]=\"closeBtnClass\" (click)=\"closeDialog()\" [attr.aria-label]=\"(config.closeButtonLabel || 'Close') | translate\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n\r\n <div [class]=\"bodyClass\">\r\n <div class=\"row align-items-start\">\r\n <div class=\"col-4\">\r\n @if (config.logoUrl) {\r\n <img [src]=\"config.logoUrl\" alt=\"Logo\" [class]=\"logoClass\">\r\n }\r\n </div>\r\n <div class=\"col-8\">\r\n <h3 [class]=\"productNameClass\">{{ (config.title || 'AboutSkyBayan') | translate }}</h3>\r\n <p [class]=\"versionTextClass\">{{ (config.versionLabel || 'Version') | translate }} {{ config.version || '' }}</p>\r\n <p [class]=\"upToDateClass\">\r\n <fa-icon [icon]=\"checkCircleIcon\" class=\"text-info me-1\"></fa-icon>\r\n <small class=\"text-muted\">{{ (config.statusLabel || 'SkyBayanUpToDate') | translate }}</small>\r\n </p>\r\n <p [class]=\"copyrightClass\">{{ (config.copyright || '') | translate }}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"actionsClass\">\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openLicense()\">{{ (config.licenseButtonLabel || 'LicenseInformation') | translate }}</button>\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openReleaseNotes()\">{{ (config.releaseNotesButtonLabel || 'ReleaseNotes') | translate }}</button>\r\n <button type=\"button\" [class]=\"actionBtnClass\" (click)=\"openSupport()\">{{ (config.supportButtonLabel || 'TechnicalSupport') | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n","import { BayanCoreTranslatePipe } from './../../../shared/pipes/translate.pipe';\r\nimport { ModuleBlockState, AppFramePreferences, EmployeeNamesModeOption, BlockableModule, SystemModule } from '../../../shared/menu.dtos';\r\nimport { SkyAlertToastService } from '@skysoftware-co/sky-components-ui';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BayanCoreChangePasswordWidgetComponent } from '../change-password-widget/change-password-widget.component';\r\nimport { BayanCoreAboutDialogWidgetComponent } from '../about-dialog-widget/about-dialog-widget.component';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, inject, signal } from '@angular/core';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheck, faCog, faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-settings-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n BayanCoreTranslatePipe,\r\n BayanCoreChangePasswordWidgetComponent,\r\n BayanCoreAboutDialogWidgetComponent\r\n ],\r\n templateUrl: './settings-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreSettingsWidgetComponent implements OnInit, OnChanges {\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly alertToastService = inject(SkyAlertToastService);\r\n private readonly translatePipe = inject(BayanCoreTranslatePipe);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n @Input() baseUrl: string = '';\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n @Input() ActivePropertyChanged: boolean = false;\r\n @Input() systemModule : SystemModule | null =null;\r\n\r\n @Input() checkIcon: any = faCheck;\r\n @Input() cogIcon: any = faCog;\r\n @Input() infoIcon: any = faInfoCircle;\r\n @Input() dropdownOpen = signal(false);\r\n showChangePassword = false;\r\n showAbout = false;\r\n currentModule: SystemModule | null = null;\r\n SystemModule = SystemModule;\r\n // CSS class bindings for customization\r\n @Input() dropdownHostClass: string = 'dropdown menu-dropdown-host';\r\n @Input() toggleBtnClass: string = 'menu-icon-btn';\r\n @Input() menuPanelClass: string = 'settings-menu menu-dropdown-panel';\r\n @Input() sectionLabelClass: string = 'menu-section-label';\r\n @Input() menuRowClass: string = 'header-dropdown-item';\r\n @Input() dividerClass: string = 'dropdown-divider';\r\n @Input() indicatorClass: string = 'menu-indicator';\r\n @Input() indicatorActiveClass: string = 'menu-indicator menu-indicator-active';\r\n @Input() indicatorInvisibleClass: string = 'menu-indicator invisible';\r\n\r\n @Output() alternateNamesChange = new EventEmitter<boolean>();\r\n @Output() nameModeChange = new EventEmitter<EmployeeNamesModeOption>();\r\n\r\n preferences: AppFramePreferences | null = null;\r\n BlockableModule = BlockableModule;\r\n EmployeeNamesModeOption = EmployeeNamesModeOption;\r\n hrBlockState: ModuleBlockState | null = null;\r\n tkBlockState: ModuleBlockState | null = null;\r\n changePasswordDialog = {\r\n title: 'ChangePassword',\r\n currentPasswordLabel: 'CurrentPassword',\r\n newPasswordLabel: 'NewPassword',\r\n confirmNewPasswordLabel: 'ConfirmPassword',\r\n primaryButtonText: 'Change',\r\n };\r\n\r\n aboutDialog = {\r\n title: 'Sky Bayan Human Resources Management',\r\n logoUrl: 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise.png',\r\n version: '',\r\n versionLabel: 'Version',\r\n copyright: `Copyright 2026, Sky Software Co LLC All Rights Reserved\\nSky Bayan and Sky Bayan Logo are registered trademarks of Sky Software`,\r\n statusLabel: 'SkyBayanUpToDate',\r\n licenseButtonLabel: 'LicenseInformation',\r\n releaseNotesButtonLabel: 'ReleaseNotes',\r\n supportButtonLabel: 'TechnicalSupport',\r\n closeButtonLabel: 'Close',\r\n };\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {\r\n }\r\n\r\n // ...existing methods...\r\n\r\n showAlert(message: string, type: string = 'success') {\r\n const translated = this.translatePipe.transform(message);\r\n this.alertToastService.toastInformation(translated, type as any);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadPreferences();\r\n this.loadModuleBlockStates();\r\n }\r\n\r\n loadModuleBlockStates() {\r\n if (this.baseUrl) {\r\n this.menuService.getModuleBlockState(this.baseUrl, BlockableModule.HumanResources).subscribe({\r\n next: state => { this.hrBlockState = state; this.cdr.markForCheck(); },\r\n error: () => { this.hrBlockState = null; this.cdr.markForCheck(); }\r\n });\r\n this.menuService.getModuleBlockState(this.baseUrl, BlockableModule.Timekeeping).subscribe({\r\n next: state => { this.tkBlockState = state; this.cdr.markForCheck(); },\r\n error: () => { this.tkBlockState = null; this.cdr.markForCheck(); }\r\n });\r\n }\r\n }\r\n\r\n loadPreferences() {\r\n if (this.baseUrl) {\r\n this.menuService.getPreferences(this.baseUrl).subscribe({\r\n next: prefs => {\r\n this.preferences = prefs;\r\n this.aboutDialog.version = prefs.VersionNumber;\r\n this.cdr.markForCheck();\r\n },\r\n error: () => {\r\n this.preferences = null;\r\n this.cdr.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n\r\n // No need to derive flags, use preferences directly in template and logic.\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes['ActivePropertyChanged']\r\n && !changes['ActivePropertyChanged'].firstChange\r\n && changes['ActivePropertyChanged'].previousValue !== changes['ActivePropertyChanged'].currentValue\r\n ) {\r\n this.dropdownOpen.set(false);\r\n this.loadPreferences();\r\n this.loadModuleBlockStates();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n const target = event.target as Node | null;\r\n if (target && !this.elementRef.nativeElement.contains(target)) {\r\n this.dropdownOpen.set(false);\r\n }\r\n }\r\n\r\n toggleDropdown(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.update((value) => !value);\r\n }\r\n\r\n async onAlternateNamesClick(event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.preferences || !this.baseUrl) {\r\n return;\r\n }\r\n // Toggle the value\r\n const newValue = !this.preferences.DisplayAlternateNames;\r\n try {\r\n await this.menuService.setDisplayAlternateNames(this.baseUrl, { DisplayAlternateNames: newValue }).toPromise();\r\n await this.loadPreferences();\r\n this.alternateNamesChange.emit(newValue);\r\n } catch (err) {}\r\n }\r\n\r\n async onNameModeClick(nameMode: EmployeeNamesModeOption, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n\r\n if (!this.preferences || !this.baseUrl) {\r\n return;\r\n }\r\n\r\n try {\r\n await this.menuService.setEmployeeNamesMode(this.baseUrl, { EmployeeNamesMode: nameMode }).toPromise();\r\n // Reload preferences\r\n await this.loadPreferences();\r\n this.nameModeChange.emit(nameMode);\r\n } catch (err) {\r\n // Optionally handle error\r\n }\r\n }\r\n\r\n onChangePasswordClick(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.showChangePassword = true;\r\n }\r\n\r\n onOpenAboutClick(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.showAbout = true;\r\n }\r\n\r\n async blockModule(module: BlockableModule, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.baseUrl) return;\r\n try {\r\n await this.menuService.blockModule(this.baseUrl, { Module: module }).toPromise();\r\n await this.loadModuleBlockStates();\r\n const key = module === BlockableModule.HumanResources ? 'BlockHRSuccess' : 'BlockTKSuccess';\r\n this.showAlert(key);\r\n } catch {}\r\n }\r\n\r\n async releaseModule(module: BlockableModule, event: Event): Promise<void> {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n if (!this.baseUrl) return;\r\n try {\r\n await this.menuService.releaseModule(this.baseUrl, { Module: module }).toPromise();\r\n await this.loadModuleBlockStates();\r\n const key = module === BlockableModule.HumanResources ? 'ReleaseHRSuccess' : 'ReleaseTKSuccess';\r\n this.showAlert(key);\r\n } catch {}\r\n }\r\n}\r\n","<div [class]=\"dropdownHostClass\" [class.open]=\"dropdownOpen()\">\r\n <a href=\"#\" [class]=\"toggleBtnClass\" (click)=\"toggleDropdown($event)\" [title]=\"'Settings' | translate\">\r\n <fa-icon [icon]=\"cogIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuPanelClass\">\r\n @if (preferences?.UseAlternateNames) {\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onAlternateNamesClick($event)\">\r\n @if (preferences?.DisplayAlternateNames) {\r\n <fa-icon [class]=\"indicatorActiveClass\" [icon]=\"checkIcon\"></fa-icon>\r\n } @else {\r\n <fa-icon [class]=\"indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n }\r\n {{ 'DisplayAlternateNames' | translate }}\r\n </a>\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n <li>\r\n <span [class]=\"sectionLabelClass + ' menu-section-label'\">{{ 'EmployeeNamesMode' | translate }}</span>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.FullNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.FullNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.FullNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'FullNames' | translate }}\r\n </a>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.ShortNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.ShortNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.ShortNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'ShortNames' | translate }}\r\n </a>\r\n </li>\r\n <li>\r\n <a [class]=\"menuRowClass + (preferences?.EmployeeNamesMode === EmployeeNamesModeOption.StandardNames ? ' menu-item-active' : '')\"\r\n (click)=\"onNameModeClick(EmployeeNamesModeOption.StandardNames, $event); $event.stopPropagation()\">\r\n <fa-icon [class]=\"preferences?.EmployeeNamesMode === EmployeeNamesModeOption.StandardNames ? indicatorActiveClass : indicatorInvisibleClass\" [icon]=\"checkIcon\"></fa-icon>\r\n {{ 'StandardNames' | translate }}\r\n </a>\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n\r\n @if (hrBlockState && hrBlockState.UserCanBlockModule && systemModule == SystemModule.Payroll) {\r\n <li>\r\n @if (hrBlockState.IsBlocked) {\r\n <a [class]=\"menuRowClass\" (click)=\"releaseModule(BlockableModule.HumanResources, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ReleaseHR' | translate }}\r\n </a>\r\n } @else {\r\n <a [class]=\"menuRowClass\" (click)=\"blockModule(BlockableModule.HumanResources, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'BlockHR' | translate }}\r\n </a>\r\n }\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (tkBlockState && tkBlockState.UserCanBlockModule && systemModule == SystemModule.HumanResources) {\r\n <li>\r\n @if (tkBlockState.IsBlocked) {\r\n <a [class]=\"menuRowClass\" (click)=\"releaseModule(BlockableModule.Timekeeping, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ReleaseTK' | translate }}\r\n </a>\r\n } @else {\r\n <a [class]=\"menuRowClass\" (click)=\"blockModule(BlockableModule.Timekeeping, $event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'BlockTK' | translate }}\r\n </a>\r\n }\r\n </li>\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onChangePasswordClick($event)\">\r\n <span [class]=\"indicatorClass\"></span>\r\n {{ 'ChangePassword' | translate }}\r\n </a>\r\n </li>\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n\r\n <li>\r\n <a [class]=\"menuRowClass\" (click)=\"onOpenAboutClick($event)\">\r\n <fa-icon [class]=\"indicatorClass\" [icon]=\"infoIcon\"></fa-icon>\r\n {{ 'About' | translate }}\r\n </a>\r\n </li>\r\n </ul>\r\n }\r\n</div>\r\n\r\n<bayan-core-change-password-widget\r\n [baseUrl]=\"baseUrl\"\r\n [visible]=\"showChangePassword\"\r\n [config]=\"changePasswordDialog\"\r\n (visibleChange)=\"showChangePassword = !!$event\">\r\n </bayan-core-change-password-widget>\r\n\r\n <bayan-core-about-dialog-widget\r\n [visible]=\"showAbout\"\r\n [config]=\"aboutDialog\"\r\n [licenseUrl]=\"licenseUrl\"\r\n [releaseNotesUrl]=\"releaseNotesUrl\"\r\n [supportUrl]=\"supportUrl\"\r\n (visibleChange)=\"showAbout = !!$event\">\r\n </bayan-core-about-dialog-widget>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, computed, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faPersonRunning } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BayanEmployeeBadgeComponent, BayanEmployeeBadgeDTO } from '@skysoftware-co/bayan-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\nimport { UserPanel, PropertyOption } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../../../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-user-panel-widget',\r\n standalone: true,\r\n imports: [CommonModule, FontAwesomeModule, BayanEmployeeBadgeComponent, BayanCoreTranslatePipe],\r\n templateUrl: './user-panel-widget.component.html',\r\n styleUrls: ['../../top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreUserPanelWidgetComponent implements OnInit, OnChanges {\r\n private readonly topMenuService = inject(BayanCoreTopMenuService);\r\n\r\n @Input() baseUrl = '';\r\n @Input() wrapperClass = 'menu-dropdown-host';\r\n @Input() dropdownOpenClass = 'open';\r\n @Input() toggleButtonClass = 'employee-toggle';\r\n @Input() employeeInfoClass = 'employee-info';\r\n @Input() userNameClass = 'user-name';\r\n @Input() propertyNameClass = 'property-name';\r\n @Input() caretClass = 'employee-caret';\r\n @Input() menuClass = 'employee-menu menu-dropdown-panel';\r\n @Input() sectionLabelClass = 'menu-section-label';\r\n @Input() menuItemClass = 'menu-item';\r\n @Input() menuItemActiveClass = 'menu-item-active';\r\n @Input() indicatorClass = 'menu-indicator';\r\n @Input() invisibleIndicatorClass = 'menu-indicator invisible';\r\n @Input() dividerClass = 'menu-divider';\r\n @Input() signOutButtonClass = 'menu-item menu-item-signout';\r\n @Input() showSignOutIcon = true;\r\n @Input() signOutIconClass = 'mx-2';\r\n\r\n @Output() propertyChanged = new EventEmitter<PropertyOption>();\r\n @Output() signOutClick = new EventEmitter<void>();\r\n\r\n readonly signOutIcon = faPersonRunning;\r\n readonly dropdownOpen = signal(false);\r\n readonly userPanel = signal<UserPanel | null>(null);\r\n\r\n readonly badge = computed<BayanEmployeeBadgeDTO>(() => ({\r\n EmployeePhotoKey: this.userPanel()?.PhotoPath ?? null,\r\n EmployeePhotoFailed: false,\r\n EmployeeNameInitials: this.userPanel()?.NameInitials ?? '',\r\n }));\r\n\r\n constructor(private readonly elementRef: ElementRef<HTMLElement>) {}\r\n\r\n ngOnInit(): void {\r\n this.loadUserPanel();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] && !changes['baseUrl'].firstChange) {\r\n this.loadUserPanel();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n const target = event.target as Node | null;\r\n if (target && !this.elementRef.nativeElement.contains(target)) {\r\n this.dropdownOpen.set(false);\r\n }\r\n }\r\n\r\n toggleDropdown(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.update((value) => !value);\r\n }\r\n\r\n selectProperty(event: Event, property: PropertyOption): void {\r\n event.preventDefault();\r\n if (property.PropertyId === this.userPanel()?.ActivePropertyId) {\r\n this.dropdownOpen.set(false);\r\n return;\r\n }\r\n\r\n this.dropdownOpen.set(false);\r\n\r\n this.topMenuService\r\n .switchProperty(this.baseUrl, { PropertyId: property.PropertyId })\r\n .subscribe({\r\n next: () => {\r\n this.topMenuService.getUserPanel(this.baseUrl).subscribe({\r\n next: (userPanel) => {\r\n this.userPanel.set(userPanel);\r\n this.propertyChanged.emit(property);\r\n },\r\n });\r\n },\r\n });\r\n }\r\n\r\n signOut(event: Event): void {\r\n event.preventDefault();\r\n this.dropdownOpen.set(false);\r\n this.signOutClick.emit();\r\n }\r\n\r\n reload(): void {\r\n this.loadUserPanel();\r\n }\r\n\r\n private loadUserPanel(): void {\r\n if (!this.baseUrl) {\r\n this.userPanel.set(null);\r\n return;\r\n }\r\n\r\n this.topMenuService.getUserPanel(this.baseUrl).subscribe({\r\n next: (userPanel) => {\r\n this.userPanel.set(userPanel);\r\n let property : PropertyOption = {\r\n PropertyId: userPanel.ActivePropertyId,\r\n PropertyName: userPanel.ActivePropertyName };\r\n this.propertyChanged.emit(property);\r\n },\r\n error: () => {\r\n this.userPanel.set(null);\r\n },\r\n });\r\n }\r\n}\r\n","<div [ngClass]=\"[wrapperClass, dropdownOpen() ? dropdownOpenClass : '']\">\r\n <a href=\"#\" [class]=\"toggleButtonClass\" (click)=\"toggleDropdown($event)\">\r\n <bayan-employee-badge [badge]=\"badge()\" width=\"34px\" height=\"34px\"></bayan-employee-badge>\r\n\r\n <div [class]=\"employeeInfoClass\">\r\n <span [class]=\"userNameClass\">{{ userPanel()?.UserDisplayName || '' }}</span>\r\n\r\n @if (userPanel()?.ActivePropertyName) {\r\n <span [class]=\"propertyNameClass\">{{ userPanel()?.ActivePropertyName }}</span>\r\n }\r\n </div>\r\n\r\n <span [class]=\"caretClass\">▼</span>\r\n </a>\r\n\r\n @if (dropdownOpen()) {\r\n <ul [class]=\"menuClass\">\r\n @if ((userPanel()?.Properties?.length || 0) > 0) {\r\n <li [class]=\"sectionLabelClass\">{{ 'Properties' | translate }}</li>\r\n\r\n @for (property of userPanel()?.Properties ?? []; track property.PropertyId) {\r\n <li>\r\n <a\r\n class=\"text-dark-gray\"\r\n [ngClass]=\"[menuItemClass, property.PropertyId === userPanel()?.ActivePropertyId ? menuItemActiveClass : '']\"\r\n (click)=\"selectProperty($event, property)\">\r\n @if (property.PropertyId === userPanel()?.ActivePropertyId) {\r\n <span [class]=\"indicatorClass\">►</span>\r\n } @else {\r\n <span [class]=\"indicatorClass + ' ' + invisibleIndicatorClass\"></span>\r\n }\r\n\r\n {{ property.PropertyName }}\r\n </a>\r\n </li>\r\n }\r\n\r\n <li><hr [class]=\"dividerClass\"></li>\r\n }\r\n\r\n @if (!userPanel()?.IsSSOLogin) {\r\n <li>\r\n <a class=\"text-dark-gray\" [class]=\"signOutButtonClass\"\r\n [ngClass]=\"{'ms-3': !showSignOutIcon}\" (click)=\"signOut($event)\">\r\n @if (showSignOutIcon) {\r\n <fa-icon [class]=\"signOutIconClass\" [icon]=\"signOutIcon\"></fa-icon>\r\n }\r\n {{ 'SignOut' | translate }}\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n }\r\n</div>\r\n","import { TranslatePipe } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslateService } from './../shared/services/translate.service';\r\nimport { BayanCoreTranslatePipe } from './../shared/pipes/translate.pipe';\r\nimport { GlobalSearchMenu } from '../shared/menu.dtos';\r\nimport { ElementRef } from '@angular/core';\r\nimport { BayanCoreTopMenuService } from '../shared/menu.service';\r\nimport { TopMenuShortcut, PropertyOption, SystemModule, EmployeeNamesModeOption } from '../shared/menu.dtos';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, inject, signal } from '@angular/core';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport { faQuestionCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Router } from '@angular/router';\r\nimport { DxToolbarModule } from 'devextreme-angular';\r\nimport { BayanCoreGlobalSearchWidgetComponent } from './components/global-search-widget/global-search-widget.component';\r\nimport { BayanCoreItemWidgetComponent } from './components/item-widget/item-widget.component';\r\nimport { BayanCoreNotificationsWidgetComponent } from './components/notifications-widget/notifications-widget.component';\r\nimport { BayanCoreSettingsWidgetComponent } from './components/settings-widget/settings-widget.component';\r\nimport { BayanCoreUserPanelWidgetComponent } from './components/user-panel-widget/user-panel-widget.component';\r\n\r\n\r\n@Component({\r\n selector: 'bayan-core-top-menu-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n DxToolbarModule,\r\n FontAwesomeModule,\r\n BayanCoreItemWidgetComponent,\r\n BayanCoreGlobalSearchWidgetComponent,\r\n BayanCoreUserPanelWidgetComponent,\r\n BayanCoreSettingsWidgetComponent,\r\n BayanCoreNotificationsWidgetComponent,\r\n BayanCoreTranslatePipe\r\n ],\r\n templateUrl: './top-menu-widget.component.html',\r\n styleUrls: ['./top-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreTopMenuWidgetComponent implements OnInit {\r\n constructor(private elementRef: ElementRef) {}\r\n private TranslateService = inject(BayanCoreTranslateService);\r\n globalSearchWidget?: BayanCoreGlobalSearchWidgetComponent;\r\n @ViewChild(BayanCoreUserPanelWidgetComponent) userPanelWidget?: BayanCoreUserPanelWidgetComponent;\r\n\r\n globalSearchResults: GlobalSearchMenu[] = [];\r\n private readonly document = inject(DOCUMENT);\r\n private readonly router = inject(Router);\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n openDropdownIndex: number | null = null;\r\n\r\n @Input() baseUrl = '';\r\n @Input() systemModule : SystemModule | null =null;\r\n menuItems: TopMenuShortcut[] = [];\r\n\r\n @Input() sidebarCollapsed = false;\r\n @Input() homeUrl: string | null = null;\r\n @Input() logoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise-dark.png';\r\n @Input() collapsedLogoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-collapsed.png';\r\n @Output() logoClick = new EventEmitter<void>();\r\n\r\n @Input() isSsoLogin = false;\r\n\r\n // Removed useInternalDialogs and all related logic\r\n\r\n @Input() showGlobalSearch = true;\r\n @Input() showUserPanel = true;\r\n @Input() showSettings = true;\r\n @Input() showShortcutMenus = true;\r\n @Input() showNotifications = true;\r\n @Input() notificationsTitle = 'Notifications';\r\n\r\n @Input() showHelp = true;\r\n @Input() helpTitle = 'Help';\r\n @Input() helpUrl: string | null = 'https://docs.bayan.solutions/Bayan/index.html';\r\n @Input() helpIcon: IconDefinition = faQuestionCircle;\r\n @Input() helpAnchorClass = 'menu-icon-btn';\r\n @Input() helpUrlTarget: '_self' | '_blank' | string = '_blank';\r\n @Input() licenseUrl = '';\r\n @Input() releaseNotesUrl = '';\r\n @Input() supportUrl = 'https://skyits.com/contact';\r\n\r\n @Output() helpClick = new EventEmitter<void>();\r\n @Output() menuItemClick = new EventEmitter<TopMenuShortcut>();\r\n @Output() searchSubmit = new EventEmitter<string>();\r\n @Output() propertyChanged = new EventEmitter<PropertyOption>();\r\n @Output() signOutClick = new EventEmitter<void>();\r\n @Output() alternateNamesChange = new EventEmitter<boolean>();\r\n @Output() employeeNameModeChange = new EventEmitter<EmployeeNamesModeOption>();\r\n\r\n readonly aboutVisible = signal(false);\r\n readonly changePasswordVisible = signal(false);\r\n\r\n ActivePropertyChanged = false;\r\n ActivePropertyId: number = 0;\r\n\r\n ngOnInit(): void {\r\n this.loadShortcutMenus();\r\n this.loadGlobalSearchResults();\r\n }\r\n\r\n private loadGlobalSearchResults(): void {\r\n if (this.baseUrl && this.ActivePropertyId > 0) {\r\n this.menuService.getGlobalSearchMenus(this.baseUrl, this.ActivePropertyId).subscribe({\r\n next: (menus: any) => { this.globalSearchResults = menus ?? []; this.cdr.markForCheck(); },\r\n error: () => { this.globalSearchResults = []; this.cdr.markForCheck(); }\r\n });\r\n } else {\r\n this.globalSearchResults = [];\r\n }\r\n }\r\n\r\n onEmployeeNameModeChange(event: any): void {\r\n this.employeeNameModeChange.emit(event);\r\n }\r\n\r\n onAlternateNamesChange(value: boolean): void {\r\n this.userPanelWidget?.reload();\r\n this.alternateNamesChange.emit(value);\r\n }\r\n\r\n getLogoSrc(): string | null {\r\n if (this.sidebarCollapsed) {\r\n return this.collapsedLogoUrl || null;\r\n }\r\n\r\n return this.logoUrl || null;\r\n }\r\n\r\n onLogoClicked(event?: Event): void {\r\n event?.preventDefault();\r\n if(this.homeUrl){\r\n window.location.href = this.homeUrl;\r\n return;\r\n }\r\n\r\n this.logoClick.emit();\r\n }\r\n\r\n onHelpClicked(event?: Event): void {\r\n event?.preventDefault();\r\n if(this.helpUrl){\r\n window.open(this.helpUrl, this.helpUrlTarget);\r\n return;\r\n }\r\n this.helpClick.emit();\r\n }\r\n\r\n onPropertyChanged(property: PropertyOption): void {\r\n this.ActivePropertyChanged = !this.ActivePropertyChanged;\r\n this.ActivePropertyId = property.PropertyId;\r\n this.loadShortcutMenus();\r\n this.loadGlobalSearchResults();\r\n this.propertyChanged.emit(property);\r\n }\r\n\r\n private loadShortcutMenus(): void {\r\n this.menuItems=[];\r\n if(!this.showShortcutMenus) return;\r\n if(!this.baseUrl) return;\r\n if(!this.systemModule) return;\r\n\r\n if (this.ActivePropertyId > 0) {\r\n this.menuService.getMicroserviceTopMenusShortcut(this.baseUrl, this.ActivePropertyId, this.systemModule)\r\n .subscribe({\r\n next: (menus: any) => { this.menuItems = menus ?? []; this.cdr.markForCheck(); },\r\n error: () => { this.menuItems = []; this.cdr.markForCheck(); }\r\n });\r\n } else {\r\n this.menuItems = [];\r\n }\r\n }\r\n}\r\n","<header class=\"top-bar-header shadow-sm w-100 sticky-top\">\r\n <dx-toolbar class=\"header-toolbar px-4\">\r\n <dxi-item location=\"before\">\r\n <div *dxTemplate>\r\n <a\r\n class=\"navbar-brand-link\" href=\"#\"\r\n [class.collapsed]=\"sidebarCollapsed\"\r\n (click)=\"onLogoClicked($event)\">\r\n <img\r\n [src]=\"getLogoSrc()\"\r\n alt=\"\"\r\n [class.header-logo]=\"!sidebarCollapsed\"\r\n [class.header-logo-collapsed]=\"sidebarCollapsed && !!collapsedLogoUrl\">\r\n </a>\r\n </div>\r\n </dxi-item>\r\n\r\n @if (showShortcutMenus) {\r\n <dxi-item location=\"before\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <ul class=\"nav navbar-nav d-flex flex-row align-items-center mb-0 gap-1\">\r\n @for (item of menuItems; track item.MenuName) {\r\n <bayan-core-item-widget [item]=\"item\"\r\n [baseUrl]=\"baseUrl\"\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n (itemClick)=\"menuItemClick.emit($event)\">\r\n </bayan-core-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showGlobalSearch) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-global-search-widget\r\n #globalSearchWidget\r\n [baseUrl]=\"baseUrl\"\r\n [dataSource]=\"globalSearchResults\"\r\n (search)=\"searchSubmit.emit($event)\">\r\n </bayan-core-global-search-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showUserPanel) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-user-panel-widget\r\n [baseUrl]=\"baseUrl\"\r\n [showSignOutIcon]=\"false\"\r\n (propertyChanged)=\"onPropertyChanged($event)\"\r\n (signOutClick)=\"signOutClick.emit()\">\r\n </bayan-core-user-panel-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showSettings) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-settings-widget\r\n [ActivePropertyChanged]=\"ActivePropertyChanged\"\r\n [baseUrl]=\"baseUrl\"\r\n [licenseUrl]=\"licenseUrl\"\r\n [releaseNotesUrl]=\"releaseNotesUrl\"\r\n [supportUrl]=\"supportUrl\"\r\n [systemModule]=\"systemModule\"\r\n (alternateNamesChange)=\"onAlternateNamesChange($event)\"\r\n (employeeNameModeChange)=\"onEmployeeNameModeChange($event)\">\r\n </bayan-core-settings-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showNotifications) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <bayan-core-notifications-widget [baseUrl]=\"baseUrl\"\r\n [title]=\"notificationsTitle | translate\" >\r\n </bayan-core-notifications-widget>\r\n </div>\r\n </dxi-item>\r\n }\r\n\r\n @if (showHelp) {\r\n <dxi-item location=\"after\" locateInMenu=\"never\">\r\n <div *dxTemplate>\r\n <a\r\n [class]=\"helpAnchorClass\"\r\n [title]=\"helpTitle | translate\"\r\n [target]=\"helpUrlTarget\"\r\n href=\"#\"\r\n (click)=\"onHelpClicked($event)\">\r\n <fa-icon [icon]=\"helpIcon\" class=\"fs-6\"></fa-icon>\r\n </a>\r\n </div>\r\n </dxi-item>\r\n }\r\n </dx-toolbar>\r\n</header>\r\n\r\n<!-- Dialogs are now rendered inside settings-widget, not here -->\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';\r\nimport { DOCUMENT, CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport {\r\n faAngleDown, faAngleRight, faAngleLeft, faUsers, faBolt, faCog, faCalendarDays,\r\n faCalculator, faHouseChimney, faMoneyBill, faMoneyBill1, faBuildingColumns,\r\n} from '@fortawesome/pro-solid-svg-icons';\r\nimport {\r\n faCalendarDays as faCalendarDaysRegular,\r\n faCalculator as faCalculatorRegular,\r\n faMoneyBill as faMoneyBillRegular,\r\n faMoneyBill1 as faMoneyBill1Regular,\r\n} from '@fortawesome/pro-regular-svg-icons';\r\nimport { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconPrefix, IconProp } from '@fortawesome/fontawesome-svg-core';\r\nimport { SystemMenu } from '../../../shared/menu.dtos';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-side-menu-item-widget',\r\n standalone: true,\r\n imports: [CommonModule, RouterModule, FontAwesomeModule, BayanCoreTranslatePipe, BayanCoreSideMenuItemWidgetComponent],\r\n templateUrl: './side-menu-item-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class BayanCoreSideMenuItemWidgetComponent {\r\n @Input({ required: true }) item!: SystemMenu;\r\n @Input() level = 1;\r\n @Input() collapsed = false;\r\n @Output() itemClick = new EventEmitter<SystemMenu>();\r\n @Output() expanded = new EventEmitter<SystemMenu>();\r\n\r\n private readonly fallbackIcon: IconProp = ['fas', 'square'];\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private readonly elRef = inject(ElementRef);\r\n private readonly document = inject(DOCUMENT);\r\n\r\n popoverTop = 0;\r\n\r\n getPopoverTop(): number {\r\n const rect = (this.elRef.nativeElement as HTMLElement).getBoundingClientRect();\r\n return rect.top;\r\n }\r\n\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(\r\n faAngleDown, faAngleRight, faAngleLeft,\r\n faUsers, faBolt, faCog, faCalendarDays, faCalculator, faHouseChimney,\r\n faMoneyBill, faMoneyBill1, faBuildingColumns,\r\n faCalendarDaysRegular, faCalculatorRegular, faMoneyBillRegular, faMoneyBill1Regular,\r\n );\r\n }\r\n\r\n getExpandArrowIcon(): IconProp {\r\n return this.document.documentElement.dir === 'rtl'\r\n ? ['fas', 'angle-left']\r\n : ['fas', 'angle-right'];\r\n }\r\n\r\n hasChildren(): boolean {\r\n return (this.item.Children || []).length > 0;\r\n }\r\n\r\n toggle(event: Event): void {\r\n if (this.hasChildren()) {\r\n event.preventDefault();\r\n const opening = !this.item.Expanded;\r\n this.item.Expanded = opening;\r\n if (!opening) {\r\n // Recursively collapse all nested children when closing\r\n this.collapseRecursive(this.item.Children || []);\r\n }\r\n this.cdr.markForCheck();\r\n if (opening) {\r\n this.expanded.emit(this.item);\r\n }\r\n return;\r\n }\r\n\r\n if (!this.getResolvedUrl()) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n this.itemClick.emit(this.item);\r\n }\r\n\r\n getResolvedUrl(): string | null {\r\n const url = (this.item.MenuUrl || '').trim();\r\n\r\n if (this.hasChildren() || !url || url === '#') {\r\n return null;\r\n }\r\n\r\n try {\r\n return new URL(url, `${window.location.origin}/`).toString();\r\n } catch {\r\n return url;\r\n }\r\n }\r\n\r\n collapseAllExcept(excludeItem: SystemMenu): void {\r\n if (this.item !== excludeItem && this.item.Expanded) {\r\n this.item.Expanded = false;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onChildExpanded(expandedItem: SystemMenu, siblings: SystemMenu[]): void {\r\n siblings.forEach(sibling => {\r\n if (sibling !== expandedItem) {\r\n sibling.Expanded = false;\r\n this.collapseRecursive(sibling.Children || []);\r\n }\r\n });\r\n this.cdr.markForCheck();\r\n this.expanded.emit(this.item);\r\n }\r\n\r\n private collapseRecursive(items: SystemMenu[]): void {\r\n items.forEach(item => {\r\n if (item.Expanded) {\r\n item.Expanded = false;\r\n }\r\n if (item.Children?.length) {\r\n this.collapseRecursive(item.Children);\r\n }\r\n });\r\n }\r\n\r\n shouldShowIcon(): boolean {\r\n if (this.level > 2) return false;\r\n\r\n const raw = (this.item?.IconClass || '').toString().trim().toLowerCase();\r\n if (!raw) return false;\r\n\r\n const styleTokens = new Set(['fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands', 'fa-fw']);\r\n const tokens = raw.split(/\\s+/).map((t) => t.trim()).filter((t) => !!t);\r\n\r\n const candidate =\r\n tokens.find((t) => t.startsWith('iconfa-')) ||\r\n tokens.find((t) => t.startsWith('fa-') && !styleTokens.has(t)) ||\r\n tokens.find((t) => !styleTokens.has(t));\r\n\r\n if (!candidate) return false;\r\n\r\n const normalized = candidate.replace(/^iconfa-/, '').replace(/^fa-/, '').trim();\r\n if (!normalized) return false;\r\n\r\n if (!this.hasChildren() && (normalized === 'check' || normalized === 'square')) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n parseFaIcon(icon: string | null | undefined): IconProp {\r\n const fallback: IconProp = this.fallbackIcon;\r\n\r\n if (icon) {\r\n icon = icon.toString().replaceAll('fa-solid', '').replaceAll('fa-brands', '').replaceAll('fa-fw', '');\r\n }\r\n\r\n if (!icon || typeof icon !== 'string' || icon.trim() === '') {\r\n return fallback;\r\n }\r\n\r\n const tokens = icon.toLowerCase().split(/\\s+/).map((t) => t.trim()).filter((t) => !!t);\r\n\r\n if (tokens.length === 0) return fallback;\r\n\r\n let prefix: IconPrefix = 'fas';\r\n if (tokens.includes('far') || tokens.includes('fa-regular')) {\r\n prefix = 'far';\r\n } else if (tokens.includes('fab') || tokens.includes('fa-brands')) {\r\n prefix = 'fab';\r\n }\r\n\r\n const iconFaToken = tokens.find((t) => t.startsWith('iconfa-'));\r\n if (iconFaToken) {\r\n const normalized = iconFaToken.replace(/^iconfa-/, '').trim();\r\n if (!normalized || !/^[a-z0-9-]+$/.test(normalized)) return fallback;\r\n return [prefix, normalized] as IconProp;\r\n }\r\n\r\n let iconName = tokens.find(\r\n (t) => t.startsWith('fa-') && !['fa-fw', 'fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands'].includes(t),\r\n );\r\n\r\n if (!iconName) {\r\n iconName = tokens.find((t) => !['fa-fw', 'fa', 'fas', 'far', 'fab', 'fa-solid', 'fa-regular', 'fa-brands'].includes(t));\r\n if (iconName && !iconName.startsWith('fa-')) {\r\n iconName = `fa-${iconName}`;\r\n }\r\n }\r\n\r\n let normalized = (iconName || 'fa-square').replace(/^fa-/, '').trim();\r\n if (normalized === 'institution') normalized = 'building-columns';\r\n if (!normalized || !/^[a-z0-9-]+$/.test(normalized)) return fallback;\r\n\r\n return [prefix, normalized] as IconProp;\r\n }\r\n\r\n getSafeMenuIcon(icon: string | null | undefined): IconProp {\r\n try {\r\n const resolved = this.parseFaIcon(icon);\r\n if (Array.isArray(resolved) && resolved.length >= 2 && !!resolved[0] && !!resolved[1]) {\r\n return resolved;\r\n }\r\n return this.fallbackIcon;\r\n } catch {\r\n return this.fallbackIcon;\r\n }\r\n }\r\n}\r\n","<li [class.parent]=\"hasChildren()\" [class.open]=\"item.Expanded\" [class.collapsed]=\"collapsed\"\r\n [class.level-1]=\"level === 1\"\r\n [class.level-2]=\"level === 2\"\r\n [class.level-3]=\"level >= 3\"\r\n [class.level-last]=\"!hasChildren()\"\r\n (mouseenter)=\"collapsed && hasChildren() ? item.Expanded = true : null\"\r\n (mouseleave)=\"collapsed && hasChildren() ? item.Expanded = false : null\">\r\n <a (click)=\"toggle($event)\" [attr.href]=\"getResolvedUrl() || '#'\" [class.has-children]=\"hasChildren()\">\r\n <div class=\"d-flex flex-grow-1 menu-label-wrap\">\r\n @if (level === 1 && (shouldShowIcon() || collapsed)) {\r\n <fa-icon [icon]=\"getSafeMenuIcon(item.IconClass)\" class=\"fa-fw me-2 text-secondary\"></fa-icon>\r\n }\r\n @if (!collapsed) {\r\n <span class=\"menu-name-text\">{{ item.MenuName | translate }}</span>\r\n }\r\n </div>\r\n @if (hasChildren() && !collapsed) {\r\n <fa-icon [icon]=\"item.Expanded ? ['fas', 'angle-down'] : getExpandArrowIcon()\" class=\"fa-fw menu-expand-arrow text-secondary\"></fa-icon>\r\n }\r\n </a>\r\n @if (hasChildren() && !collapsed) {\r\n <ul class=\"sub-menu\">\r\n @for (child of item.Children; track child) {\r\n <bayan-core-side-menu-item-widget\r\n [item]=\"child\"\r\n [level]=\"level + 1\"\r\n [collapsed]=\"collapsed\"\r\n (itemClick)=\"itemClick.emit($event)\"\r\n (expanded)=\"onChildExpanded($event, item.Children)\">\r\n </bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n }\r\n @if (hasChildren() && item.Expanded && collapsed) {\r\n <div class=\"popover-sub-menu\" [style.top.px]=\"getPopoverTop()\">\r\n <div class=\"popover-menu\">\r\n <div class=\"popover-arrow\"></div>\r\n <div class=\"popover-menu-header\">\r\n @if (shouldShowIcon()) {\r\n <fa-icon [icon]=\"getSafeMenuIcon(item.IconClass)\" class=\"fa-fw me-2 popover-header-icon\"></fa-icon>\r\n }\r\n <span>{{ item.MenuName | translate }}</span>\r\n </div>\r\n <ul class=\"popover-items-list\">\r\n @for (child of item.Children; track child) {\r\n <bayan-core-side-menu-item-widget\r\n [item]=\"child\"\r\n [level]=\"level + 1\"\r\n [collapsed]=\"false\"\r\n (itemClick)=\"itemClick.emit($event)\"\r\n (expanded)=\"onChildExpanded($event, item.Children)\">\r\n </bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n }\r\n</li>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-terms-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './terms-dialog-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreTermsDialogWidgetComponent {\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n close() {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n onHiding() {\r\n this.close();\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"onHiding()\"\r\n [showTitle]=\"true\"\r\n [title]=\"'TermsAndConditions' | translate\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"580\"\r\n [height]=\"520\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [animation]=\"{\r\n show: { type: 'fade', duration: 300, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 200, from: 1, to: 0 }\r\n }\">\r\n <div *dxTemplate=\"let data of 'content'\" class=\"dialog-content\">\r\n <div class=\"dialog-body\">\r\n <h3>{{ 'TermsAndConditions' | translate }}</h3>\r\n <p>{{ 'TermsIntro1' | translate }}</p>\r\n <p>{{ 'TermsIntro2' | translate }}</p>\r\n\r\n <h4>{{ 'Trademarks' | translate }}</h4>\r\n <p>{{ 'TermsTrademarksText' | translate }}</p>\r\n\r\n <h4>{{ 'Copyrights' | translate }}</h4>\r\n <p>{{ 'TermsCopyrightsText' | translate }}</p>\r\n\r\n <h4>{{ 'SubmissionOfIdeas' | translate }}</h4>\r\n <p>{{ 'TermsSubmissionOfIdeasText' | translate }}</p>\r\n\r\n <h4>{{ 'Links' | translate }}</h4>\r\n <p>{{ 'TermsLinksText' | translate }}</p>\r\n\r\n <h4>{{ 'RulesOfConduct' | translate }}</h4>\r\n <p>{{ 'TermsRulesOfConductText1' | translate }}</p>\r\n <p>{{ 'TermsRulesOfConductText2' | translate }}</p>\r\n <p>{{ 'TermsRulesOfConductText3' | translate }}</p>\r\n\r\n <h4 class=\"text-uppercase\">{{ 'Disclaimer' | translate }}</h4>\r\n <p>{{ 'TermsDisclaimerText1' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText2' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText3' | translate }}</p>\r\n <p>{{ 'TermsDisclaimerText4' | translate }}</p>\r\n </div>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"'Close' | translate\"\r\n [showSecondaryButton]=\"false\"\r\n (PrimaryButtonClick)=\"close()\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DxPopupModule } from 'devextreme-angular';\r\nimport { SkyFooterActionsComponent } from '@skysoftware-co/sky-components-ui';\r\nimport { BayanCoreTranslatePipe } from '../../../shared/pipes/translate.pipe';\r\n\r\n@Component({\r\n selector: 'bayan-core-privacy-dialog-widget',\r\n standalone: true,\r\n imports: [CommonModule, DxPopupModule, SkyFooterActionsComponent, BayanCoreTranslatePipe],\r\n templateUrl: './privacy-dialog-widget.component.html',\r\n styleUrls: ['../../side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCorePrivacyDialogWidgetComponent {\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n close() {\r\n this.visible = false;\r\n this.visibleChange.emit(false);\r\n }\r\n\r\n onHiding() {\r\n this.close();\r\n }\r\n}\r\n","<dx-popup\r\n [visible]=\"visible\"\r\n (onHiding)=\"onHiding()\"\r\n [showTitle]=\"true\"\r\n [title]=\"'PrivacyStatement' | translate\"\r\n [dragEnabled]=\"false\"\r\n [hideOnOutsideClick]=\"true\"\r\n [showCloseButton]=\"true\"\r\n [width]=\"580\"\r\n [height]=\"520\"\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n [animation]=\"{\r\n show: { type: 'fade', duration: 300, from: 0, to: 1 },\r\n hide: { type: 'fade', duration: 200, from: 1, to: 0 }\r\n }\">\r\n <div *dxTemplate=\"let data of 'content'\" class=\"dialog-content\">\r\n <div class=\"dialog-body\">\r\n <h3>{{ 'PrivacyStatement' | translate }}</h3>\r\n <p>{{ 'PrivacyIntro' | translate }}</p>\r\n\r\n <h4>{{ 'DataSubmission' | translate }}</h4>\r\n <p>{{ 'PrivacyDataSubmissionText' | translate }}</p>\r\n\r\n <h4>{{ 'ProtectionOfData' | translate }}</h4>\r\n <p>{{ 'PrivacyProtectionOfDataText' | translate }}</p>\r\n\r\n <h4>{{ 'ChangesOnPrivacyPolicy' | translate }}</h4>\r\n <p>{{ 'PrivacyChangesText' | translate }}</p>\r\n <p [innerHTML]=\"'PrivacyContactUs' | translate\"></p>\r\n </div>\r\n\r\n <sky-footer-actions\r\n [primaryButtonText]=\"'Close' | translate\"\r\n [showSecondaryButton]=\"false\"\r\n (PrimaryButtonClick)=\"close()\">\r\n </sky-footer-actions>\r\n </div>\r\n</dx-popup>\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, inject } from '@angular/core';\r\nimport { DOCUMENT, CommonModule } from '@angular/common';\r\nimport { BayanCoreSideMenuItemWidgetComponent } from './components/side-menu-item/side-menu-item-widget.component';\r\nimport { faAngleLeft, faAngleRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\r\nimport { BayanCoreTranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { BayanCoreTermsDialogWidgetComponent } from './components/terms-dialog/terms-dialog-widget.component';\r\nimport { BayanCorePrivacyDialogWidgetComponent } from './components/privacy-dialog/privacy-dialog-widget.component';\r\nimport { SystemMenu, SystemModule } from '../shared/menu.dtos';\r\nimport { BayanCoreTopMenuService } from '../shared/menu.service';\r\n\r\n@Component({\r\n selector: 'bayan-core-side-menu-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n BayanCoreTranslatePipe,\r\n BayanCoreSideMenuItemWidgetComponent,\r\n BayanCoreTermsDialogWidgetComponent,\r\n BayanCorePrivacyDialogWidgetComponent,\r\n ],\r\n templateUrl: './side-menu-widget.component.html',\r\n styleUrls: ['./side-menu-widget.styles.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BayanCoreSideMenuWidgetComponent implements OnChanges {\r\n @Input() collapsed = false;\r\n @Input() baseUrl = '';\r\n @Input() systemModule: SystemModule | null = null;\r\n @Input() activePropertyId = 0;\r\n @Input() ActivePropertyChanged = false;\r\n @Input() logoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-enterprise-dark.png';\r\n @Input() collapsedLogoUrl = 'https://cdn-dev.skysoftware.cloud/bayan/images/logo-collapsed.png';\r\n @Input() showFooter = true;\r\n\r\n @Output() collapsedChange = new EventEmitter<boolean>();\r\n @Output() itemClick = new EventEmitter<SystemMenu>();\r\n\r\n termsOpen = false;\r\n privacyOpen = false;\r\n menu: SystemMenu[] = [];\r\n\r\n private readonly menuService = inject(BayanCoreTopMenuService);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private readonly document = inject(DOCUMENT);\r\n\r\n constructor(library: FaIconLibrary) {\r\n library.addIcons(faAngleLeft, faAngleRight);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['baseUrl'] || changes['systemModule'] || changes['activePropertyId'] || changes['ActivePropertyChanged']) {\r\n this.loadSideMenusData();\r\n }\r\n }\r\n\r\n loadSideMenusData(): void {\r\n if (!this.baseUrl || !this.systemModule || this.activePropertyId <= 0) {\r\n this.menu = [];\r\n return;\r\n }\r\n\r\n this.menuService.getMicroserviceMenusByProperty(this.baseUrl, this.activePropertyId, this.systemModule).subscribe({\r\n next: (data: SystemMenu[]) => {\r\n this.menu = this.normalizeMenuTree((data as any[]) || []);\r\n this.cdr.markForCheck();\r\n },\r\n error: () => {\r\n this.menu = [];\r\n this.cdr.markForCheck();\r\n },\r\n });\r\n }\r\n\r\n private normalizeMenuTree(items: any[]): SystemMenu[] {\r\n return (items || []).map((raw) => {\r\n const childItemsRaw = raw.Children ?? raw.MenuItems ?? raw.MenusItems ?? [];\r\n return {\r\n ...raw,\r\n Children: this.normalizeMenuTree(childItemsRaw),\r\n Expanded: raw.Expanded === true,\r\n } as SystemMenu;\r\n });\r\n }\r\n\r\n get isRtl(): boolean {\r\n return this.document.documentElement.dir === 'rtl';\r\n }\r\n\r\n getLogoSrc(): string {\r\n return this.collapsed ? this.collapsedLogoUrl : this.logoUrl;\r\n }\r\n\r\n reloadMenu(): void {\r\n this.loadSideMenusData();\r\n }\r\n\r\n getToggleIcon(): IconProp {\r\n const isRtl = this.document.documentElement.dir === 'rtl';\r\n return (this.collapsed !== isRtl)\r\n ? ['fas', 'angle-right']\r\n : ['fas', 'angle-left'];\r\n }\r\n\r\n toggleSidebar(): void {\r\n this.collapsed = !this.collapsed;\r\n this.collapsedChange.emit(this.collapsed);\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onItemClick(item: SystemMenu): void {\r\n this.itemClick.emit(item);\r\n }\r\n\r\n onMenuExpanded(expandedItem: SystemMenu): void {\r\n this.menu.forEach(item => {\r\n if (item !== expandedItem) {\r\n item.Expanded = false;\r\n this.collapseChildrenRecursive(item.Children || []);\r\n }\r\n });\r\n this.cdr.markForCheck();\r\n }\r\n\r\n private collapseChildrenRecursive(items: SystemMenu[]): void {\r\n items.forEach(item => {\r\n if (item.Expanded) item.Expanded = false;\r\n if (item.Children?.length) this.collapseChildrenRecursive(item.Children);\r\n });\r\n }\r\n}\r\n","<div class=\"sidebar\" [class.collapsed]=\"collapsed\" [attr.dir]=\"isRtl ? 'rtl' : 'ltr'\">\r\n <div class=\"sidebar-logo\">\r\n <img [src]=\"getLogoSrc()\" alt=\"Logo\" />\r\n </div>\r\n <div class=\"sidebar-content\">\r\n <ul class=\"nav-sidebar\">\r\n @for (item of menu; track item) {\r\n <bayan-core-side-menu-item-widget [item]=\"item\" [level]=\"1\" [collapsed]=\"collapsed\" (itemClick)=\"onItemClick($event)\" (expanded)=\"onMenuExpanded($event)\"></bayan-core-side-menu-item-widget>\r\n }\r\n </ul>\r\n </div>\r\n @if (showFooter) {\r\n <div class=\"sidebar-footer\">\r\n <small class=\"text-secondary flex-grow-1 d-flex align-items-center\" [class.d-none]=\"collapsed\">© {{'Sky Software' | translate}}\r\n <a href=\"#\" class=\"text-secondary mx-2\" (click)=\"termsOpen = true; $event.preventDefault()\">{{'Terms' | translate}}</a>\r\n <a href=\"#\" class=\"text-secondary mx-2\" (click)=\"privacyOpen = true; $event.preventDefault()\">{{'Privacy' | translate}}</a>\r\n </small>\r\n <button (click)=\"toggleSidebar()\" class=\"sidebar-toggle-btn fs-5\">\r\n <fa-icon class=\"sidebar-toggle-icon\" [icon]=\"getToggleIcon()\"></fa-icon>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n<bayan-core-terms-dialog-widget [(visible)]=\"termsOpen\"></bayan-core-terms-dialog-widget>\r\n<bayan-core-privacy-dialog-widget [(visible)]=\"privacyOpen\"></bayan-core-privacy-dialog-widget>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BayanCoreTranslateService","i3","i1","i2","faCalendarDaysRegular","faCalculatorRegular","faMoneyBillRegular","faMoneyBill1Regular"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|