aril 1.0.39 → 1.0.40

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.
Files changed (56) hide show
  1. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +211 -0
  2. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +55 -0
  3. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +129 -0
  4. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +128 -0
  5. package/esm2022/theme/layout/app/history/history.service.mjs +146 -0
  6. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +9 -3
  7. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +100 -8
  8. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +142 -0
  9. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +123 -0
  10. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +42 -0
  11. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +161 -0
  12. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +23 -5
  13. package/esm2022/theme/layout/service/app.layout.service.mjs +13 -1
  14. package/fesm2022/aril-theme-layout.mjs +1197 -75
  15. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  16. package/package.json +70 -69
  17. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +42 -0
  18. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +106 -0
  19. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -0
  20. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +253 -0
  21. package/theme/layout/app/favorite-pages/favorite-pages.service.d.ts +54 -0
  22. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +87 -0
  23. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.d.ts +36 -0
  24. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -0
  25. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -0
  26. package/theme/layout/app/history/history-sidebar.component.d.ts +30 -0
  27. package/theme/layout/app/history/history-sidebar.component.html +88 -0
  28. package/theme/layout/app/history/history-sidebar.component.scss +191 -0
  29. package/theme/layout/app/history/history-sidebar.component.ts +139 -0
  30. package/theme/layout/app/history/history.service.d.ts +36 -0
  31. package/theme/layout/app/history/history.service.ts +182 -0
  32. package/theme/layout/app/layout/app.layout.component.html +3 -0
  33. package/theme/layout/app/layout/app.layout.component.ts +7 -1
  34. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +17 -2
  35. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +107 -135
  36. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +152 -0
  37. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +114 -7
  38. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.d.ts +30 -0
  39. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +46 -0
  40. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +28 -0
  41. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -0
  42. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.d.ts +27 -0
  43. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +76 -0
  44. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +141 -0
  45. package/theme/layout/app/profileSidebar/profile.service.d.ts +67 -0
  46. package/theme/layout/app/profileSidebar/profile.service.ts +89 -0
  47. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +37 -0
  48. package/theme/layout/app/site-map/site-map-sidebar.component.html +118 -0
  49. package/theme/layout/app/site-map/site-map-sidebar.component.scss +189 -0
  50. package/theme/layout/app/site-map/site-map-sidebar.component.ts +189 -0
  51. package/theme/layout/app/topbar/app.topbar.component.d.ts +7 -1
  52. package/theme/layout/app/topbar/app.topbar.component.html +37 -17
  53. package/theme/layout/app/topbar/app.topbar.component.scss +188 -12
  54. package/theme/layout/app/topbar/app.topbar.component.ts +29 -7
  55. package/theme/layout/service/app.layout.service.d.ts +6 -0
  56. package/theme/layout/service/app.layout.service.ts +19 -1
@@ -1 +1 @@
1
- {"version":3,"file":"aril-theme-layout.mjs","sources":["../../projects/aril/theme/layout/service/app.layout.service.ts","../../projects/aril/theme/layout/app/profileSidebar/app.profilesidebar.component.ts","../../projects/aril/theme/layout/app/profileSidebar/app.profilesidebar.component.html","../../projects/aril/theme/layout/service/app.menu.service.ts","../../projects/aril/theme/layout/app/menu/app.menu.component.ts","../../projects/aril/theme/layout/app/menu/app.menu.component.html","../../projects/aril/theme/layout/app/sidebar/app.sidebar.component.ts","../../projects/aril/theme/layout/app/sidebar/app.sidebar.component.html","../../projects/aril/theme/layout/service/breadcrumb.service.ts","../../projects/aril/theme/layout/app/breadcrumb/app.breadcrumb.component.ts","../../projects/aril/theme/layout/app/breadcrumb/app.breadcrumb.component.html","../../projects/aril/theme/layout/service/interfaces/enum.ts","../../projects/aril/theme/layout/app/topbar/app.topbar.component.ts","../../projects/aril/theme/layout/app/topbar/app.topbar.component.html","../../projects/aril/theme/layout/app/chatbot/app.chatbot.component.ts","../../projects/aril/theme/layout/app/chatbot/app.chatbot.component.html","../../projects/aril/theme/layout/app/expandableMenu/expandable-menu.component.ts","../../projects/aril/theme/layout/app/expandableMenu/expandable-menu.component.html","../../projects/aril/theme/layout/app/layout/app.layout.component.ts","../../projects/aril/theme/layout/app/layout/app.layout.component.html","../../projects/aril/theme/layout/app/layout/mfe.layout.component.ts","../../projects/aril/theme/layout/service/selection-group.service.ts","../../projects/aril/theme/layout/aril-theme-layout.ts"],"sourcesContent":["import { Injectable, effect, signal } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nexport type MenuMode = 'static' | 'overlay' | 'horizontal' | 'slim' | 'slim-plus' | 'reveal' | 'drawer' | 'expandable';\r\n\r\nexport type ColorScheme = 'light' | 'dark' | 'dim';\r\n\r\nexport type MenuColorScheme = 'colorScheme' | 'primaryColor' | 'transparent';\r\n\r\nexport interface AppConfig {\r\n\tinputStyle: string;\r\n\tcolorScheme: ColorScheme;\r\n\ttheme: string;\r\n\tripple: boolean;\r\n\tmenuMode: MenuMode;\r\n\tscale: number;\r\n\tmenuTheme: MenuColorScheme;\r\n}\r\n\r\ninterface LayoutState {\r\n\tstaticMenuDesktopInactive: boolean;\r\n\toverlayMenuActive: boolean;\r\n\tprofileSidebarVisible: boolean;\r\n\tconfigSidebarVisible: boolean;\r\n\tstaticMenuMobileActive: boolean;\r\n\tmenuHoverActive: boolean;\r\n\tsidebarActive: boolean;\r\n\tanchored: boolean;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LayoutService {\r\n\t\r\n\t/**\r\n\t * @description\r\n\t * Eğer menuMode expandable ise app.layout.component.html içindeki <app-sidebar />\t \r\n\t * yerine <app-expandable-menu /> aktif edilmeli\r\n\t */\r\n\t\r\n\t_config: AppConfig = {\r\n\t\tripple: false,\r\n\t\tinputStyle: 'outlined',\r\n\t\tmenuMode: 'expandable',\r\n\t\tcolorScheme: 'light',\r\n\t\ttheme: 'indigo',\r\n\t\tscale: 12,\r\n\t\tmenuTheme: 'colorScheme'\r\n\t};\r\n\r\n\t// TODO: Set User Config\r\n\tconfig = signal<AppConfig>(this._config);\r\n\r\n\tstate: LayoutState = {\r\n\t\tstaticMenuDesktopInactive: false,\r\n\t\toverlayMenuActive: false,\r\n\t\tprofileSidebarVisible: false,\r\n\t\tconfigSidebarVisible: false,\r\n\t\tstaticMenuMobileActive: false,\r\n\t\tmenuHoverActive: false,\r\n\t\tsidebarActive: false,\r\n\t\tanchored: false\r\n\t};\r\n\r\n\tprivate configUpdate = new Subject<AppConfig>();\r\n\r\n\tprivate overlayOpen = new Subject<any>();\r\n\r\n\tconfigUpdate$ = this.configUpdate.asObservable();\r\n\r\n\toverlayOpen$ = this.overlayOpen.asObservable();\r\n\r\n\tmfeAppItemClicked = signal<boolean>(false);\r\n\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tconst config = this.config();\r\n\t\t\tif (this.updateStyle(config)) {\r\n\t\t\t\tthis.changeTheme();\r\n\t\t\t}\r\n\t\t\tthis.changeScale(config.scale);\r\n\t\t\tthis.onConfigUpdate();\r\n\t\t});\r\n\t}\r\n\r\n\tupdateStyle(config: AppConfig) {\r\n\t\treturn config.theme !== this._config.theme || config.colorScheme !== this._config.colorScheme;\r\n\t}\r\n\r\n\tonMenuToggle() {\r\n\t\tif (this.isOverlay()) {\r\n\t\t\tthis.state.overlayMenuActive = !this.state.overlayMenuActive;\r\n\r\n\t\t\tif (this.state.overlayMenuActive) {\r\n\t\t\t\tthis.overlayOpen.next(null);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDesktop()) {\r\n\t\t\tthis.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\r\n\t\t} else {\r\n\t\t\tthis.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\r\n\r\n\t\t\tif (this.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.overlayOpen.next(null);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonOverlaySubmenuOpen() {\r\n\t\tthis.overlayOpen.next(null);\r\n\t}\r\n\r\n\tshowProfileSidebar() {\r\n\t\tthis.state.profileSidebarVisible = true;\r\n\t}\r\n\r\n\tshowConfigSidebar() {\r\n\t\tthis.state.configSidebarVisible = true;\r\n\t}\r\n\r\n\tisOverlay() {\r\n\t\treturn this.config().menuMode === 'overlay';\r\n\t}\r\n\r\n\tisDesktop() {\r\n\t\treturn window.innerWidth > 991;\r\n\t}\r\n\r\n\tisSlim() {\r\n\t\treturn this.config().menuMode === 'slim';\r\n\t}\r\n\r\n\tisSlimPlus() {\r\n\t\treturn this.config().menuMode === 'slim-plus';\r\n\t}\r\n\r\n\tisHorizontal() {\r\n\t\treturn this.config().menuMode === 'horizontal';\r\n\t}\r\n\r\n\tisMobile() {\r\n\t\treturn !this.isDesktop();\r\n\t}\r\n\r\n\tonConfigUpdate() {\r\n\t\tthis._config = { ...this.config() };\r\n\t\tthis.configUpdate.next(this.config());\r\n\t}\r\n\r\n\tchangeTheme() {\r\n\t\tconst config = this.config();\r\n\t\tconst themeLink = <HTMLLinkElement>document.getElementById('theme-link');\r\n\t\tconst themeLinkHref = themeLink.getAttribute('href')!;\r\n\t\tconst newHref = themeLinkHref\r\n\t\t\t.split('/')\r\n\t\t\t.map((el) =>\r\n\t\t\t\tel == this._config.theme ? (el = config.theme)\r\n\t\t\t\t: el == `theme-${this._config.colorScheme}` ? (el = `theme-${config.colorScheme}`)\r\n\t\t\t\t: el\r\n\t\t\t)\r\n\t\t\t.join('/');\r\n\r\n\t\tthis.replaceThemeLink(newHref);\r\n\t}\r\n\r\n\treplaceThemeLink(href: string) {\r\n\t\tconst id = 'theme-link';\r\n\t\tlet themeLink = <HTMLLinkElement>document.getElementById(id);\r\n\t\tconst cloneLinkElement = <HTMLLinkElement>themeLink.cloneNode(true);\r\n\r\n\t\tcloneLinkElement.setAttribute('href', href);\r\n\t\tcloneLinkElement.setAttribute('id', id + '-clone');\r\n\r\n\t\tthemeLink.parentNode!.insertBefore(cloneLinkElement, themeLink.nextSibling);\r\n\t\tcloneLinkElement.addEventListener('load', () => {\r\n\t\t\tthemeLink.remove();\r\n\t\t\tcloneLinkElement.setAttribute('id', id);\r\n\t\t});\r\n\t}\r\n\r\n\tchangeScale(value: number) {\r\n\t\tdocument.documentElement.style.fontSize = `${value}px`;\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TagModule } from 'primeng/tag';\r\n\r\n\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { LayoutService } from '../../service/app.layout.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-profilemenu',\r\n\timports: [SidebarModule, TagModule],\r\n\ttemplateUrl: './app.profilesidebar.component.html'\r\n})\r\nexport class AppProfileSidebarComponent {\r\n\tusername: string;\r\n\r\n\tconstructor(public layoutService: LayoutService,private readonly keycloak:KeycloakService) {\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t}\r\n\r\n\tget visible(): boolean {\r\n\t\treturn this.layoutService.state.profileSidebarVisible;\r\n\t}\r\n\r\n\tset visible(_val: boolean) {\r\n\t\tthis.layoutService.state.profileSidebarVisible = _val;\r\n\t}\r\n\r\n\tlogout() {\r\n\t\tthis.keycloak.logout();\r\n\t}\r\n}\r\n","<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-profile-sidebar w-full sm:w-25rem\">\r\n\t<div class=\"flex flex-column mx-auto md:mx-0\">\r\n\t\t<span class=\"mb-2 font-semibold\">Hoşgeldiniz</span>\r\n\t\t<span class=\"text-color-secondary font-medium mb-5\">{{username}}</span>\r\n\r\n\t\t<ul class=\"list-none m-0 p-0\">\r\n\t\t\t<!-- <li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-user text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Profile</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">Lorem ipsum date visale</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-user text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Billing</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">Amet mimin mıollit</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-cog text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Settings</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">Exercitation veniam</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li> -->\r\n\t\t\t<li (click)=\"logout()\">\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-power-off text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\" >\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Çıkış</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n\r\n\t<!-- <div class=\"flex flex-column mt-5 mx-auto md:mx-0\">\r\n\t\t<span class=\"mb-2 font-semibold\">Notifications</span>\r\n\t\t<span class=\"text-color-secondary font-medium mb-5\">You have 3 notifications</span>\r\n\r\n\t\t<ul class=\"list-none m-0 p-0\">\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-comment text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Your post has new comments</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">5 min ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-trash text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Your post has been deleted</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">15min ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<i class=\"pi pi-folder text-xl text-primary\"></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Post has been updated</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">3h ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div> -->\r\n\r\n\t<!-- <div class=\"flex flex-column mt-5 mx-auto md:mx-0\">\r\n\t\t<span class=\"mb-2 font-semibold\">Messages</span>\r\n\t\t<span class=\"text-color-secondary font-medium mb-5\">You have new messages</span>\r\n\r\n\t\t<ul class=\"list-none m-0 p-0\">\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<img src=\"assets/demo/images/avatar/circle/avatar-m-8.png\" alt=\"Avatar\" class=\"w-2rem h-2rem\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">James Robinson</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">10 min ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p-tag value=\"3\" class=\"ml-auto\"></p-tag>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<img src=\"assets/demo/images/avatar/circle/avatar-f-8.png\" alt=\"Avatar\" class=\"w-2rem h-2rem\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Mary Watson</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">15min ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p-tag value=\"1\" class=\"ml-auto\"></p-tag>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a\r\n\t\t\t\t\tclass=\"cursor-pointer flex surface-border mb-3 p-3 align-items-center border-1 surface-border border-round hover:surface-hover transition-colors transition-duration-150\">\r\n\t\t\t\t\t<span>\r\n\t\t\t\t\t\t<img src=\"assets/demo/images/avatar/circle/avatar-f-4.png\" alt=\"Avatar\" class=\"w-2rem h-2rem\" />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<div class=\"ml-3\">\r\n\t\t\t\t\t\t<span class=\"mb-2 font-semibold\">Aisha Webb</span>\r\n\t\t\t\t\t\t<p class=\"text-color-secondary m-0\">3h ago</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p-tag value=\"2\" class=\"ml-auto\"></p-tag>\r\n\t\t\t\t</a>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div> -->\r\n</p-sidebar>\r\n","import { Injectable, computed, signal } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nimport { MenuChangeEvent } from './menuchangeevent';\r\n\r\ninterface MenuConfig {\r\n\titems: PluginMenuItem[];\r\n\tprefix?: string;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AppMenuService {\r\n\tprivate menuSource = new Subject<MenuChangeEvent>();\r\n\tprivate resetSource = new Subject();\r\n\r\n\tpublic menuConfig = signal<MenuConfig>({ items: [], prefix: undefined });\r\n\tpublic activeRootMenuItemKey = signal<string | undefined>(undefined);\r\n\r\n\tpublic menuItems = computed(() => {\r\n\t\tconst config = this.menuConfig();\r\n\t\t// config.items.unshift({ root: true, label: 'Home', icon: 'pi pi-fw pi-home', routerLink: '' });\r\n\r\n\t\tif (config.prefix) return config.items.map((item) => this.addPrefix(item, config.prefix));\r\n\t\telse return config.items;\r\n\t});\r\n\r\n\tmenuSource$ = this.menuSource.asObservable();\r\n\tresetSource$ = this.resetSource.asObservable();\r\n\r\n\taddPrefix(menuItem: PluginMenuItem, appPrefix: string | undefined) {\r\n\t\tif (menuItem.items) {\r\n\t\t\tmenuItem.items = menuItem.items.map((item) => this.addPrefix(item, appPrefix));\r\n\t\t} else {\r\n\t\t\tconst url = menuItem['root'] ? `/${appPrefix}` : `/${appPrefix}/${menuItem.routerLink}`;\r\n\r\n\t\t\tmenuItem.routerLink = url;\r\n\t\t}\r\n\t\treturn menuItem;\r\n\t}\r\n\r\n\tonMenuStateChange(event: MenuChangeEvent) {\r\n\t\tthis.menuSource.next(event);\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.resetSource.next(true);\r\n\t}\r\n}\r\n","import { AnimationEvent, animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { DomHandler } from 'primeng/dom';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: '[app-menuitem]',\r\n\ttemplate: `\r\n\t\t<ng-container>\r\n\t\t\t@if (root) {\r\n\t\t\t\t<div class=\"layout-menuitem-root-text\">\r\n\t\t\t\t\t{{ item.label[activeLang()!] }}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t\t@if (item.items?.length) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[ngClass]=\"{ 'active-root-menu-item': root && key == menuService.activeRootMenuItemKey() }\"\r\n\t\t\t\t\t(click)=\"itemClick($event)\"\r\n\t\t\t\t\t(mouseenter)=\"onMouseEnter()\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\tpRipple\r\n\t\t\t\t\t[pTooltip]=\"item.label[activeLang()!]\"\r\n\t\t\t\t\t[tooltipDisabled]=\"!(isSlim && root && !active)\">\r\n\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\t\t\t\t\t<span class=\"layout-menuitem-text\">{{ item.label[activeLang()!] }}</span>\r\n\t\t\t\t\t@if (item.items) {\r\n\t\t\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\r\n\t\t\t\t\t}\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[ngClass]=\"{ 'active-root-menu-item': root && key == menuService.activeRootMenuItemKey() }\"\r\n\t\t\t\t\t(click)=\"itemClick($event)\"\r\n\t\t\t\t\t(mouseenter)=\"onMouseEnter()\"\r\n\t\t\t\t\t[routerLink]=\"item.routerLink\"\r\n\t\t\t\t\trouterLinkActive=\"active-route\"\r\n\t\t\t\t\t[routerLinkActiveOptions]=\"{\r\n\t\t\t\t\t\tpaths: 'exact',\r\n\t\t\t\t\t\tqueryParams: 'ignored',\r\n\t\t\t\t\t\tmatrixParams: 'ignored',\r\n\t\t\t\t\t\tfragment: 'ignored'\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\tpRipple\r\n\t\t\t\t\t[pTooltip]=\"item.label[activeLang()!]\"\r\n\t\t\t\t\t[tooltipDisabled]=\"!(isSlim && root)\">\r\n\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\r\n\t\t\t\t\t@if (item.label && item.label[activeLang()!]) {\r\n\t\t\t\t\t\t<span class=\"layout-menuitem-text\">{{ item.label[activeLang()!] }}</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (item.items) {\r\n\t\t\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\r\n\t\t\t\t\t}\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\r\n\t\t\t@if (item.items) {\r\n\t\t\t\t<ul #submenu [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\r\n\t\t\t\t\t@for (child of item.items; track child; let i = $index) {\r\n\t\t\t\t\t\t<li app-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\"></li>\r\n\t\t\t\t\t}\r\n\t\t\t\t</ul>\r\n\t\t\t}\r\n\t\t</ng-container>\r\n\t`,\r\n\timports: [NgClass, RouterLink, RouterLinkActive, TooltipModule, RippleModule],\r\n\tanimations: [\r\n\t\ttrigger('children', [\r\n\t\t\tstate(\r\n\t\t\t\t'collapsed',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\theight: '0'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'expanded',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\theight: '*'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'hidden',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\tdisplay: 'none'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'visible',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\tdisplay: 'block'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\ttransition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n\t\t])\r\n\t],\r\n\tstyles: [\r\n\t\t'.active-root-menu-item { background-color: var(--primary-color); & > i,span { color: var(--primary-foreground) !important; } & > span { font-weight: 700; } }'\r\n\t]\r\n})\r\nexport class AppMenuItemComponent implements OnInit, OnDestroy {\r\n\t@Input() item!: PluginMenuItem;\r\n\r\n\t@Input() index!: number;\r\n\r\n\t@Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\r\n\r\n\t@Input() parentKey!: string;\r\n\r\n\t@ViewChild('submenu') submenu!: ElementRef;\r\n\r\n\tactive = false;\r\n\r\n\tmenuSourceSubscription: Subscription;\r\n\r\n\tmenuResetSubscription: Subscription;\r\n\r\n\tkey: string = '';\r\n\r\n\tactiveLang = toSignal(this.translocoService.langChanges$);\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic router: Router,\r\n\t\tpublic menuService: AppMenuService,\r\n\t\tprivate readonly translocoService: TranslocoService\r\n\t) {\r\n\t\tthis.menuSourceSubscription = this.menuService.menuSource$.subscribe((value) => {\r\n\t\t\tPromise.resolve(null).then(() => {\r\n\t\t\t\tif (value.routeEvent) {\r\n\t\t\t\t\tthis.active = value.key === this.key || value.key.startsWith(this.key + '-') ? true : false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\r\n\t\t\t\t\t\tthis.active = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {\r\n\t\t\tthis.active = false;\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((params: any) => {\r\n\t\t\tif (this.isSlimPlus || this.isSlim || this.isHorizontal) {\r\n\t\t\t\tif (!this.layoutService.mfeAppItemClicked()) this.active = false;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.item.routerLink) {\r\n\t\t\t\t\tthis.updateActiveStateFromRoute();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tthis.item.routerLink === params.url ||\r\n\t\t\t\tthis.item.routerLink === params.urlAfterRedirects ||\r\n\t\t\t\t(this.item.routerLink &&\r\n\t\t\t\t\tthis.router.isActive(this.item.routerLink, {\r\n\t\t\t\t\t\tmatrixParams: 'ignored',\r\n\t\t\t\t\t\tqueryParams: 'ignored',\r\n\t\t\t\t\t\tfragment: 'ignored',\r\n\t\t\t\t\t\tpaths: 'subset'\r\n\t\t\t\t\t}))\r\n\t\t\t) {\r\n\t\t\t\tthis.menuService.activeRootMenuItemKey.set(this.key.charAt(0));\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\r\n\t\tif (!(this.isSlimPlus || this.isSlim || this.isHorizontal) && this.item.routerLink) {\r\n\t\t\tthis.updateActiveStateFromRoute();\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewChecked() {\r\n\t\tif (\r\n\t\t\tthis.root &&\r\n\t\t\tthis.active &&\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\tthis.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateActiveStateFromRoute() {\r\n\t\tlet activeRoute = this.router.isActive(this.item.routerLink![0], {\r\n\t\t\tpaths: 'exact',\r\n\t\t\tqueryParams: 'ignored',\r\n\t\t\tmatrixParams: 'ignored',\r\n\t\t\tfragment: 'ignored'\r\n\t\t});\r\n\r\n\t\tif (activeRoute) {\r\n\t\t\tthis.menuService.onMenuStateChange({ key: this.key, routeEvent: true });\r\n\t\t}\r\n\t}\r\n\r\n\tonSubmenuAnimated(event: AnimationEvent) {\r\n\t\tif (\r\n\t\t\tevent.toState === 'visible' &&\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\tconst el = <HTMLUListElement>event.element;\r\n\t\t\tconst elParent = <HTMLUListElement>el.parentElement;\r\n\t\t\tthis.calculatePosition(el, elParent);\r\n\t\t}\r\n\t}\r\n\r\n\tcalculatePosition(overlay: HTMLElement, target: HTMLElement) {\r\n\t\tif (overlay) {\r\n\t\t\tconst { left, top } = target.getBoundingClientRect();\r\n\t\t\tconst [vWidth, vHeight] = [window.innerWidth, window.innerHeight];\r\n\t\t\tconst [oWidth, oHeight] = [overlay.offsetWidth, overlay.offsetHeight];\r\n\t\t\tconst scrollbarWidth = DomHandler.calculateScrollbarWidth();\r\n\t\t\t// reset\r\n\t\t\toverlay.style.top = '';\r\n\t\t\toverlay.style.left = '';\r\n\r\n\t\t\tif (this.layoutService.isHorizontal()) {\r\n\t\t\t\tconst width = left + oWidth + scrollbarWidth;\r\n\t\t\t\toverlay.style.left = vWidth < width ? `${left - (width - vWidth)}px` : `${left}px`;\r\n\t\t\t} else if (this.layoutService.isSlim() || this.layoutService.isSlimPlus()) {\r\n\t\t\t\tconst height = top + oHeight;\r\n\t\t\t\toverlay.style.top = vHeight < height ? `${top - (height - vHeight)}px` : `${top}px`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\titemClick(event: Event) {\r\n\t\t// avoid processing disabled items\r\n\t\tif (this.item.disabled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// navigate with hover\r\n\t\tif ((this.root && this.isSlim) || this.isHorizontal || this.isSlimPlus) {\r\n\t\t\tthis.layoutService.state.menuHoverActive = !this.layoutService.state.menuHoverActive;\r\n\t\t}\r\n\r\n\t\t// execute command\r\n\t\tif (this.item.command) {\r\n\t\t\tthis.item.command({ originalEvent: event, item: this.item as unknown as MenuItem });\r\n\t\t}\r\n\r\n\t\t// toggle active state\r\n\t\tif (this.item.items) {\r\n\t\t\tthis.active = !this.active;\r\n\r\n\t\t\tif (this.root && this.active && (this.isSlim || this.isHorizontal || this.isSlimPlus)) {\r\n\t\t\t\tthis.layoutService.onOverlaySubmenuOpen();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.layoutService.isMobile()) {\r\n\t\t\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isSlim || this.isHorizontal || this.isSlimPlus) {\r\n\t\t\t\tthis.menuService.reset();\r\n\t\t\t\tthis.layoutService.state.menuHoverActive = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.menuService.onMenuStateChange({ key: this.key });\r\n\t}\r\n\r\n\tonMouseEnter() {\r\n\t\t// activate item on hover\r\n\t\tif ((<any>globalThis).isHostMode && !this.item.items?.length) return;\r\n\r\n\t\tif (this.root && (this.isSlim || this.isHorizontal || this.isSlimPlus) && this.layoutService.isDesktop()) {\r\n\t\t\tif (this.layoutService.state.menuHoverActive) {\r\n\t\t\t\tthis.active = true;\r\n\t\t\t\tthis.menuService.onMenuStateChange({ key: this.key });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget submenuAnimation() {\r\n\t\tif (\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\treturn this.active ? 'visible' : 'hidden';\r\n\t\t} else\r\n\t\t\treturn (\r\n\t\t\t\tthis.root ? 'expanded'\r\n\t\t\t\t: this.active ? 'expanded'\r\n\t\t\t\t: 'collapsed'\r\n\t\t\t);\r\n\t}\r\n\r\n\tget isHorizontal() {\r\n\t\treturn this.layoutService.isHorizontal();\r\n\t}\r\n\r\n\tget isSlim() {\r\n\t\treturn this.layoutService.isSlim();\r\n\t}\r\n\r\n\tget isSlimPlus() {\r\n\t\treturn this.layoutService.isSlimPlus();\r\n\t}\r\n\r\n\t@HostBinding('class.active-menuitem')\r\n\tget activeClass() {\r\n\t\treturn this.active && !this.root;\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.menuSourceSubscription) {\r\n\t\t\tthis.menuSourceSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.menuResetSubscription) {\r\n\t\t\tthis.menuResetSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-menu',\r\n\timports: [AppMenuItemComponent],\r\n\ttemplateUrl: './app.menu.component.html'\r\n})\r\nexport class AppMenuComponent {\r\n\tmenuService = inject(AppMenuService);\r\n\tisHostMode = (<any>globalThis).isHostMode;\r\n\thostMenuItems = (<any>globalThis).hostMenuItems;\r\n}\r\n","<ul class=\"layout-menu h-full flex-column\">\r\n\t@for (item of isHostMode ? hostMenuItems() : menuService.menuItems(); track $index) {\r\n\t\t@if (item.separator) {\r\n\t\t\t<li class=\"menu-separator\"></li>\r\n\t\t} @else {\r\n\t\t\t<li\r\n\t\t\t\tapp-menuitem\r\n\t\t\t\t[item]=\"item\"\r\n\t\t\t\t[index]=\"$index\"\r\n\t\t\t\t[root]=\"true\"\r\n\t\t\t\t[class.mt-auto]=\"item.label && item.label['en'] === 'Management'\"></li>\r\n\t\t}\r\n\t}\r\n</ul>\r\n","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuComponent } from '../menu/app.menu.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-sidebar',\r\n\timports: [RouterLink, AppMenuComponent],\r\n\ttemplateUrl: './app.sidebar.component.html'\r\n})\r\nexport class AppSidebarComponent {\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic el: ElementRef\r\n\t) {}\r\n\r\n\ttimeout: any = null;\r\n\r\n\t@ViewChild('menuContainer') menuContainer!: ElementRef;\r\n\r\n\tonMouseEnter() {\r\n\t\tif (!this.layoutService.state.anchored) {\r\n\t\t\tif (this.timeout) {\r\n\t\t\t\tclearTimeout(this.timeout);\r\n\t\t\t\tthis.timeout = null;\r\n\t\t\t}\r\n\t\t\tthis.layoutService.state.sidebarActive = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonMouseLeave() {\r\n\t\tif (!this.layoutService.state.anchored) {\r\n\t\t\tif (!this.timeout) {\r\n\t\t\t\tthis.timeout = setTimeout(() => (this.layoutService.state.sidebarActive = false), 300);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tanchor() {\r\n\t\tthis.layoutService.state.anchored = !this.layoutService.state.anchored;\r\n\t}\r\n}\r\n","<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n\t<div class=\"sidebar-header\">\r\n\t\t<!-- <a [routerLink]=\"['/']\" class=\"app-logo\">\r\n\t\t\t<svg\r\n\t\t\t\twidth=\"21\"\r\n\t\t\t\theight=\"22\"\r\n\t\t\t\tviewBox=\"0 0 21 22\"\r\n\t\t\t\tfill=\"none\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\tclass=\"app-logo-small\">\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M10.4851 0L0 20.9465H3.53702L10.4856 6.07843L17.2944 20.9465H20.9715L10.4851 0Z\"\r\n\t\t\t\t\tfill=\"var(--logo-color)\" />\r\n\t\t\t\t<path d=\"M13.8399 15.793L16.2076 21.0019H11.7681L13.8399 15.793Z\" fill=\"var(--logo-color)\" />\r\n\t\t\t\t<path d=\"M9.04637 21.0019L6.67867 15.793L4.60693 21.0019H9.04637Z\" fill=\"var(--logo-color)\" />\r\n\t\t\t</svg>\r\n\t\t</a> -->\r\n\t\t<button class=\"layout-sidebar-anchor p-link z-2 mb-2\" type=\"button\" (click)=\"anchor()\"></button>\r\n\t</div>\r\n\r\n\t<div #menuContainer class=\"layout-menu-container\">\r\n\t\t<app-menu></app-menu>\r\n\t</div>\r\n</div>\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BreadcrumbService {\r\n\tkeyValues = signal<{ [key: string]: string }>({});\r\n\r\n\tset(key: string, value: string): void {\r\n\t\tthis.keyValues.update((obj) => ({ ...obj, [key]: value }));\r\n\t}\r\n\r\n\tgetValue(key: string): string {\r\n\t\treturn this.keyValues()[key];\r\n\t}\r\n}\r\n","import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, effect } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterLink } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { BreadcrumbService } from '../../service/breadcrumb.service';\r\n\r\ninterface Breadcrumb {\r\n\tlabel: string;\r\n\turl?: string;\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-breadcrumb',\r\n\timports: [NgTemplateOutlet, AsyncPipe, RouterLink, BreadcrumbModule, NgClass],\r\n\ttemplateUrl: './app.breadcrumb.component.html'\r\n})\r\nexport class AppBreadcrumbComponent {\r\n\tprivate readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n\tprivate breadcrumbsSubscription!: Subscription;\r\n\r\n\treadonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\tbreadcrumbs: MenuItem[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate breadcrumbService: BreadcrumbService\r\n\t) {\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\r\n\t\t\tconst root = this.router.routerState.snapshot.root;\r\n\t\t\tconst breadcrumbs: Breadcrumb[] = [];\r\n\r\n\t\t\tthis.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n\t\t\tthis._breadcrumbs$.next(breadcrumbs);\r\n\t\t});\r\n\r\n\t\teffect(() => {\r\n\t\t\tif (this.breadcrumbService.keyValues()) {\r\n\t\t\t\tconst root = this.router.routerState.snapshot.root;\r\n\t\t\t\tconst breadcrumbs: Breadcrumb[] = [];\r\n\r\n\t\t\t\tthis.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n\t\t\t\tthis._breadcrumbs$.next(breadcrumbs);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.breadcrumbsSubscription = this.breadcrumbs$.subscribe((breadcrumbs) => {\r\n\t\t\tthis.breadcrumbs = breadcrumbs.map((breadcrumb) => ({\r\n\t\t\t\tlabel: breadcrumb.label,\r\n\t\t\t\turl: breadcrumb.url\r\n\t\t\t}));\r\n\t\t\tthis.breadcrumbs.unshift({ icon: 'pi pi-home', url: '/' });\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.breadcrumbsSubscription) {\r\n\t\t\tthis.breadcrumbsSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n\t\tconst routeUrl = parentUrl.concat(route.url.map((url) => url.path));\r\n\t\tconst breadcrumb = route.data['breadcrumb'];\r\n\t\tconst parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n\t\tif (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n\t\t\tconst keyRegex = new RegExp('(?<=\\\\{)([^}]+)(?=\\\\})');\r\n\t\t\tconst key = (keyRegex.exec(route.data['breadcrumb']) || [])[0]!;\r\n\t\t\tconst value = this.breadcrumbService.getValue(key);\r\n\r\n\t\t\tif (key && value) {\r\n\t\t\t\tbreadcrumbs.push({\r\n\t\t\t\t\tlabel: (route.data['breadcrumb'] as string).replace(`{${key}}`, value),\r\n\t\t\t\t\turl: '/' + routeUrl.join('/')\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tbreadcrumbs.push({\r\n\t\t\t\t\tlabel: route.data['breadcrumb'],\r\n\t\t\t\t\turl: '/' + routeUrl.join('/')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (route.firstChild) {\r\n\t\t\tthis.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n\t\t}\r\n\t}\r\n}\r\n","<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\" [style]=\"{ border: 'none', background: '#EFF3F8' }\">\r\n\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t<a [routerLink]=\"item.url\">\r\n\t\t\t<span [ngClass]=\"[item.icon ? item.icon : '', 'text-500']\"></span>\r\n\t\t\t<span class=\"text-500\">{{ item.label }}</span>\r\n\t\t</a>\r\n\t</ng-template>\r\n</p-breadcrumb>\r\n","export enum LanguageCode {\r\n\tTR = 'tr',\r\n\tEN = 'en'\r\n}","import { UpperCasePipe } from '@angular/common';\r\nimport { Component, ElementRef, ViewChild, inject, signal } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { MenubarModule } from 'primeng/menubar';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { PubSubService } from 'aril/util/pub-sub';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppBreadcrumbComponent } from '../breadcrumb/app.breadcrumb.component';\r\nimport { LanguageCode } from '../../service/interfaces/enum';\r\nimport { Language, LanguageChangeEvent } from '../../service/interfaces/interfaces';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-topbar',\r\n\timports: [\r\n\t\tButtonModule,\r\n\t\tAppBreadcrumbComponent,\r\n\t\tUpperCasePipe,\r\n\t\tFormsModule,\r\n\t\tDividerModule,\r\n\t\tBadgeModule,\r\n\t\tMenubarModule,\r\n\t\tDropdownModule\r\n\t],\r\n\ttemplateUrl: './app.topbar.component.html',\r\n\tstyleUrls: ['./app.topbar.component.scss']\r\n})\r\nexport class AppTopbarComponent {\r\n\t@ViewChild('menubutton') menuButton!: ElementRef;\r\n\r\n\tusername!: string;\r\n\tlayoutService = inject(LayoutService);\r\n\tsearch: string = '';\r\n\r\n\tfilePath = signal<string>('');\r\n\r\n\tcurrentLang: LanguageCode = (localStorage.getItem('lang') as LanguageCode) || LanguageCode.TR;\r\n\r\n\tlanguages: Language[] = [\r\n\t\t{ name: 'TR', code: LanguageCode.TR, flag: 'assets/images/flags/tr.svg' },\r\n\t\t{ name: 'EN', code: LanguageCode.EN, flag: 'assets/images/flags/gb.svg' }\r\n\t];\r\n\r\n\tconstructor(\r\n\t\tprivate\treadonly translocoService: TranslocoService,\r\n\t\tprivate\treadonly pubSubService: PubSubService,\r\n\t\tprivate readonly keycloak:KeycloakService\r\n\t) {\r\n\t\tthis.translocoService.setActiveLang(this.currentLang);\r\n\t\tthis.publishLanguageChange(this.currentLang);\r\n\r\n\t\tif ((<any>globalThis).activeHost) {\r\n\t\t\tswitch ((<any>globalThis).activeHost) {\r\n\t\t\t\tcase Apps.YEAP:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.THOR:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/thor-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.LENA:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/lena-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tswitch ((<any>globalThis).activeMF) {\r\n\t\t\t\tcase Apps.HES:\r\n\t\t\t\tcase Apps.CTS:\r\n\t\t\t\tcase Apps.SIS:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/lena-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.CRM:\r\n\t\t\t\tcase Apps.BILLING:\r\n\t\t\t\tcase Apps.PAYMENT:\r\n\t\t\t\tcase Apps.WDM:\r\n\t\t\t\tcase Apps.MNG:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/thor-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.MW:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t}\r\n\r\n\tonMenuButtonClick(): void {\r\n\t\tthis.layoutService.onMenuToggle();\r\n\t}\r\n\r\n\tonProfileButtonClick(): void {\r\n\t\tthis.layoutService.showProfileSidebar();\r\n\t}\r\n\r\n\tonConfigButtonClick(): void {\r\n\t\tthis.layoutService.showConfigSidebar();\r\n\t}\r\n\r\n\tonLanguageChange(): void {\r\n\t\tlocalStorage.setItem('lang', this.currentLang);\r\n\r\n\t\tthis.translocoService.setActiveLang(this.currentLang);\r\n\r\n\t\tthis.publishLanguageChange(this.currentLang);\r\n\t}\r\n\r\n\tprivate publishLanguageChange(language: LanguageCode): void {\r\n\t\tconst event: LanguageChangeEvent = {\r\n\t\t\tname: 'languageChanged',\r\n\t\t\tdata: {\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcustom: {\r\n\t\t\t\t\tlanguage\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.pubSubService.publish(event);\r\n\t}\r\n\r\n\tgetFlagPath(lang: LanguageCode): string {\r\n\t\tswitch (lang) {\r\n\t\t\tcase LanguageCode.TR:\r\n\t\t\t\treturn 'assets/images/flags/tr.svg';\r\n\t\t\tcase LanguageCode.EN:\r\n\t\t\t\treturn 'assets/images/flags/gb.svg';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'assets/images/flags/tr.svg';\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"mr-3\" alt=\"yeap\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" style=\"width: 50rem\">\r\n\t\t<span class=\"p-input-icon-left\" style=\"width: 100%\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\tplaceholder=\"Genel Arama\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element sm:w-full\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-sitemap\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-history\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-button icon=\"pi pi-heart\" severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li>\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"pi pi-bell\" severity=\"info\" pBadge [value]=\"0\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { IconFieldModule } from 'primeng/iconfield';\r\nimport { InputIconModule } from 'primeng/inputicon';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\n\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { TextAreaComponent } from 'aril/ui/textArea';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-chatbot',\r\n\timports: [\r\n\t\tButtonModule,\r\n\t\tSidebarModule,\r\n\t\tRadioButtonModule,\r\n\t\tFormsModule,\r\n\t\tInputIconModule,\r\n\t\tIconFieldModule,\r\n\t\tInputTextModule,\r\n\t\tMessagesModule,\r\n\t\tTextAreaComponent,\r\n\t\tRatingModule,\r\n\t\tButtonComponent\r\n\t],\r\n\ttemplateUrl: './app.chatbot.component.html',\r\n\tstyleUrl: './app.chatbot.component.scss'\r\n})\r\nexport class AppChatbotComponent {\r\n\tchatbotVisible = false;\r\n\tprojectName!: string;\r\n\tquestionQuery!: string;\r\n\tqueryList: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\terror!: string;\r\n\thistoryList: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\tisTyping = false;\r\n\ttypingInterval: any;\r\n\ttypingText = '.';\r\n\tusername: string;\r\n\tvisibleGiveFeedback = false;\r\n\tfeedbackComments = '';\r\n\tfeedbackRating = 0;\r\n\tfeedBackResult!: string;\r\n\tbaseUrl = API_CONFIGS.aiApi;\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tprivate readonly keycloak: KeycloakService\r\n\t) {\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t}\r\n\r\n\tsendRequest() {\r\n\t\tthis.fetchData();\r\n\t}\r\n\r\n\tasync getHistory() {\r\n\t\ttry {\r\n\t\t\tawait this.http\r\n\t\t\t\t.get<any[]>(this.baseUrl + 'history?project=CRM' + '&user_name=' + this.username)\r\n\t\t\t\t.subscribe((response) => {\r\n\t\t\t\t\tthis.historyList.next(response);\r\n\t\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t}\r\n\r\n\tasync fetchData() {\r\n\t\tthis.startTyping();\r\n\t\tconst request = {\r\n\t\t\tproject: 'CRM',\r\n\t\t\tuser_name: this.username,\r\n\t\t\tquery: this.questionQuery\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\tconst result = await firstValueFrom(this.http.post<any>(this.baseUrl + 'chat', request));\r\n\t\t\tif (result && result.answer) {\r\n\t\t\t\tthis.queryList.next([...this.queryList.value, { question: this.questionQuery, answer: result.answer }]);\r\n\t\t\t}\r\n\t\t} catch (error: any) {\r\n\t\t\tthis.error = error;\r\n\t\t} finally {\r\n\t\t\tthis.questionQuery = '';\r\n\t\t\tthis.stopTyping();\r\n\t\t}\r\n\t}\r\n\tonVisible() {\r\n\t\tthis.getHistory();\r\n\t\tthis.chatbotVisible = true;\r\n\t}\r\n\r\n\tstartTyping() {\r\n\t\tthis.isTyping = true;\r\n\t\tlet dots = 0;\r\n\r\n\t\tthis.typingInterval = setInterval(() => {\r\n\t\t\tdots = (dots + 1) % 4;\r\n\t\t\tthis.typingText = '.'.repeat(dots);\r\n\t\t}, 300);\r\n\t}\r\n\r\n\tstopTyping() {\r\n\t\tclearInterval(this.typingInterval);\r\n\t\tthis.isTyping = false;\r\n\t}\r\n\r\n\tgiveFeedback() {\r\n\t\tthis.visibleGiveFeedback = true;\r\n\t}\r\n\tasync sendFeedback() {\r\n\t\tconst request = {\r\n\t\t\tproject: 'CRM',\r\n\t\t\tuser_name: this.username,\r\n\t\t\trating: this.feedbackRating,\r\n\t\t\tcomments: this.feedbackComments\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\tconst result = await firstValueFrom(this.http.post<any>(this.baseUrl + 'feedback', request));\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.feedBackResult = result.message;\r\n\t\t\t}\r\n\t\t} catch (error: any) {\r\n\t\t\tthis.error = error;\r\n\t\t} finally {\r\n\t\t\tthis.visibleGiveFeedback = false;\r\n\t\t\tthis.feedbackComments = '';\r\n\t\t\tthis.feedbackRating = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tcancelFeedback() {\r\n\t\tthis.visibleGiveFeedback = false;\r\n\t\tthis.feedbackComments = '';\r\n\t\tthis.feedbackRating = 0;\r\n\t}\r\n}\r\n","<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-sidebar-header\">\r\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\r\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\">\r\n\t\t<p-messages severity=\"info\">\r\n\t\t\t<ng-template pTemplate>\r\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\r\n\t\t\t\t<div class=\"ml-2\">Sorularının cevabına buradan ulaşabilirsin.</div>\r\n\t\t\t</ng-template>\r\n\t\t</p-messages>\r\n\t</div>\r\n\r\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 85%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 85%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (visibleGiveFeedback) {\r\n\t\t\t\t<div class=\"flex mb-2\">\r\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan gönderebilirsiniz.</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text-lg\">\r\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n <aril-button label=\"Gönder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t\t<aril-button label=\"Vazgeç\" color=\"danger\" icon=\"TIMES\" [outlined]=\"true\" (clickEvent)=\"cancelFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t<aril-button label=\"Gönder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\r\n\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { Subscription, filter } from 'rxjs';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\nimport { TranslateJsonPipe } from 'aril/util/pipes';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-expandable-menu',\r\n\timports: [RouterLink, NgClass, TooltipModule],\r\n\ttemplateUrl: 'expandable-menu.component.html',\r\n\tproviders: [TranslateJsonPipe]\r\n})\r\nexport class ExpandableMenuComponent implements OnInit, OnDestroy {\r\n\r\n\tactiveLang = toSignal(this.translocoService.langChanges$, { initialValue: 'tr' });\r\n\toverlayMenuOpenSubscription: Subscription | null = null;\r\n\trouterSubscription: Subscription | null = null;\r\n\tusername = this.keycloak.getUsername().charAt(0).toUpperCase();\r\n\tsidebarIsLocked = false;\r\n\r\n isHostMode = (<any>globalThis).isHostMode;\r\n\thostMenuItems = (<any>globalThis).hostMenuItems;\r\n\tcachedMenuItems: PluginMenuItem[] = [];\r\n\r\n\r\n\t// Track selected main menu item\r\n\tselectedMainItem: number | null = null;\r\n\tselectedMainMenuItem: PluginMenuItem | null = null;\r\n\tsecondarySidebarExpanded = false;\r\n\r\n\ttooltipText = {\r\n\t\ttoggleButton: {\r\n\t\t\texpanded: {\r\n\t\t\t\ttr: 'Menüyü Gizle',\r\n\t\t\t\ten: 'Hide Menu'\r\n\t\t\t},\r\n\t\t\tcollapsed: {\r\n\t\t\t\ttr: 'Menüyü Göster',\r\n\t\t\t\ten: 'Show Menu'\r\n\t\t\t}\r\n\t\t},\r\n\t\tlockButton: {\r\n\t\t\tlocked: {\r\n\t\t\t\ttr: 'Otomatik Kapanmayı Aç',\r\n\t\t\t\ten: 'Enable Auto-Close'\r\n\t\t\t},\r\n\t\t\tunlocked: {\r\n\t\t\t\ttr: 'Menüyü Kilitle',\r\n\t\t\t\ten: 'Lock Menu'\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate readonly MAX_LENGTH = {\r\n\t\tmain: 8, \r\n\t\tsecondary: 20,\r\n\t\ttertiary: 20 \r\n\t};\r\n\r\n\tconstructor(\r\n\t\tprivate translateJsonPipe: TranslateJsonPipe,\r\n\t\tprivate menuService: AppMenuService,\r\n\t\tprivate router: Router,\r\n\t\tprivate keycloak: KeycloakService,\r\n\t\tprivate translocoService: TranslocoService,\r\n\t\tprivate layoutService: LayoutService\r\n\t) {}\r\n\r\n\t// Check if text is truncated and needs tooltip\r\n\tisTextTruncated(\r\n\t\tlabel: any,\r\n\t\tlang: string | null,\r\n\t\tmenuType: 'main' | 'secondary' | 'tertiary' | 'nested' = 'secondary'\r\n\t): boolean {\r\n\t\tif (!label || !lang || !label[lang]) return false;\r\n\r\n\t\tconst text = label[lang];\r\n\t\tconst textLength = text.length;\r\n\t\tconst maxLength = menuType === 'nested' ? this.MAX_LENGTH.tertiary : this.MAX_LENGTH[menuType];\r\n\t\treturn textLength > maxLength;\r\n\t}\r\n\r\n\t// Recursively check if a menu item or its children match the current route\r\n\tisActiveRoute(menuItem: PluginMenuItem): boolean {\r\n\t\tif (!menuItem || !menuItem.routerLink) return false;\r\n\r\n\t\t// Get current URL path after the hash\r\n\t\tconst currentUrl = this.router.url;\r\n\t\tconst hashUrl = currentUrl.indexOf('#') > -1 ? currentUrl.split('#')[1] : currentUrl;\r\n\r\n\t\t// Check for exact match first\r\n\t\tif (hashUrl === menuItem.routerLink || hashUrl === '/' + menuItem.routerLink) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check if current URL starts with the routerLink (handles child routes)\r\n\t\tif (\r\n\t\t\tmenuItem.routerLink !== '/' &&\r\n\t\t\t(hashUrl.startsWith(menuItem.routerLink + '/') || hashUrl.startsWith('/' + menuItem.routerLink + '/'))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check child items if they exist\r\n\t\tif (menuItem.items && menuItem.items.length > 0) {\r\n\t\t\treturn menuItem.items.some((childItem) => this.isActiveRoute(childItem));\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t\tthis.updateMenuItems();\r\n\t\tthis.initializeMenu();\r\n\r\n\t\tthis.loadSidebarLockState();\r\n\t\tthis.updateActiveMenuFromCurrentRoute();\r\n\r\n\t\t// Subscribe to route changes to handle secondary sidebar closing\r\n\t\tthis.routerSubscription = this.router.events\r\n\t\t\t.pipe(filter((event) => event instanceof NavigationEnd))\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\t// Update active menu based on the new route\r\n\t\t\t\tthis.updateActiveMenuFromCurrentRoute();\r\n\r\n\t\t\t\t// Close secondary sidebar on navigation if not locked\r\n\t\t\t\tif (!this.sidebarIsLocked) {\r\n\t\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t// Subscribe to overlay menu open notifications\r\n\t\tthis.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\r\n\t\t\tif (this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.overlayMenuOpenSubscription) {\r\n\t\t\tthis.overlayMenuOpenSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.routerSubscription) {\r\n\t\t\tthis.routerSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tloadSidebarLockState(): void {\r\n\t\tconst storedState = localStorage.getItem('sidebarIsLocked');\r\n\t\tthis.sidebarIsLocked = storedState === 'true';\r\n\t}\r\n\r\n\tsaveSidebarLockState(): void {\r\n\t\tlocalStorage.setItem('sidebarIsLocked', this.sidebarIsLocked.toString());\r\n\t}\r\n\r\n\ttoggleSidebarLock(): void {\r\n\t\tthis.sidebarIsLocked = !this.sidebarIsLocked;\r\n\t\tthis.saveSidebarLockState();\r\n\t}\r\n\r\n\t// Initialize the menu with proper active state\r\n\tinitializeMenu() {\r\n\t\tthis.selectedMainItem = null;\r\n\t\tthis.selectedMainMenuItem = null;\r\n\t\tthis.secondarySidebarExpanded = false;\r\n\t\tthis.updateMenuItems();\r\n\t}\r\n\r\n\tupdateMenuFromRootKey(index: number): void {\r\n\t\tthis.updateMenuItems(); \r\n\t\tconst menuItems = this.getMenuItems();\r\n\r\n\t\tif (index >= 0 && index < menuItems.length) {\r\n\t\t\tconst item = menuItems[index];\r\n\t\t\tif (!item.separator) {\r\n\t\t\t\tthis.selectedMainItem = index;\r\n\t\t\t\tthis.selectedMainMenuItem = item;\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tupdateMenuItems(): void {\r\n\t\tthis.cachedMenuItems = this.isHostMode ? this.hostMenuItems() : this.menuService.menuItems();\r\n\t}\r\n\r\n\tgetMenuItems(): PluginMenuItem[] {\r\n\t\treturn this.cachedMenuItems;\r\n\t}\r\n\r\n\tselectMainItem(index: number, item: PluginMenuItem): void {\r\n\t\tif (item.routerLink && (!item.items || item.items.length === 0)) {\r\n\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\tthis.selectedMainItem = index;\r\n\t\t\tthis.selectedMainMenuItem = item;\r\n\t\t\tthis.router.navigate([item.routerLink]);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Handle regular menu items with submenu\r\n\t\tif (this.selectedMainItem === index) {\r\n\t\t\tthis.secondarySidebarExpanded = !this.secondarySidebarExpanded;\r\n\t\t} else {\r\n\t\t\tthis.selectedMainItem = index;\r\n\t\t\tthis.selectedMainMenuItem = item;\r\n\r\n if (item.items && item.items.length > 0) {\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// For mobile devices, ensure the menu stays open\r\n\t\tif (this.isMobile()) {\r\n\t\t\tthis.layoutService.state.staticMenuMobileActive = true;\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleSecondarySidebar(): void {\r\n\t\tthis.secondarySidebarExpanded = !this.secondarySidebarExpanded;\r\n\t}\r\n\r\n\tisMobile(): boolean {\r\n\t\treturn this.layoutService.isMobile();\r\n\t}\r\n\r\n\t// Listen for resize events to handle responsive behavior for mobile\r\n\t@HostListener('window:resize')\r\n\tonResize() {\r\n\t\tif (!this.isMobile() && this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\t}\r\n\t}\r\n\r\n\tupdateActiveMenuFromCurrentRoute(): void {\r\n\t\tconst menuItems = this.getMenuItems();\r\n\r\n\t\tfor (let i = 0; i < menuItems.length; i++) {\r\n\t\t\tconst menuItem = menuItems[i];\r\n\t\t\tif (this.isActiveRoute(menuItem)) {\r\n\t\t\t\tthis.selectedMainItem = i;\r\n\t\t\t\tthis.selectedMainMenuItem = menuItem;\r\n\r\n\t\t\t\tif (menuItem.items && menuItem.items.length > 0) {\r\n\t\t\t\t\tif (!this.isMobile() && !this.secondarySidebarExpanded && !this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisHaveSelectedChildItem(item: PluginMenuItem): boolean {\r\n\t\tif (!item || !item.items || item.items.length === 0) return false;\r\n\r\n\t\tfor (const child of item.items) {\r\n\t\t\tif (this.isActiveRoute(child)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n if (child.items && child.items.length > 0) {\r\n\t\t\t\tif (this.isHaveSelectedChildItem(child)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetLocalText(text: any): string {\r\n\t\treturn this.translateJsonPipe.transform(text);\r\n\t}\r\n}\r\n","<div class=\"new-layout-sidebar\">\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\">\r\n\t\t<div class=\"main-sidebar-header\">\r\n\t\t\t<div class=\"user-avatar\">\r\n\t\t\t\t<span>{{ username }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"main-sidebar-content\">\r\n\t\t\t<ul class=\"main-menu\">\r\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\r\n\t\t\t\t\t@if(!item.separator){\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\r\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\r\n\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(item.label, activeLang(), 'main') ? (item.label && activeLang() ? item.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t<div class=\"main-menu-item\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\r\n\t\t\t\t\t\t\t<small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- Toggle button at the bottom of main sidebar -->\r\n\t\t<div class=\"main-sidebar-footer\">\r\n\t\t\t<button class=\"sidebar-toggle-button\" (click)=\"toggleSecondarySidebar()\" \r\n\t\t\t\t[pTooltip]=\"!isMobile() ? (secondarySidebarExpanded ? getLocalText(tooltipText.toggleButton.expanded) : getLocalText(tooltipText.toggleButton.collapsed)) : ''\" \r\n\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t<i class=\"pi\" [ngClass]=\"secondarySidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': secondarySidebarExpanded}\">\r\n\t\t<!-- Content container wrapper to prevent jumps during transitions -->\r\n\t\t<div class=\"secondary-content-wrapper\">\r\n\t\t\t<!-- Secondary sidebar header -->\r\n\t\t\t<div class=\"secondary-sidebar-header\">\r\n\t\t\t\t<div class=\"secondary-header-content\">\r\n\t\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t\t<h3 class=\"section-title\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"selectedMainMenuItem.icon\" class=\"section-icon\"></i>\r\n\t\t\t\t\t\t\t<span>{{ selectedMainMenuItem.label && activeLang() ? selectedMainMenuItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<button class=\"sidebar-lock-button\" (click)=\"toggleSidebarLock()\" \r\n\t\t\t\t\t\t[pTooltip]=\"sidebarIsLocked ? getLocalText(tooltipText.lockButton.locked) : getLocalText(tooltipText.lockButton.unlocked)\" \r\n\t\t\t\t\t\ttooltipPosition=\"left\">\r\n\t\t\t\t\t\t<i class=\"pi\" [ngClass]=\"sidebarIsLocked ? 'pi-lock' : 'pi-lock-open'\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<!-- Secondary sidebar content -->\r\n\t\t\t<div class=\"secondary-sidebar-content\">\r\n\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t<ul class=\"secondary-menu\">\r\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\r\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\r\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\r\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\r\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(childItem.label, activeLang(), 'tertiary') ? (childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tertiary-label\">{{ childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Always render deeper levels if they exist, also visible by default -->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@for(nestedItem of childItem.items; track nestedItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(nestedItem.label, activeLang(), 'nested') ? (nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"nested-label\">{{ nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t </ul>\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n</div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, OnDestroy, Renderer2, ViewChild } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterOutlet } from '@angular/router';\r\n\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ToastModule } from 'primeng/toast';\r\n\r\nimport { Subscription, filter } from 'rxjs';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\nimport { AppProfileSidebarComponent } from '../profileSidebar/app.profilesidebar.component';\r\nimport { AppSidebarComponent } from '../sidebar/app.sidebar.component';\r\nimport { AppTopbarComponent } from '../topbar/app.topbar.component';\r\nimport { AppChatbotComponent } from '../chatbot/app.chatbot.component';\r\nimport { ExpandableMenuComponent } from '../expandableMenu/expandable-menu.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-layout',\r\n\timports: [\r\n\t\tNgClass,\r\n\t\tRouterOutlet,\r\n\t\tConfirmDialogModule,\r\n\t\tConfirmPopupModule,\r\n\t\tDialogModule,\r\n\t\tMessagesModule,\r\n\t\tToastModule,\r\n\t\tAppTopbarComponent,\r\n\t\tAppProfileSidebarComponent,\r\n\t\tAppChatbotComponent,\r\n\t\tAppSidebarComponent,\r\n\t\tExpandableMenuComponent\r\n\t],\r\n\ttemplateUrl: './app.layout.component.html'\r\n})\r\nexport class AppLayoutComponent implements OnDestroy {\r\n\toverlayMenuOpenSubscription: Subscription;\r\n\r\n\tmenuOutsideClickListener: any;\r\n\r\n\tmenuScrollListener: any;\r\n\r\n\tglobalThis: any = globalThis;\r\n\r\n\t@ViewChild(AppSidebarComponent) appSidebar!: AppSidebarComponent;\r\n\r\n\t@ViewChild(ExpandableMenuComponent) expandableMenuComponent!: ExpandableMenuComponent;\r\n\r\n\t@ViewChild(AppTopbarComponent) appTopbar!: AppTopbarComponent;\r\n\r\n\tconstructor(\r\n\t\tprivate menuService: AppMenuService,\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic renderer: Renderer2,\r\n\t\tpublic router: Router\r\n\t) {\r\n\t\tthis.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\r\n\t\t\tif (!this.menuOutsideClickListener) {\r\n\t\t\t\tthis.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {\r\n\t\t\t\t\tconst isOutsideClicked = !(\r\n\t\t\t\t\t\tthis.appSidebar.el.nativeElement.isSameNode(event.target) ||\r\n\t\t\t\t\t\tthis.appSidebar.el.nativeElement.contains(event.target) ||\r\n\t\t\t\t\t\tthis.appTopbar.menuButton.nativeElement.isSameNode(event.target) ||\r\n\t\t\t\t\t\tthis.appTopbar.menuButton.nativeElement.contains(event.target)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (isOutsideClicked) {\r\n\t\t\t\t\t\tthis.hideMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) &&\r\n\t\t\t\t!this.menuScrollListener\r\n\t\t\t) {\r\n\t\t\t\tthis.menuScrollListener = this.renderer.listen(\r\n\t\t\t\t\tthis.appSidebar.menuContainer.nativeElement,\r\n\t\t\t\t\t'scroll',\r\n\t\t\t\t\t(event) => {\r\n\t\t\t\t\t\tif (this.layoutService.isDesktop()) {\r\n\t\t\t\t\t\t\tthis.hideMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.blockBodyScroll();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\r\n\t\t\tif (!this.layoutService.mfeAppItemClicked()) this.hideMenu();\r\n\t\t});\r\n\t}\r\n\r\n\tblockBodyScroll(): void {\r\n\t\tif (document.body.classList) {\r\n\t\t\tdocument.body.classList.add('blocked-scroll');\r\n\t\t} else {\r\n\t\t\tdocument.body.className += ' blocked-scroll';\r\n\t\t}\r\n\t}\r\n\r\n\tunblockBodyScroll(): void {\r\n\t\tif (document.body.classList) {\r\n\t\t\tdocument.body.classList.remove('blocked-scroll');\r\n\t\t} else {\r\n\t\t\tdocument.body.className = document.body.className.replace(\r\n\t\t\t\tnew RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'),\r\n\t\t\t\t' '\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\thideMenu() {\r\n\t\tthis.layoutService.state.overlayMenuActive = false;\r\n\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\tthis.layoutService.state.menuHoverActive = false;\r\n\t\tthis.menuService.reset();\r\n\r\n\t\tif (this.menuOutsideClickListener) {\r\n\t\t\tthis.menuOutsideClickListener();\r\n\t\t\tthis.menuOutsideClickListener = null;\r\n\t\t}\r\n\r\n\t\tif (this.menuScrollListener) {\r\n\t\t\tthis.menuScrollListener();\r\n\t\t\tthis.menuScrollListener = null;\r\n\t\t}\r\n\r\n\t\tthis.unblockBodyScroll();\r\n\t}\r\n\r\n\tget containerClass() {\r\n\t\treturn {\r\n\t\t\t'layout-light': this.layoutService.config().colorScheme === 'light',\r\n\t\t\t'layout-dim': this.layoutService.config().colorScheme === 'dim',\r\n\t\t\t'layout-dark': this.layoutService.config().colorScheme === 'dark',\r\n\t\t\t'layout-colorscheme-menu': this.layoutService.config().menuTheme === 'colorScheme',\r\n\t\t\t'layout-primarycolor-menu': this.layoutService.config().menuTheme === 'primaryColor',\r\n\t\t\t'layout-transparent-menu': this.layoutService.config().menuTheme === 'transparent',\r\n\t\t\t'layout-overlay': this.layoutService.config().menuMode === 'overlay',\r\n\t\t\t'layout-static': this.layoutService.config().menuMode === 'static',\r\n\t\t\t'layout-slim': this.layoutService.config().menuMode === 'slim',\r\n\t\t\t'layout-slim-plus': this.layoutService.config().menuMode === 'slim-plus',\r\n\t\t\t'layout-horizontal': this.layoutService.config().menuMode === 'horizontal',\r\n\t\t\t'layout-reveal': this.layoutService.config().menuMode === 'reveal',\r\n\t\t\t'layout-drawer': this.layoutService.config().menuMode === 'drawer',\r\n\t\t\t'layout-static-inactive':\r\n\t\t\t\tthis.layoutService.state.staticMenuDesktopInactive && this.layoutService.config().menuMode === 'static',\r\n\t\t\t'layout-overlay-active': this.layoutService.state.overlayMenuActive,\r\n\t\t\t'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,\r\n\t\t\t'p-input-filled': this.layoutService.config().inputStyle === 'filled',\r\n\t\t\t'p-ripple-disabled': !this.layoutService.config().ripple,\r\n\t\t\t'layout-sidebar-active': this.layoutService.state.sidebarActive,\r\n\t\t\t'layout-sidebar-anchored': this.layoutService.state.anchored,\r\n\t\t\t// if expandableMenuComponent is present, add the class 'new-sidebar-layout'\r\n\t\t\t'new-sidebar-layout': this.layoutService.config().menuMode === 'expandable',\r\n\t\t\t'secondary-expanded': this.expandableMenuComponent?.secondarySidebarExpanded\r\n\t\t};\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.overlayMenuOpenSubscription) {\r\n\t\t\tthis.overlayMenuOpenSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.menuOutsideClickListener) {\r\n\t\t\tthis.menuOutsideClickListener();\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t\t<app-expandable-menu />\r\n\t\t<!-- <app-sidebar />\t -->\r\n\t\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport {\r\n\tNavigationCancel,\r\n\tNavigationEnd,\r\n\tNavigationError,\r\n\tNavigationSkipped,\r\n\tRouter,\r\n\tRouterOutlet\r\n} from '@angular/router';\r\n\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ToastModule } from 'primeng/toast';\r\n\r\nimport { map } from 'rxjs';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'mfe-layout',\r\n\ttemplate: `\r\n\t\t<!-- <app-sub-menu hidden></app-sub-menu> -->\r\n\r\n\t\t@if (!loading()) {\r\n\t\t\t<router-outlet />\r\n\t\t}\r\n\r\n\t\t<p-toast key=\"toast-root\"></p-toast>\r\n\t\t<p-dialog key=\"dialog-root\"></p-dialog>\r\n\t\t<p-messages key=\"messages-root\"></p-messages>\r\n\t\t<p-confirmPopup key=\"confirmPopup-root\"></p-confirmPopup>\r\n\t\t<p-confirmDialog key=\"confirmDialog-root\"></p-confirmDialog>\r\n\t`,\r\n\timports: [RouterOutlet, ConfirmDialogModule, ConfirmPopupModule, DialogModule, MessagesModule, ToastModule]\r\n})\r\nexport class MFELayoutComponent implements AfterViewInit {\r\n\tloading = toSignal(\r\n\t\tthis.router.events.pipe(\r\n\t\t\tmap((event) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tevent instanceof NavigationEnd ||\r\n\t\t\t\t\tevent instanceof NavigationCancel ||\r\n\t\t\t\t\tevent instanceof NavigationError ||\r\n\t\t\t\t\tevent instanceof NavigationSkipped\r\n\t\t\t\t)\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t),\r\n\t\t{ initialValue: true }\r\n\t);\r\n\r\n\tconstructor(private router: Router) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\t// const appMenu = document.querySelector('app-menu>ul>li>ul#' + (<any>globalThis).activeMF);\r\n\t\t// const subMenuId = 'app-sub-menu-' + (<any>globalThis).activeMF;\r\n\t\t// const subMenu = document.getElementById(subMenuId) as HTMLElement;\r\n\t\t// appMenu?.replaceChildren(...Array.from(subMenu.children));\r\n\t\t// document.querySelector(subMenuId)?.remove();\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, effect, signal } from '@angular/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\n\r\nimport { SelectionGroupDTO, SelectionRequestDTO } from './interfaces/interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SelectionGroupService {\r\n\tselectionGroups = signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\r\n\tprivate loading = new Map<string, boolean>();\r\n\tprivate loaded = new Map<string, boolean>();\r\n\r\n\tconstructor(private http: HttpClient) {\r\n\t\tthis.loadStatesFromLocalStorage();\r\n\r\n\t\teffect(() => {\r\n\t\t\tconst encodedData = btoa(encodeURI(JSON.stringify(this.selectionGroups())));\r\n\t\t\tlocalStorage.setItem('selection-groups', encodedData);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate async loadStatesFromLocalStorage() {\r\n\t\tconst selectionGroups = localStorage.getItem('selection-groups');\r\n\r\n\t\tif (selectionGroups) {\r\n\t\t\ttry {\r\n\t\t\t\tconst decodedData = decodeURI(atob(selectionGroups));\r\n\t\t\t\tthis.selectionGroups.set(JSON.parse(decodedData));\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfetchEnum(groupName: string, parentSelectionKey: string = 'ALL') {\r\n\t\tconst key = groupName + '~' + parentSelectionKey;\r\n\r\n\t\tif (this.loaded.get(key) || this.loading.get(key)) return;\r\n\r\n\t\tconst payload: SelectionRequestDTO = {\r\n\t\t\tgroupName,\r\n\t\t\tparentSelectionKey\r\n\t\t};\r\n\r\n\t\tthis.loading.set(key, true);\r\n\t\tthis.loaded.set(key, false);\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe((selectionGroup) => {\r\n\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\tthis.loaded.set(key, true);\r\n\r\n\t\t\t\tthis.selectionGroups.update((groups) => ({\r\n\t\t\t\t\t...groups,\r\n\t\t\t\t\t[key]: selectionGroup\r\n\t\t\t\t}));\r\n\t\t\t});\r\n\t}\r\n\r\n\tisLoading(groupName: string): boolean {\r\n\t\treturn this.loading.get(groupName) ?? false;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.LayoutService","i2","i3.AppMenuService","i1","i2.BreadcrumbService","i3","i4","i5","i6","i8","filter","i2.AppMenuService","i6.LayoutService","i7","i1.AppMenuService","i2.LayoutService"],"mappings":"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"}
1
+ {"version":3,"file":"aril-theme-layout.mjs","sources":["../../projects/aril/theme/layout/app/profileSidebar/profile.service.ts","../../projects/aril/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts","../../projects/aril/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html","../../projects/aril/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts","../../projects/aril/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html","../../projects/aril/theme/layout/service/app.layout.service.ts","../../projects/aril/theme/layout/app/profileSidebar/app.profilesidebar.component.ts","../../projects/aril/theme/layout/app/profileSidebar/app.profilesidebar.component.html","../../projects/aril/theme/layout/app/history/history.service.ts","../../projects/aril/theme/layout/app/history/history-sidebar.component.ts","../../projects/aril/theme/layout/app/history/history-sidebar.component.html","../../projects/aril/theme/layout/app/site-map/site-map-sidebar.component.ts","../../projects/aril/theme/layout/app/site-map/site-map-sidebar.component.html","../../projects/aril/theme/layout/app/favorite-pages/favorite-pages.service.ts","../../projects/aril/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts","../../projects/aril/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html","../../projects/aril/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts","../../projects/aril/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html","../../projects/aril/theme/layout/service/app.menu.service.ts","../../projects/aril/theme/layout/app/menu/app.menu.component.ts","../../projects/aril/theme/layout/app/menu/app.menu.component.html","../../projects/aril/theme/layout/app/sidebar/app.sidebar.component.ts","../../projects/aril/theme/layout/app/sidebar/app.sidebar.component.html","../../projects/aril/theme/layout/service/interfaces/enum.ts","../../projects/aril/theme/layout/service/breadcrumb.service.ts","../../projects/aril/theme/layout/app/breadcrumb/app.breadcrumb.component.ts","../../projects/aril/theme/layout/app/breadcrumb/app.breadcrumb.component.html","../../projects/aril/theme/layout/app/topbar/app.topbar.component.ts","../../projects/aril/theme/layout/app/topbar/app.topbar.component.html","../../projects/aril/theme/layout/app/chatbot/app.chatbot.component.ts","../../projects/aril/theme/layout/app/chatbot/app.chatbot.component.html","../../projects/aril/theme/layout/app/expandableMenu/expandable-menu.component.ts","../../projects/aril/theme/layout/app/expandableMenu/expandable-menu.component.html","../../projects/aril/theme/layout/app/layout/app.layout.component.ts","../../projects/aril/theme/layout/app/layout/app.layout.component.html","../../projects/aril/theme/layout/app/layout/mfe.layout.component.ts","../../projects/aril/theme/layout/service/selection-group.service.ts","../../projects/aril/theme/layout/aril-theme-layout.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { HTTPMethods, ProxyTypes, RestClient, ServiceCall, ServiceCallStateMap, ServiceResponse } from 'aril/http';\r\n\r\nexport interface GetUserRequestDTO {\r\n\tid: string;\r\n}\r\n\r\nexport interface UpdateUserRequestDTO {\r\n\tid: string;\r\n\tfirstName?: string;\r\n\tlastName?: string;\r\n\temail?: string;\r\n\tenabled?: boolean;\r\n\temailVerified?: boolean;\r\n\tphone?: string[];\r\n\ttckn?: string[];\r\n\tregions?: Array<{\r\n\t\tstartLevel: string;\r\n\t\tendLevel: string;\r\n\t}>;\r\n\tphotoUrl?: string[];\r\n\tnotes?: string[];\r\n\tuserTypeId?: string;\r\n\tclientOfSystemUser?: string;\r\n\tsystemUser?: boolean;\r\n\tpassword?: string | null;\r\n}\r\n\r\nexport interface ResetPasswordRequestDTO {\r\n\tuserId: string;\r\n\tpassword: string;\r\n}\r\n\r\nexport interface UserResponseDTO {\r\n\tid: string;\r\n\tuserName: string;\r\n\temail: string;\r\n\tfirstName: string;\r\n\tlastName: string;\r\n\tenabled: boolean;\r\n\tphone?: string | string[];\r\n\troles?: string[];\r\n\tuserTypes?: string[];\r\n\tphotoUrl?: string | string[];\r\n\tcreatedTimestamp?: number;\r\n\temailVerified?: boolean;\r\n\tlastSession?: number;\r\n\ttckn?: string | string[];\r\n\tnotes?: string | string[];\r\n\tsystemUser?: boolean;\r\n\tclientOfSystemUser?: string;\r\n\tuserTypeId?: string;\r\n\tregions?:\r\n\t\t| string[]\r\n\t\t| Array<{\r\n\t\t\t\tstartLevel: string;\r\n\t\t\t\tendLevel: string;\r\n\t\t }>;\r\n}\r\n\r\nexport const profileEndpoints = {\r\n\tgetUser: 'user-management/users/get',\r\n\tupdateUser: 'user-management/users/update',\r\n\tresetPassword: 'user-management/users/reset-password'\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ProfileService extends RestClient {\r\n\toverride states: ServiceCallStateMap<ProfileService> = {};\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, profileEndpoints.getUser, {}, Apps.MW)\r\n\tgetUser(post: GetUserRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<UserResponseDTO>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, profileEndpoints.updateUser, {}, Apps.MW)\r\n\tupdateUser(post: UpdateUserRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<UserResponseDTO>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, profileEndpoints.resetPassword, {}, Apps.MW)\r\n\tresetPassword(post: ResetPasswordRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<any>>();\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, effect } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport {\r\n\tAbstractControl,\r\n\tFormBuilder,\r\n\tFormControl,\r\n\tFormGroup,\r\n\tFormsModule,\r\n\tReactiveFormsModule,\r\n\tValidationErrors\r\n} from '@angular/forms';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, switchMap } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { FieldComponent } from 'aril/ui/field';\r\nimport { ARiLFormModule } from 'aril/ui/form';\r\n\r\nimport { ProfileService, ResetPasswordRequestDTO } from '../../profile.service';\r\n\r\nexport class PasswordValidators {\r\n\tstatic passwordMatchValidator = (passwordFormGroup: FormGroup) => {\r\n\t\treturn (control: AbstractControl): ValidationErrors | null => {\r\n\t\t\tif (!control.value || !passwordFormGroup) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tconst passwordControl = passwordFormGroup.get('newPassword');\r\n\t\t\tconst confirmPasswordValue = control.value;\r\n\r\n\t\t\tif (!passwordControl || !confirmPasswordValue) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tconst passwordsMatch = passwordControl.value === confirmPasswordValue;\r\n\t\t\treturn passwordsMatch ? null : (\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpasswordMismatch: 'Şifreler eşleşmiyor. Lütfen aynı şifreyi giriniz.'\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t};\r\n\t};\r\n\r\n\tstatic minLength(length: number) {\r\n\t\treturn (control: AbstractControl): ValidationErrors | null => {\r\n\t\t\tif (!control.value || control.value.length >= length) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\treturn { minlength: `Şifre en az ${length} karakter olmalıdır.` };\r\n\t\t};\r\n\t}\r\n\r\n\tstatic required(control: AbstractControl): ValidationErrors | null {\r\n\t\tif (!control.value || control.value.trim() === '') {\r\n\t\t\treturn { required: 'Bu alan zorunludur.' };\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tARiLFormModule,\r\n\t\tFieldComponent,\r\n\t\tButtonComponent,\r\n\t\tPasswordModule,\r\n\t\tTooltipModule,\r\n\t\tTranslocoModule\r\n\t],\r\n\ttemplateUrl: './change-password-modal.component.html',\r\n\tstyleUrls: ['./change-password-modal.component.scss']\r\n})\r\nexport class ChangePasswordModalComponent {\r\n\tpasswordForm!: FormGroup;\r\n\tuserId: string;\r\n\r\n\tprivate subjects = {\r\n\t\tresetPassword: new Subject<ResetPasswordRequestDTO>()\r\n\t};\r\n\r\n\tresetPasswordService = toSignal(\r\n\t\tthis.subjects.resetPassword.pipe(switchMap((data) => this.profileService.resetPassword(data)))\r\n\t);\r\n\r\n\tconstructor(\r\n\t\tprivate readonly formBuilder: FormBuilder,\r\n\t\tprivate readonly dialogRef: DynamicDialogRef,\r\n\t\tprivate readonly dialogConfig: DynamicDialogConfig,\r\n\t\tprivate readonly profileService: ProfileService,\r\n\t\tprivate readonly translocoService: TranslocoService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.userId = this.dialogConfig.data?.userId;\r\n\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.resetPasswordService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\tsummary: this.translocoService.translate('profileSidebar.changePasswordSuccess'),\r\n\t\t\t\t\t\tdetail: this.translocoService.translate('profileSidebar.changePasswordSuccessDetail'),\r\n\t\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.dialogRef.close({ status: 'success' });\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\r\n\t\tthis.initializeForm();\r\n\r\n\t\tif (!this.userId) {\r\n\t\t\tthis.dialogRef.close('error');\r\n\t\t}\r\n\t}\r\n\r\n\tinitializeForm(): void {\r\n\t\tthis.passwordForm = this.formBuilder.group({\r\n\t\t\tnewPassword: new FormControl('', [PasswordValidators.required, PasswordValidators.minLength(6)]),\r\n\t\t\tconfirmPassword: new FormControl('', [PasswordValidators.required])\r\n\t\t});\r\n\r\n\t\tconst confirmPasswordControl = this.passwordForm.get('confirmPassword');\r\n\t\tif (confirmPasswordControl) {\r\n\t\t\tconfirmPasswordControl.setValidators([\r\n\t\t\t\tPasswordValidators.required,\r\n\t\t\t\tPasswordValidators.passwordMatchValidator(this.passwordForm)\r\n\t\t\t]);\r\n\t\t}\r\n\r\n\t\tthis.passwordForm.get('newPassword')?.valueChanges.subscribe(() => {\r\n\t\t\tconfirmPasswordControl?.updateValueAndValidity({ emitEvent: false });\r\n\t\t});\r\n\t}\r\n\r\n\tgetErrorMessage(controlName: string): string {\r\n\t\tconst control = this.passwordForm.get(controlName);\r\n\t\tif (control?.errors) {\r\n\t\t\tconst errors = control.errors;\r\n\t\t\tconst errorKeys = Object.keys(errors);\r\n\t\t\tif (errorKeys.length > 0) {\r\n\t\t\t\treturn errors[errorKeys[0]];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tsubmit(): void {\r\n\t\tif (this.passwordForm.invalid) {\r\n\t\t\tthis.passwordForm.markAllAsTouched();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst formValue = this.passwordForm.value;\r\n\t\tconst resetRequest: ResetPasswordRequestDTO = {\r\n\t\t\tuserId: this.userId,\r\n\t\t\tpassword: formValue.newPassword\r\n\t\t};\r\n\r\n\t\tthis.subjects.resetPassword.next(resetRequest);\r\n\t}\r\n\r\n\tcancel(): void {\r\n\t\tthis.dialogRef.close('cancel');\r\n\t}\r\n}\r\n","<div class=\"change-password-modal\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"passwordForm\">\r\n\t\t<aril-field [label]=\"t('newPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<p-password \r\n\t\t\t\tformControlName=\"newPassword\"\r\n\t\t\t\t[placeholder]=\"t('newPassword')\"\r\n\t\t\t\t[feedback]=\"false\"\r\n\t\t\t\t[toggleMask]=\"true\"\r\n\t\t\t\tstyleClass=\"w-full\"\r\n\t\t\t\t[pTooltip]=\"passwordForm.get('newPassword')?.invalid && passwordForm.get('newPassword')?.touched ? getErrorMessage('newPassword') : ''\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\r\n\t\t\t</p-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('confirmPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<p-password \r\n\t\t\t\tformControlName=\"confirmPassword\"\r\n\t\t\t\t[placeholder]=\"t('confirmPassword')\"\r\n\t\t\t\t[feedback]=\"false\"\r\n\t\t\t\t[toggleMask]=\"true\"\r\n\t\t\t\tstyleClass=\"w-full\"\r\n\t\t\t\t[pTooltip]=\"passwordForm.get('confirmPassword')?.invalid && passwordForm.get('confirmPassword')?.touched ? getErrorMessage('confirmPassword') : ''\"\r\n\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\r\n\t\t\t</p-password>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\r\n\t\t\t<aril-button\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[label]=\"t('cancel')\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t(clickEvent)=\"cancel()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<aril-button\r\n\t\t\t\tcolor=\"success\"\r\n\t\t\t\t[label]=\"t('save')\"\r\n\t\t\t\t[raised]=\"false\"\r\n\t\t\t\ticon=\"CHECK\"\r\n\t\t\t\t(clickEvent)=\"submit()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit, effect } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, switchMap } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { CheckboxComponent } from 'aril/ui/checkbox';\r\nimport { FieldComponent } from 'aril/ui/field';\r\nimport { ARiLFormModule } from 'aril/ui/form';\r\nimport { MaskComponent } from 'aril/ui/mask';\r\nimport { TextComponent } from 'aril/ui/text';\r\nimport { TextAreaComponent } from 'aril/ui/textArea';\r\n\r\nimport { ProfileService, UpdateUserRequestDTO, UserResponseDTO } from '../../profile.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tARiLFormModule,\r\n\t\tFieldComponent,\r\n\t\tTextComponent,\r\n\t\tTextAreaComponent,\r\n\t\tButtonComponent,\r\n\t\tMaskComponent,\r\n\t\tCheckboxComponent,\r\n\t\tTranslocoModule\r\n\t],\r\n\ttemplateUrl: './edit-profile-modal.component.html'\r\n})\r\nexport class EditProfileModalComponent implements OnInit {\r\n\tprofileForm!: FormGroup;\r\n\tuserProfile: UserResponseDTO;\r\n\r\n\tprivate subjects = {\r\n\t\tupdateUser: new Subject<UpdateUserRequestDTO>()\r\n\t};\r\n\r\n\tupdateUserService = toSignal(\r\n\t\tthis.subjects.updateUser.pipe(switchMap((data) => this.profileService.updateUser(data)))\r\n\t);\r\n\r\n\tconstructor(\r\n\t\tprivate readonly formBuilder: FormBuilder,\r\n\t\tprivate readonly dialogRef: DynamicDialogRef,\r\n\t\tprivate readonly dialogConfig: DynamicDialogConfig,\r\n\t\tprivate readonly profileService: ProfileService,\r\n\t\tprivate readonly translocoService: TranslocoService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.userProfile = this.dialogConfig.data?.userProfile;\r\n\t\tthis.initializeEffects();\r\n\t\tthis.initializeForm();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (!this.userProfile) {\r\n\t\t\tthis.dialogRef.close('error');\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initializeEffects(): void {\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.updateUserService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\tsummary: this.translocoService.translate('profileSidebar.updateSuccess'),\r\n\t\t\t\t\t\tdetail: this.translocoService.translate('profileSidebar.updateSuccessDetail'),\r\n\t\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.dialogRef.close({ status: 'success', data: service.response });\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initializeForm(): void {\r\n\t\tthis.profileForm = this.formBuilder.group({\r\n\t\t\tid: new FormControl(this.userProfile?.id || null),\r\n\t\t\tsystemUser: new FormControl({ value: this.userProfile?.systemUser ?? true, disabled: true }),\r\n\t\t\tclientOfSystemUser: new FormControl({ value: this.userProfile?.clientOfSystemUser || '', disabled: true }),\r\n\t\t\tuserTypeId: new FormControl({ value: this.userProfile?.userTypeId || null, disabled: true }),\r\n\t\t\tregions: new FormControl({ value: this.userProfile?.regions || '', disabled: true }),\r\n\t\t\tuserName: new FormControl({ value: this.userProfile?.userName || '', disabled: true }, [Validators.required]),\r\n\t\t\tfirstName: new FormControl(this.userProfile?.firstName || '', [Validators.required]),\r\n\t\t\tlastName: new FormControl(this.userProfile?.lastName || ''),\r\n\t\t\temail: new FormControl(this.userProfile?.email || '', [Validators.email, Validators.required]),\r\n\t\t\tphone: new FormControl(\r\n\t\t\t\tArray.isArray(this.userProfile?.phone) ? this.userProfile.phone[0] || '' : this.userProfile?.phone || ''\r\n\t\t\t),\r\n\t\t\ttckn: new FormControl(Array.isArray(this.userProfile?.tckn) ? this.userProfile.tckn[0] || '' : '', [\r\n\t\t\t\tValidators.required\r\n\t\t\t]),\r\n\t\t\tphotoUrl: new FormControl(this.userProfile?.photoUrl || ''),\r\n\t\t\tenabled: new FormControl({ value: this.userProfile?.enabled ?? true, disabled: true }),\r\n\t\t\temailVerified: new FormControl({ value: this.userProfile?.emailVerified ?? true, disabled: true }),\r\n\t\t\tnotes: new FormControl(this.userProfile?.notes || '')\r\n\t\t});\r\n\t}\r\n\r\n\tsubmit(): void {\r\n\t\tif (this.profileForm.invalid) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst rawValue = this.profileForm.getRawValue();\r\n\t\tconst updateRequest: UpdateUserRequestDTO = {\r\n\t\t\tid: this.userProfile.id,\r\n\t\t\tfirstName: rawValue.firstName,\r\n\t\t\tlastName: rawValue.lastName,\r\n\t\t\temail: rawValue.email,\r\n\t\t\tphone: Array.isArray(rawValue.phone) ? rawValue.phone : [rawValue.phone],\r\n\t\t\ttckn: Array.isArray(rawValue.tckn) ? rawValue.tckn : [rawValue.tckn],\r\n\t\t\tphotoUrl: Array.isArray(rawValue.photoUrl) ? rawValue.photoUrl : [rawValue.photoUrl],\r\n\t\t\tnotes: Array.isArray(rawValue.notes) ? rawValue.notes : [rawValue.notes],\r\n\t\t\tpassword: null,\r\n\t\t\tenabled: rawValue.enabled,\r\n\t\t\temailVerified: rawValue.emailVerified,\r\n\t\t\tsystemUser: rawValue.systemUser,\r\n\t\t\tclientOfSystemUser: rawValue.clientOfSystemUser,\r\n\t\t\tuserTypeId: rawValue.userTypeId || null,\r\n\t\t\tregions: rawValue.regions\r\n\t\t};\r\n\r\n\t\tthis.subjects.updateUser.next(updateRequest);\r\n\t}\r\n\r\n\tcancel(): void {\r\n\t\tthis.dialogRef.close('cancel');\r\n\t}\r\n}\r\n","<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"clientOfSystemUser\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<!-- <aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"userTypeId\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"regions\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field> -->\r\n\r\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('active')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('emailVerified')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"emailVerified\" [disabled]=\"true\"></aril-checkbox>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\r\n\t\t\t<aril-button\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[label]=\"t('cancel')\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t(clickEvent)=\"cancel()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<aril-button\r\n\t\t\t\tcolor=\"success\"\r\n\t\t\t\t[label]=\"t('save')\"\r\n\t\t\t\t[raised]=\"false\"\r\n\t\t\t\ticon=\"CHECK\"\r\n\t\t\t\t(clickEvent)=\"submit()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div> ","import { Injectable, effect, signal } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nexport type MenuMode = 'static' | 'overlay' | 'horizontal' | 'slim' | 'slim-plus' | 'reveal' | 'drawer' | 'expandable';\r\n\r\nexport type ColorScheme = 'light' | 'dark' | 'dim';\r\n\r\nexport type MenuColorScheme = 'colorScheme' | 'primaryColor' | 'transparent';\r\n\r\nexport interface AppConfig {\r\n\tinputStyle: string;\r\n\tcolorScheme: ColorScheme;\r\n\ttheme: string;\r\n\tripple: boolean;\r\n\tmenuMode: MenuMode;\r\n\tscale: number;\r\n\tmenuTheme: MenuColorScheme;\r\n}\r\n\r\ninterface LayoutState {\r\n\tstaticMenuDesktopInactive: boolean;\r\n\toverlayMenuActive: boolean;\r\n\tprofileSidebarVisible: boolean;\r\n\tconfigSidebarVisible: boolean;\r\n\thistorySidebarVisible: boolean;\r\n\tsiteMapSidebarVisible: boolean;\r\n\tfavoritePagesSidebarVisible: boolean;\r\n\tstaticMenuMobileActive: boolean;\r\n\tmenuHoverActive: boolean;\r\n\tsidebarActive: boolean;\r\n\tanchored: boolean;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LayoutService {\r\n\t\r\n\t/**\r\n\t * @description\r\n\t * Eğer menuMode expandable ise app.layout.component.html içindeki <app-sidebar />\t \r\n\t * yerine <app-expandable-menu /> aktif edilmeli\r\n\t */\r\n\t\r\n\t_config: AppConfig = {\r\n\t\tripple: false,\r\n\t\tinputStyle: 'outlined',\r\n\t\tmenuMode: 'expandable',\r\n\t\tcolorScheme: 'light',\r\n\t\ttheme: 'indigo',\r\n\t\tscale: 12,\r\n\t\tmenuTheme: 'colorScheme'\r\n\t};\r\n\r\n\t// TODO: Set User Config\r\n\tconfig = signal<AppConfig>(this._config);\r\n\r\n\tstate: LayoutState = {\r\n\t\tstaticMenuDesktopInactive: false,\r\n\t\toverlayMenuActive: false,\r\n\t\tprofileSidebarVisible: false,\r\n\t\tconfigSidebarVisible: false,\r\n\t\thistorySidebarVisible: false,\r\n\t\tsiteMapSidebarVisible: false,\r\n\t\tfavoritePagesSidebarVisible: false,\r\n\t\tstaticMenuMobileActive: false,\r\n\t\tmenuHoverActive: false,\r\n\t\tsidebarActive: false,\r\n\t\tanchored: false\r\n\t};\r\n\r\n\tprivate configUpdate = new Subject<AppConfig>();\r\n\r\n\tprivate overlayOpen = new Subject<any>();\r\n\r\n\tconfigUpdate$ = this.configUpdate.asObservable();\r\n\r\n\toverlayOpen$ = this.overlayOpen.asObservable();\r\n\r\n\tmfeAppItemClicked = signal<boolean>(false);\r\n\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tconst config = this.config();\r\n\t\t\tif (this.updateStyle(config)) {\r\n\t\t\t\tthis.changeTheme();\r\n\t\t\t}\r\n\t\t\tthis.changeScale(config.scale);\r\n\t\t\tthis.onConfigUpdate();\r\n\t\t});\r\n\t}\r\n\r\n\tupdateStyle(config: AppConfig) {\r\n\t\treturn config.theme !== this._config.theme || config.colorScheme !== this._config.colorScheme;\r\n\t}\r\n\r\n\tonMenuToggle() {\r\n\t\tif (this.isOverlay()) {\r\n\t\t\tthis.state.overlayMenuActive = !this.state.overlayMenuActive;\r\n\r\n\t\t\tif (this.state.overlayMenuActive) {\r\n\t\t\t\tthis.overlayOpen.next(null);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.isDesktop()) {\r\n\t\t\tthis.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\r\n\t\t} else {\r\n\t\t\tthis.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\r\n\r\n\t\t\tif (this.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.overlayOpen.next(null);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonOverlaySubmenuOpen() {\r\n\t\tthis.overlayOpen.next(null);\r\n\t}\r\n\r\n\tshowProfileSidebar() {\r\n\t\tthis.state.profileSidebarVisible = true;\r\n\t}\r\n\r\n\tshowConfigSidebar() {\r\n\t\tthis.state.configSidebarVisible = true;\r\n\t}\r\n\r\n\tshowHistorySidebar() {\r\n\t\tthis.state.historySidebarVisible = true;\r\n\t}\r\n\r\n\tshowSiteMapSidebar() {\r\n\t\tthis.state.siteMapSidebarVisible = true;\r\n\t}\r\n\r\n\tshowFavoritePagesSidebar() {\r\n\t\tthis.state.favoritePagesSidebarVisible = true;\r\n\t}\r\n\r\n\tisOverlay() {\r\n\t\treturn this.config().menuMode === 'overlay';\r\n\t}\r\n\r\n\tisDesktop() {\r\n\t\treturn window.innerWidth > 991;\r\n\t}\r\n\r\n\tisSlim() {\r\n\t\treturn this.config().menuMode === 'slim';\r\n\t}\r\n\r\n\tisSlimPlus() {\r\n\t\treturn this.config().menuMode === 'slim-plus';\r\n\t}\r\n\r\n\tisHorizontal() {\r\n\t\treturn this.config().menuMode === 'horizontal';\r\n\t}\r\n\r\n\tisMobile() {\r\n\t\treturn !this.isDesktop();\r\n\t}\r\n\r\n\tonConfigUpdate() {\r\n\t\tthis._config = { ...this.config() };\r\n\t\tthis.configUpdate.next(this.config());\r\n\t}\r\n\r\n\tchangeTheme() {\r\n\t\tconst config = this.config();\r\n\t\tconst themeLink = <HTMLLinkElement>document.getElementById('theme-link');\r\n\t\tconst themeLinkHref = themeLink.getAttribute('href')!;\r\n\t\tconst newHref = themeLinkHref\r\n\t\t\t.split('/')\r\n\t\t\t.map((el) =>\r\n\t\t\t\tel == this._config.theme ? (el = config.theme)\r\n\t\t\t\t: el == `theme-${this._config.colorScheme}` ? (el = `theme-${config.colorScheme}`)\r\n\t\t\t\t: el\r\n\t\t\t)\r\n\t\t\t.join('/');\r\n\r\n\t\tthis.replaceThemeLink(newHref);\r\n\t}\r\n\r\n\treplaceThemeLink(href: string) {\r\n\t\tconst id = 'theme-link';\r\n\t\tlet themeLink = <HTMLLinkElement>document.getElementById(id);\r\n\t\tconst cloneLinkElement = <HTMLLinkElement>themeLink.cloneNode(true);\r\n\r\n\t\tcloneLinkElement.setAttribute('href', href);\r\n\t\tcloneLinkElement.setAttribute('id', id + '-clone');\r\n\r\n\t\tthemeLink.parentNode!.insertBefore(cloneLinkElement, themeLink.nextSibling);\r\n\t\tcloneLinkElement.addEventListener('load', () => {\r\n\t\t\tthemeLink.remove();\r\n\t\t\tcloneLinkElement.setAttribute('id', id);\r\n\t\t});\r\n\t}\r\n\r\n\tchangeScale(value: number) {\r\n\t\tdocument.documentElement.style.fontSize = `${value}px`;\r\n\t}\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit, effect, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { TagModule } from 'primeng/tag';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { Subject, switchMap } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { ChangePasswordModalComponent } from './modals/change-password-modal/change-password-modal.component';\r\nimport { EditProfileModalComponent } from './modals/edit-profile-modal/edit-profile-modal.component';\r\nimport { GetUserRequestDTO, ProfileService, UserResponseDTO } from './profile.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-profilemenu',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tSidebarModule,\r\n\t\tTagModule,\r\n\t\tButtonModule,\r\n\t\tSkeletonModule,\r\n\t\tAvatarModule,\r\n\t\tChipModule,\r\n\t\tTranslocoModule,\r\n\t\tButtonComponent\r\n\t],\r\n\ttemplateUrl: './app.profilesidebar.component.html',\r\n\tstyleUrls: ['./app.profilesidebar.component.scss'],\r\n\tproviders: [DialogService]\r\n})\r\nexport class AppProfileSidebarComponent implements OnInit {\r\n\tusername: string;\r\n\tuserProfile = signal<UserResponseDTO | null>(null);\r\n\r\n\tprivate subjects = {\r\n\t\tgetUser: new Subject<GetUserRequestDTO>()\r\n\t};\r\n\r\n\tgetUserService = toSignal(this.subjects.getUser.pipe(switchMap((data) => this.profileService.getUser(data))));\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tprivate readonly keycloak: KeycloakService,\r\n\t\tprivate readonly profileService: ProfileService,\r\n\t\tprivate readonly dialogService: DialogService,\r\n\t\tprivate readonly translocoService: TranslocoService\r\n\t) {\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t\tthis.initializeEffects();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.loadUserProfile();\r\n\t}\r\n\r\n\tprivate initializeEffects(): void {\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.getUserService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.userProfile.set(service.response);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprivate loadUserProfile(): void {\r\n\t\tconst userId = this.keycloak.getKeycloakInstance().idTokenParsed?.sub;\r\n\t\tif (userId) {\r\n\t\t\tthis.subjects.getUser.next({ id: userId });\r\n\t\t}\r\n\t}\r\n\r\n\tget visible(): boolean {\r\n\t\treturn this.layoutService.state.profileSidebarVisible;\r\n\t}\r\n\r\n\tset visible(_val: boolean) {\r\n\t\tthis.layoutService.state.profileSidebarVisible = _val;\r\n\t\tif (_val && !this.userProfile()) {\r\n\t\t\tthis.loadUserProfile();\r\n\t\t}\r\n\t}\r\n\r\n\tlogout(): void {\r\n\t\tthis.keycloak.logout();\r\n\t}\r\n\r\n\teditProfile(): void {\r\n\t\tif (!this.userProfile()) return;\r\n\r\n\t\tconst ref = this.dialogService.open(EditProfileModalComponent, {\r\n\t\t\theader: this.translocoService.translate('profileSidebar.editProfile'),\r\n\t\t\twidth: '600px',\r\n\t\t\theight: 'auto',\r\n\t\t\tmodal: true,\r\n\t\t\tmaximizable: false,\r\n\t\t\tclosable: true,\r\n\t\t\tdata: {\r\n\t\t\t\tuserProfile: this.userProfile()\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe((result) => {\r\n\t\t\tif (result?.status === 'success') {\r\n\t\t\t\tthis.loadUserProfile();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tchangePassword(): void {\r\n\t\tconst userId = this.keycloak.getKeycloakInstance().idTokenParsed?.sub;\r\n\t\tif (!userId) return;\r\n\r\n\t\tconst ref = this.dialogService.open(ChangePasswordModalComponent, {\r\n\t\t\theader: this.translocoService.translate('profileSidebar.changePassword'),\r\n\t\t\twidth: '500px',\r\n\t\t\theight: 'auto',\r\n\t\t\tmodal: true,\r\n\t\t\tmaximizable: false,\r\n\t\t\tclosable: true,\r\n\t\t\tdata: {\r\n\t\t\t\tuserId: userId\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe();\r\n\t}\r\n}\r\n","<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-profile-sidebar w-full sm:w-30rem\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center gap-2\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<span class=\"font-bold\">{{ t('personalInfo') }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"profile-content\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<!-- Personal Information -->\r\n\t\t\t<div class=\"info-section\">\r\n\t\t\t\t<div class=\"info-items\">\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('fullName') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.firstName }} {{ userProfile()?.lastName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-id-card info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('tcNumber') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.tckn || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-envelope info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('email') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.email || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-phone info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('phone') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.phone || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-at info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('username') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.userName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-check-circle info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('accountStatus') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.enabled\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.enabled ? t('active') : t('inactive') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('systemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.systemUser\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.systemUser ? t('yes') : t('no') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-building info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('clientSystemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.clientOfSystemUser }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<!-- Fixed Action Buttons -->\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"action-buttons-container grid p-fluid\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<div class=\"col-12 flex justify-content-between align-items-center\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('editProfile')\"\r\n\t\t\t\t\ticon=\"USER_EDIT\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"editProfile()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('changePassword')\"\r\n\t\t\t\t\ticon=\"KEY\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"changePassword()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('logout')\"\r\n\t\t\t\ticon=\"SIGN_OUT\"\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[outlined]=\"false\"\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t(clickEvent)=\"logout()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t}\r\n</p-sidebar>\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nexport interface HistoryItem {\r\n\tid: string;\r\n\ttitle: string;\r\n\tmultiLanguageTitle?: {\r\n\t\ttr?: string;\r\n\t\ten?: string;\r\n\t};\r\n\turl: string;\r\n\ttimestamp: number;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class HistoryService {\r\n\tprivate readonly STORAGE_KEY = 'page_history';\r\n\tprivate readonly MAX_HISTORY_SIZE = 20;\r\n\r\n\tprivate historySubject = new BehaviorSubject<HistoryItem[]>([]);\r\n\tpublic history$: Observable<HistoryItem[]> = this.historySubject.asObservable();\r\n\r\n\t// Excluded paths that shouldn't be tracked\r\n\tprivate excludedPaths = ['/login', '/logout', '/error', '/not-found', '/unauthorized'];\r\n\r\n\tprivate router = inject(Router);\r\n\tprivate translocoService = inject(TranslocoService);\r\n\r\n\tconstructor() {\r\n\t\tthis.loadHistoryFromStorage();\r\n\t\tthis.initializeRouterTracking();\r\n\t}\r\n\r\n\tprivate initializeRouterTracking(): void {\r\n\t\tthis.router.events\r\n\t\t\t.pipe(\r\n\t\t\t\tfilter((event) => event instanceof NavigationEnd),\r\n\t\t\t\tmap((event) => event as NavigationEnd)\r\n\t\t\t)\r\n\t\t\t.subscribe((event: NavigationEnd) => {\r\n\t\t\t\tthis.addToHistory(event.urlAfterRedirects || event.url);\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate addToHistory(url: string): void {\r\n\t\t// Skip if URL should be excluded\r\n\t\tif (this.shouldExcludeUrl(url)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst menuItem = this.findMenuItemByPath(url);\r\n\t\tconst multiLanguageTitle: { tr?: string; en?: string } = {};\r\n\r\n\t\t// Get titles for both languages if menu item exists\r\n\t\tif (menuItem) {\r\n\t\t\tmultiLanguageTitle.tr = menuItem.label['tr'];\r\n\t\t\tmultiLanguageTitle.en = menuItem.label['en'];\r\n\t\t} else {\r\n\t\t\t// Fallback for pages not in menu\r\n\t\t\tmultiLanguageTitle.tr = 'Bilinmeyen Sayfa';\r\n\t\t\tmultiLanguageTitle.en = 'Unknown Page';\r\n\t\t}\r\n\r\n\t\tconst currentLang = this.translocoService.getActiveLang() as 'tr' | 'en';\r\n\t\tconst title = multiLanguageTitle[currentLang] || multiLanguageTitle.tr || 'Unknown Page';\r\n\t\tconst timestamp = Date.now();\r\n\t\tconst id = this.generateId(url, timestamp);\r\n\r\n\t\tconst newItem: HistoryItem = {\r\n\t\t\tid,\r\n\t\t\ttitle,\r\n\t\t\tmultiLanguageTitle,\r\n\t\t\turl,\r\n\t\t\ttimestamp\r\n\t\t};\r\n\r\n\t\tlet history = this.getHistoryFromStorage();\r\n\t\thistory = history.filter((item) => item.url !== url);\r\n\t\thistory.unshift(newItem);\r\n\r\n\t\t// Limit history size\r\n\t\tif (history.length > this.MAX_HISTORY_SIZE) {\r\n\t\t\thistory = history.slice(0, this.MAX_HISTORY_SIZE);\r\n\t\t}\r\n\r\n\t\tthis.saveHistoryToStorage(history);\r\n\t\tthis.historySubject.next(history);\r\n\t}\r\n\r\n\tprivate shouldExcludeUrl(url: string): boolean {\r\n\t\treturn this.excludedPaths.some((excludedPath) => url.startsWith(excludedPath));\r\n\t}\r\n\r\n\tprivate findMenuItemByPath(path: string): PluginMenuItem | null {\r\n\t\tconst menuItems = (<any>globalThis).hostMenuItems?.() || [];\r\n\r\n\t\t// Special handling for home page route\r\n\t\tif (path === '/' || path === '') {\r\n\t\t\treturn menuItems.find((item: PluginMenuItem) => item.routerLink === '/') || null;\r\n\t\t}\r\n\r\n\t\t// Remove leading slash if present for other routes\r\n\t\tconst cleanPath = path.startsWith('/') ? path.substring(1) : path;\r\n\t\treturn this.findMenuItemRecursive(menuItems, cleanPath);\r\n\t}\r\n\r\n\tprivate findMenuItemRecursive(items: PluginMenuItem[], path: string): PluginMenuItem | null {\r\n\t\tfor (const item of items) {\r\n\t\t\tif (item.routerLink === path) {\r\n\t\t\t\treturn item;\r\n\t\t\t}\r\n\r\n\t\t\tif (item.routerLink && path.startsWith(item.routerLink + '/')) {\r\n\t\t\t\treturn item;\r\n\t\t\t}\r\n\r\n\t\t\tif (item.items) {\r\n\t\t\t\tconst found = this.findMenuItemRecursive(item.items, path);\r\n\t\t\t\tif (found) {\r\n\t\t\t\t\treturn found;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate generateId(url: string, timestamp: number): string {\r\n\t\treturn `${url.replace(/[^a-zA-Z0-9]/g, '_')}_${timestamp}`;\r\n\t}\r\n\r\n\tprivate loadHistoryFromStorage(): void {\r\n\t\tconst history = this.getHistoryFromStorage();\r\n\t\tthis.historySubject.next(history);\r\n\t}\r\n\r\n\tprivate saveHistoryToStorage(history: HistoryItem[]): void {\r\n\t\ttry {\r\n\t\t\tlocalStorage.setItem(this.STORAGE_KEY, JSON.stringify(history));\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to save navigation history to localStorage:', error);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic clearHistory(): void {\r\n\t\tlocalStorage.removeItem(this.STORAGE_KEY);\r\n\t\tthis.historySubject.next([]);\r\n\t}\r\n\r\n\tpublic navigateToHistoryItem(item: HistoryItem): void {\r\n\t\tthis.router.navigate([item.url]);\r\n\t}\r\n\r\n\tprivate getHistoryFromStorage(): HistoryItem[] {\r\n\t\ttry {\r\n\t\t\tconst stored = localStorage.getItem(this.STORAGE_KEY);\r\n\t\t\treturn stored ? JSON.parse(stored) : [];\r\n\t\t} catch (error) {\r\n\t\t\tconsole.warn('Failed to load navigation history from localStorage:', error);\r\n\t\t\treturn [];\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getHistoryItemsBySearchTerm(searchTerm: string): HistoryItem[] {\r\n\t\tconst history = this.getHistoryFromStorage();\r\n\t\tconst lowerSearchTerm = searchTerm.toLowerCase();\r\n\t\tconst currentLang = this.translocoService.getActiveLang() as 'tr' | 'en';\r\n\r\n\t\treturn history.filter((item) => {\r\n\t\t\t// Search in current language title\r\n\t\t\tconst currentTitle = item.multiLanguageTitle?.[currentLang] || item.title;\r\n\t\t\treturn currentTitle.toLowerCase().includes(lowerSearchTerm) || item.url.toLowerCase().includes(lowerSearchTerm);\r\n\t\t});\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnDestroy, OnInit, signal } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { TextComponent } from 'aril/ui/text';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { HistoryItem, HistoryService } from './history.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-history-sidebar',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tSidebarModule,\r\n\t\tButtonComponent,\r\n\t\tInputTextModule,\r\n\t\tScrollPanelModule,\r\n\t\tConfirmDialogModule,\r\n\t\tTooltipModule,\r\n\t\tBadgeModule,\r\n\t\tTranslocoModule,\r\n\t\tTextComponent\r\n\t],\r\n\ttemplateUrl: './history-sidebar.component.html',\r\n\tstyleUrls: ['./history-sidebar.component.scss'],\r\n\tproviders: [ConfirmationService]\r\n})\r\nexport class HistorySidebarComponent implements OnInit, OnDestroy {\r\n\thistory = signal<HistoryItem[]>([]);\r\n\tfilteredHistory = signal<HistoryItem[]>([]);\r\n\tsearchTerm = signal<string>('');\r\n\r\n\tprivate destroy$ = new Subject<void>();\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tprivate historyService: HistoryService,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate messageService: MessageService,\r\n\t\tprivate translocoService: TranslocoService\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.historyService.history$.pipe(takeUntil(this.destroy$)).subscribe((history) => {\r\n\t\t\tthis.history.set(history);\r\n\t\t\tthis.applyFilter();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.destroy$.next();\r\n\t\tthis.destroy$.complete();\r\n\t}\r\n\r\n\tget visible(): boolean {\r\n\t\treturn this.layoutService.state.historySidebarVisible;\r\n\t}\r\n\r\n\tset visible(value: boolean) {\r\n\t\tthis.layoutService.state.historySidebarVisible = value;\r\n\t}\r\n\r\n\tonSearchChange(): void {\r\n\t\tthis.applyFilter();\r\n\t}\r\n\r\n\tprivate applyFilter(): void {\r\n\t\tconst searchTerm = this.searchTerm();\r\n\t\tif (!searchTerm.trim()) {\r\n\t\t\tthis.filteredHistory.set(this.history());\r\n\t\t} else {\r\n\t\t\tconst filtered = this.historyService.getHistoryItemsBySearchTerm(searchTerm);\r\n\t\t\tthis.filteredHistory.set(filtered);\r\n\t\t}\r\n\t}\r\n\r\n\tnavigateToItem(item: HistoryItem): void {\r\n\t\tthis.historyService.navigateToHistoryItem(item);\r\n\t\tthis.visible = false;\r\n\t}\r\n\r\n\tclearAllHistory(event: Event): void {\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\ttarget: event.target as EventTarget,\r\n\t\t\tmessage: this.translocoService.translate('history.confirmClearAllMessage'),\r\n\t\t\theader: this.translocoService.translate('history.deleteConfirmation'),\r\n\t\t\ticon: 'pi pi-info-circle',\r\n\t\t\tacceptLabel: this.translocoService.translate('history.acceptButtonLabel'),\r\n\t\t\trejectLabel: this.translocoService.translate('history.rejectButtonLabel'),\r\n\t\t\tacceptButtonStyleClass: 'p-button-success',\r\n\t\t\trejectButtonStyleClass: 'p-button-danger p-button-outlined',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.historyService.clearHistory();\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\tsummary: this.translocoService.translate('history.acceptButtonLabel'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('history.clearAll')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\ttrackByItemId(index: number, item: HistoryItem) {\r\n\t\treturn item.id || index;\r\n\t}\r\n\r\n\tgetLocalizedTitle(item: HistoryItem): string {\r\n\t\tconst currentLang = this.translocoService.getActiveLang() as 'tr' | 'en';\r\n\r\n\t\t// Use multiLanguageTitle if available\r\n\t\tif (item.multiLanguageTitle) {\r\n\t\t\tconst localizedTitle = item.multiLanguageTitle[currentLang];\r\n\t\t\tif (localizedTitle) {\r\n\t\t\t\treturn localizedTitle;\r\n\t\t\t}\r\n\t\t\t// Fallback to Turkish if current language not available\r\n\t\t\tif (item.multiLanguageTitle.tr) {\r\n\t\t\t\treturn item.multiLanguageTitle.tr;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Fallback to original title\r\n\t\treturn item.title;\r\n\t}\r\n}\r\n","<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-history-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'history'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"history-content\">\r\n\t\t@if (history().length > 0) {\r\n\t\t\t<div class=\"search-section\">\r\n\t\t\t\t<div class=\"search-input-container\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\r\n\t\t\t\t\t</aril-text>\r\n\r\n\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\ticon=\"TRASH\"\r\n\t\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\tclass=\"ml-1\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t(clickEvent)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</aril-button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t@if (filteredHistory().length > 0) {\r\n\t\t\t<div class=\"history-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"history-items\">\r\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\r\n\t\t\t\t\t\t\t<div class=\"history-item\" (click)=\"navigateToItem(item)\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-history empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : t('startBrowsing') }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit, signal } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { TextComponent } from 'aril/ui/text';\r\nimport { TranslateJsonPipe } from 'aril/util/pipes';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\n\r\ninterface MenuNode {\r\n\tkey: string;\r\n\tlabel: string | object;\r\n\ticon?: string;\r\n\trouterLink?: string;\r\n\tchildren?: MenuNode[];\r\n\texpanded?: boolean;\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-site-map-sidebar',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule,\r\n\t\tSidebarModule,\r\n\t\tScrollPanelModule,\r\n\t\tTooltipModule,\r\n\t\tButtonComponent,\r\n\t\tTextComponent,\r\n\t\tTranslocoModule,\r\n\t\tTranslateJsonPipe\r\n\t],\r\n\ttemplateUrl: './site-map-sidebar.component.html',\r\n\tstyleUrls: ['./site-map-sidebar.component.scss']\r\n})\r\nexport class SiteMapSidebarComponent implements OnInit {\r\n\tsiteMapNodes = signal<MenuNode[]>([]);\r\n\tfilteredNodes = signal<MenuNode[]>([]);\r\n\tsearchTerm = signal<string>('');\r\n\ttotalPages = signal<number>(0);\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tprivate translocoService: TranslocoService\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.loadSiteMap();\r\n\t}\r\n\r\n\tget visible(): boolean {\r\n\t\treturn this.layoutService.state.siteMapSidebarVisible;\r\n\t}\r\n\r\n\tset visible(value: boolean) {\r\n\t\tthis.layoutService.state.siteMapSidebarVisible = value;\r\n\t}\r\n\r\n\tprivate loadSiteMap(): void {\r\n\t\tconst menuItems = (<any>globalThis).hostMenuItems?.() || [];\r\n\t\tconst nodes = this.buildSiteMapNodes(menuItems);\r\n\t\tconst totalCount = this.countTotalPages(nodes);\r\n\r\n\t\tthis.siteMapNodes.set(nodes);\r\n\t\tthis.filteredNodes.set(nodes);\r\n\t\tthis.totalPages.set(totalCount);\r\n\t}\r\n\r\n\tprivate buildSiteMapNodes(items: any[], parentKey = ''): MenuNode[] {\r\n\t\treturn items\r\n\t\t\t.filter((item) => {\r\n\t\t\t\t// Keep the home page route (\"/\") and any non-empty routes\r\n\t\t\t\treturn !item.routerLink || item.routerLink === '/' || item.routerLink.trim() !== '';\r\n\t\t\t})\r\n\t\t\t.map((item, index) => {\r\n\t\t\t\tconst key = parentKey ? `${parentKey}-${index}` : `${index}`;\r\n\r\n\t\t\t\tlet label: string | object;\r\n\t\t\t\tif (item.routerLink === '/') {\r\n\t\t\t\t\tlabel = { tr: 'Anasayfa', en: 'Home' };\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlabel = item.label || { tr: 'Bilinmeyen', en: 'Unknown' };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst node: MenuNode = {\r\n\t\t\t\t\tkey,\r\n\t\t\t\t\tlabel,\r\n\t\t\t\t\ticon: item.icon,\r\n\t\t\t\t\trouterLink: item.routerLink,\r\n\t\t\t\t\texpanded: false\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (item.items && item.items.length > 0) {\r\n\t\t\t\t\tnode.children = this.buildSiteMapNodes(item.items, key);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn node;\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate countTotalPages(nodes: MenuNode[]): number {\r\n\t\tlet count = 0;\r\n\t\tfor (const node of nodes) {\r\n\t\t\tif (node.routerLink) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t\tif (node.children) {\r\n\t\t\t\tcount += this.countTotalPages(node.children);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn count;\r\n\t}\r\n\r\n\tonSearchChange(): void {\r\n\t\tconst searchTerm = this.searchTerm().toLowerCase().trim();\r\n\t\tif (!searchTerm) {\r\n\t\t\tthis.filteredNodes.set(this.siteMapNodes());\r\n\t\t} else {\r\n\t\t\tconst filtered = this.filterNodes(this.siteMapNodes(), searchTerm);\r\n\t\t\tthis.filteredNodes.set(filtered);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate filterNodes(nodes: MenuNode[], searchTerm: string): MenuNode[] {\r\n\t\tconst filtered: MenuNode[] = [];\r\n\t\tconst currentLang = this.translocoService.getActiveLang();\r\n\r\n\t\tfor (const node of nodes) {\r\n\t\t\t// Convert label to string for search based on active language\r\n\t\t\tconst labelText =\r\n\t\t\t\ttypeof node.label === 'string' ?\r\n\t\t\t\t\tnode.label\r\n\t\t\t\t:\t(node.label as any)?.[currentLang] || (node.label as any)?.tr || (node.label as any)?.en || '';\r\n\r\n\t\t\tconst matches = labelText.toLowerCase().includes(searchTerm);\r\n\t\t\tlet filteredChildren: MenuNode[] = [];\r\n\r\n\t\t\tif (node.children) {\r\n\t\t\t\tfilteredChildren = this.filterNodes(node.children, searchTerm);\r\n\t\t\t}\r\n\r\n\t\t\tif (matches || filteredChildren.length > 0) {\r\n\t\t\t\tfiltered.push({\r\n\t\t\t\t\t...node,\r\n\t\t\t\t\tchildren: filteredChildren.length > 0 ? filteredChildren : node.children,\r\n\t\t\t\t\texpanded: filteredChildren.length > 0\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn filtered;\r\n\t}\r\n\r\n\texpandAll(): void {\r\n\t\tconst expanded = this.expandNodes(this.filteredNodes(), true);\r\n\t\tthis.filteredNodes.set([...expanded]);\r\n\t}\r\n\r\n\tcollapseAll(): void {\r\n\t\tconst collapsed = this.expandNodes(this.filteredNodes(), false);\r\n\t\tthis.filteredNodes.set([...collapsed]);\r\n\t}\r\n\r\n\tprivate expandNodes(nodes: MenuNode[], expanded: boolean): MenuNode[] {\r\n\t\treturn nodes.map((node) => ({\r\n\t\t\t...node,\r\n\t\t\texpanded,\r\n\t\t\tchildren: node.children ? this.expandNodes(node.children, expanded) : undefined\r\n\t\t}));\r\n\t}\r\n\r\n\ttoggleNode(node: MenuNode): void {\r\n\t\tnode.expanded = !node.expanded;\r\n\t\tthis.filteredNodes.set([...this.filteredNodes()]);\r\n\t}\r\n\r\n\ttrackByKey(index: number, node: MenuNode): string {\r\n\t\treturn node.key || `${index}`;\r\n\t}\r\n}\r\n","<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section\">\r\n\t\t\t<aril-text [placeholder]=\"t('searchPages')\" [(ngModel)]=\"searchTerm\" (ngModelChange)=\"onSearchChange()\">\r\n\t\t\t</aril-text>\r\n\t\t</div>\r\n\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"quick-actions\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t[raised]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"expandAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\ticon=\"MINUS\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\t[raised]=\"false\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t(clickEvent)=\"collapseAll()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { HTTPMethods, ProxyTypes, RestClient, ServiceCall, ServiceCallStateMap, ServiceResponse } from 'aril/http';\r\n\r\nexport interface FavoritePageResponseDTO {\r\n\tid: number;\r\n\tcreator: string;\r\n\tcreated: number;\r\n\tupdater: string;\r\n\tupdated: number;\r\n\tversion: number;\r\n\tusername: string;\r\n\turl: string;\r\n\tlabel: string;\r\n}\r\n\r\nexport interface FavoritePageSaveRequestDTO {\r\n\turl: string;\r\n\tlabel: string;\r\n}\r\n\r\nexport interface FavoritePageUpdateRequestDTO {\r\n\tlabel: string;\r\n\tversion: number;\r\n}\r\n\r\nexport interface FavoritePageFilterRequestDTO {\r\n\tpageSize?: number;\r\n\tpageNumber?: number;\r\n\tsortFieldName?: string;\r\n\tsortDirection?: number; // 1=ASC, 2=DESC\r\n}\r\n\r\nexport interface SearchResultDTO<T> {\r\n\tresultInfo: {\r\n\t\ttotalPage: number;\r\n\t\ttotalItem: number;\r\n\t};\r\n\tresult: T[];\r\n\tsearchAfterValues: any[];\r\n}\r\n\r\n// API Endpoints\r\nexport const favoritePageEndpoints = {\r\n\tfilter: 'favorite-pages/filter',\r\n\tfavorite: 'favorite-pages'\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FavoritePagesService extends RestClient {\r\n\toverride states: ServiceCallStateMap<FavoritePagesService> = {};\r\n\r\n\tconstructor(private router: Router) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tgetCurrentRoutePath(): string {\r\n\t\treturn this.router.url;\r\n\t}\r\n\r\n\tnavigateToFavoritePage(favorite: FavoritePageResponseDTO): void {\r\n\t\tthis.router.navigate([favorite.url]);\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, favoritePageEndpoints.filter)\r\n\tfilterFavoritePages(post: FavoritePageFilterRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<SearchResultDTO<FavoritePageResponseDTO>>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.POST, ProxyTypes.ClientSide, favoritePageEndpoints.favorite)\r\n\tsaveFavoritePage(post: FavoritePageSaveRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<FavoritePageResponseDTO>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.PUT, ProxyTypes.ClientSide, favoritePageEndpoints.favorite)\r\n\tupdateFavoritePage(id: number, post: FavoritePageUpdateRequestDTO) {\r\n\t\treturn new Observable<ServiceResponse<FavoritePageResponseDTO>>();\r\n\t}\r\n\r\n\t@ServiceCall(HTTPMethods.DELETE, ProxyTypes.ClientSide, favoritePageEndpoints.favorite)\r\n\tdeleteFavoritePage(id: number) {\r\n\t\treturn new Observable<ServiceResponse<boolean>>();\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit, effect } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, switchMap } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { FieldComponent } from 'aril/ui/field';\r\nimport { ARiLFormModule } from 'aril/ui/form';\r\nimport { TextComponent } from 'aril/ui/text';\r\n\r\nimport {\r\n\tFavoritePageResponseDTO,\r\n\tFavoritePageSaveRequestDTO,\r\n\tFavoritePageUpdateRequestDTO,\r\n\tFavoritePagesService\r\n} from '../../favorite-pages.service';\r\n\r\ninterface ModalData {\r\n\tmode: 'add' | 'edit';\r\n\turl?: string; // For add mode\r\n\tfavorite?: FavoritePageResponseDTO; // For edit mode\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tFormsModule,\r\n\t\tARiLFormModule,\r\n\t\tFieldComponent,\r\n\t\tTextComponent,\r\n\t\tButtonComponent,\r\n\t\tTranslocoModule\r\n\t],\r\n\ttemplateUrl: './add-edit-favorite-modal.component.html'\r\n})\r\nexport class AddEditFavoriteModalComponent implements OnInit {\r\n\tfavoriteForm!: FormGroup;\r\n\tmodalData: ModalData;\r\n\r\n\tprivate subjects = {\r\n\t\tsaveFavorite: new Subject<FavoritePageSaveRequestDTO>(),\r\n\t\tupdateFavorite: new Subject<FavoritePageUpdateRequestDTO>()\r\n\t};\r\n\r\n\tsaveFavoriteService = toSignal(\r\n\t\tthis.subjects.saveFavorite.pipe(switchMap((data) => this.favoritePagesService.saveFavoritePage(data)))\r\n\t);\r\n\r\n\tupdateFavoriteService = toSignal(\r\n\t\tthis.subjects.updateFavorite.pipe(\r\n\t\t\tswitchMap((data) => this.favoritePagesService.updateFavoritePage(this.modalData.favorite?.id as number, data))\r\n\t\t)\r\n\t);\r\n\r\n\tconstructor(\r\n\t\tprivate readonly formBuilder: FormBuilder,\r\n\t\tprivate readonly dialogRef: DynamicDialogRef,\r\n\t\tprivate readonly dialogConfig: DynamicDialogConfig,\r\n\t\tprivate readonly favoritePagesService: FavoritePagesService,\r\n\t\tprivate readonly messageService: MessageService,\r\n\t\tprivate readonly translocoService: TranslocoService\r\n\t) {\r\n\t\tthis.modalData = this.dialogConfig.data;\r\n\t\tthis.initializeEffects();\r\n\t\tthis.initializeForm();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (!this.modalData || !['add', 'edit'].includes(this.modalData.mode)) {\r\n\t\t\tthis.dialogRef.close('error');\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initializeEffects(): void {\r\n\t\t// Save favorite effect\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.saveFavoriteService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\tsummary: this.translocoService.translate('favoritePages.success'),\r\n\t\t\t\t\t\tdetail: this.translocoService.translate('favoritePages.saveSuccessfully'),\r\n\t\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.dialogRef.close({ status: 'success', data: service.response });\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\r\n\t\t// Update favorite effect\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.updateFavoriteService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\tsummary: this.translocoService.translate('favoritePages.success'),\r\n\t\t\t\t\t\tdetail: this.translocoService.translate('favoritePages.updatedSuccessfully'),\r\n\t\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.dialogRef.close({ status: 'success', data: service.response });\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprivate initializeForm(): void {\r\n\t\tif (this.modalData.mode === 'add') {\r\n\t\t\tthis.favoriteForm = this.formBuilder.group({\r\n\t\t\t\tlabel: ['', [Validators.required, Validators.minLength(1), Validators.maxLength(100)]],\r\n\t\t\t\turl: [{ value: this.modalData.url || '', disabled: true }]\r\n\t\t\t});\r\n\t\t} else if (this.modalData.mode === 'edit' && this.modalData.favorite) {\r\n\t\t\tthis.favoriteForm = this.formBuilder.group({\r\n\t\t\t\tlabel: [\r\n\t\t\t\t\tthis.modalData.favorite.label,\r\n\t\t\t\t\t[Validators.required, Validators.minLength(1), Validators.maxLength(100)]\r\n\t\t\t\t],\r\n\t\t\t\turl: [{ value: this.modalData.favorite.url, disabled: true }]\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tget isAddMode(): boolean {\r\n\t\treturn this.modalData.mode === 'add';\r\n\t}\r\n\r\n\tget isEditMode(): boolean {\r\n\t\treturn this.modalData.mode === 'edit';\r\n\t}\r\n\r\n\tsubmit(): void {\r\n\t\tconst formValue = this.favoriteForm.value;\r\n\r\n\t\tif (this.isAddMode) {\r\n\t\t\tconst saveRequest: FavoritePageSaveRequestDTO = {\r\n\t\t\t\turl: this.modalData.url!,\r\n\t\t\t\tlabel: formValue.label.trim()\r\n\t\t\t};\r\n\t\t\tthis.subjects.saveFavorite.next(saveRequest);\r\n\t\t} else if (this.isEditMode && this.modalData.favorite) {\r\n\t\t\tconst updateRequest: any = {\r\n\t\t\t\tlabel: formValue.label.trim(),\r\n\t\t\t\turl: this.modalData.url!,\r\n\t\t\t\tversion: this.modalData.favorite.version\r\n\t\t\t};\r\n\t\t\tthis.subjects.updateFavorite.next(updateRequest);\r\n\t\t}\r\n\t}\r\n\r\n\tcancel(): void {\r\n\t\tthis.dialogRef.close('cancel');\r\n\t}\r\n}\r\n","<div *transloco=\"let t; read: 'favoritePages'\">\r\n\t<aril-form [formGroup]=\"favoriteForm\">\r\n\t\t<aril-field [label]=\"t('label')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-text formControlName=\"label\" [placeholder]=\"t('labelPlaceholder')\"> </aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<aril-field [label]=\"t('path')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\r\n\t\t\t<aril-text formControlName=\"url\"> </aril-text>\r\n\t\t</aril-field>\r\n\r\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\r\n\t\t\t<aril-button\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[label]=\"t('cancel')\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t(clickEvent)=\"cancel()\">\r\n\t\t\t</aril-button>\r\n\t\t\t<aril-form-submit\r\n\t\t\t\t[label]=\"t('save')\"\r\n\t\t\t\tcolor=\"success\"\r\n\t\t\t\ticon=\"CHECK\"\r\n\t\t\t\t[formGroup]=\"favoriteForm\"\r\n\t\t\t\t(validEvent)=\"submit()\" />\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit, effect, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { Subject, switchMap } from 'rxjs';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { FavoritePageResponseDTO, FavoritePagesService } from './favorite-pages.service';\r\nimport { AddEditFavoriteModalComponent } from './modals/add-edit-favorite-modal/add-edit-favorite-modal.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-favorite-pages-sidebar',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tSidebarModule,\r\n\t\tScrollPanelModule,\r\n\t\tConfirmDialogModule,\r\n\t\tPaginatorModule,\r\n\t\tDynamicDialogModule,\r\n\t\tButtonComponent,\r\n\t\tTranslocoModule,\r\n\t\tTooltipModule\r\n\t],\r\n\ttemplateUrl: './favorite-pages-sidebar.component.html',\r\n\tstyleUrls: ['./favorite-pages-sidebar.component.scss'],\r\n\tproviders: [ConfirmationService, DialogService]\r\n})\r\nexport class FavoritePagesSidebarComponent implements OnInit {\r\n\tfavoritePages = signal<FavoritePageResponseDTO[]>([]);\r\n\tallFavoritePages = signal<FavoritePageResponseDTO[]>([]);\r\n\tisCurrentPageFavorited = signal<boolean>(false);\r\n\r\n\tcurrentPage = signal<number>(1);\r\n\tpageSize = signal<number>(10);\r\n\ttotalItems = signal<number>(0);\r\n\ttotalPages = signal<number>(0);\r\n\r\n\tprivate subjects = {\r\n\t\tloadAllFavorites: new Subject<void>(),\r\n\t\tdeleteFavorite: new Subject<number>()\r\n\t};\r\n\r\n\tloadAllFavoritesService = toSignal(\r\n\t\tthis.subjects.loadAllFavorites.pipe(\r\n\t\t\tswitchMap(() =>\r\n\t\t\t\tthis.favoritePagesService.filterFavoritePages({\r\n\t\t\t\t\tpageSize: 1000,\r\n\t\t\t\t\tpageNumber: 1,\r\n\t\t\t\t\tsortFieldName: 'label',\r\n\t\t\t\t\tsortDirection: 1\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t)\r\n\t);\r\n\r\n\tdeleteFavoriteService = toSignal(\r\n\t\tthis.subjects.deleteFavorite.pipe(switchMap((id) => this.favoritePagesService.deleteFavoritePage(id)))\r\n\t);\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tprivate favoritePagesService: FavoritePagesService,\r\n\t\tprivate confirmationService: ConfirmationService,\r\n\t\tprivate messageService: MessageService,\r\n\t\tprivate dialogService: DialogService,\r\n\t\tprivate translocoService: TranslocoService\r\n\t) {\r\n\t\tthis.initializeEffects();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.loadFavoritePages();\r\n\t\tthis.checkCurrentPageStatus();\r\n\t}\r\n\r\n\tprivate initializeEffects(): void {\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.loadAllFavoritesService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.allFavoritePages.set(service.response.result);\r\n\t\t\t\t\tthis.totalItems.set(service.response.result.length);\r\n\t\t\t\t\tthis.updateClientSidePagination();\r\n\t\t\t\t\tthis.checkCurrentPageStatus();\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\r\n\t\teffect(\r\n\t\t\t() => {\r\n\t\t\t\tconst service = this.deleteFavoriteService();\r\n\t\t\t\tif (service?.response) {\r\n\t\t\t\t\tthis.loadFavoritePages();\r\n\t\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\tsummary: this.translocoService.translate('favoritePages.success'),\r\n\t\t\t\t\t\tdetail: this.translocoService.translate('favoritePages.deletedSuccessfully'),\r\n\t\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tget visible(): boolean {\r\n\t\treturn this.layoutService.state.favoritePagesSidebarVisible;\r\n\t}\r\n\r\n\tset visible(value: boolean) {\r\n\t\tthis.layoutService.state.favoritePagesSidebarVisible = value;\r\n\t\tif (value) {\r\n\t\t\tthis.checkCurrentPageStatus();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadFavoritePages(): void {\r\n\t\tthis.subjects.loadAllFavorites.next();\r\n\t}\r\n\r\n\tprivate updateClientSidePagination(): void {\r\n\t\tconst allFavorites = this.allFavoritePages();\r\n\t\tconst totalItems = allFavorites.length;\r\n\t\tconst pageSize = this.pageSize();\r\n\t\tconst currentPage = this.currentPage();\r\n\r\n\t\tconst totalPages = Math.ceil(totalItems / pageSize);\r\n\t\tthis.totalPages.set(totalPages);\r\n\r\n\t\tconst startIndex = (currentPage - 1) * pageSize;\r\n\t\tconst endIndex = Math.min(startIndex + pageSize, totalItems);\r\n\r\n\t\tconst currentPageData = allFavorites.slice(startIndex, endIndex);\r\n\t\tthis.favoritePages.set(currentPageData);\r\n\t}\r\n\r\n\tprivate checkCurrentPageStatus(): void {\r\n\t\tconst currentPath = this.favoritePagesService.getCurrentRoutePath();\r\n\t\tconst allFavorites = this.allFavoritePages();\r\n\t\tconst isFound = allFavorites.some((fav) => fav.url === currentPath);\r\n\r\n\t\tthis.isCurrentPageFavorited.set(isFound);\r\n\t}\r\n\r\n\taddCurrentPageToFavorites(): void {\r\n\t\tconst currentPath = this.favoritePagesService.getCurrentRoutePath();\r\n\r\n\t\tconst ref = this.dialogService.open(AddEditFavoriteModalComponent, {\r\n\t\t\theader: this.translocoService.translate('favoritePages.addToFavorites'),\r\n\t\t\twidth: '500px',\r\n\t\t\tmodal: true,\r\n\t\t\tclosable: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmode: 'add',\r\n\t\t\t\turl: currentPath\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe((result) => {\r\n\t\t\tif (result?.status === 'success') {\r\n\t\t\t\tthis.loadFavoritePages();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tremoveCurrentPageFromFavorites(): void {\r\n\t\tconst currentPath = this.favoritePagesService.getCurrentRoutePath();\r\n\t\tconst favorites = this.favoritePages();\r\n\t\tconst currentFavorite = favorites.find((fav) => fav.url === currentPath);\r\n\r\n\t\tif (currentFavorite) {\r\n\t\t\tthis.confirmationService.confirm({\r\n\t\t\t\tmessage: this.translocoService.translate('favoritePages.confirmDelete'),\r\n\t\t\t\theader: this.translocoService.translate('favoritePages.deleteConfirmTitle'),\r\n\t\t\t\ticon: 'pi pi-info-circle',\r\n\t\t\t\tacceptLabel: this.translocoService.translate('acceptButtonLabel'),\r\n\t\t\t\trejectLabel: this.translocoService.translate('rejectButtonLabel'),\r\n\t\t\t\tacceptButtonStyleClass: 'p-button-success',\r\n\t\t\t\trejectButtonStyleClass: 'p-button-danger p-button-outlined',\r\n\t\t\t\taccept: () => {\r\n\t\t\t\t\tthis.subjects.deleteFavorite.next(currentFavorite.id);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\teditFavorite(favorite: FavoritePageResponseDTO, event: Event): void {\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tconst ref = this.dialogService.open(AddEditFavoriteModalComponent, {\r\n\t\t\theader: this.translocoService.translate('favoritePages.editFavorite'),\r\n\t\t\twidth: '500px',\r\n\t\t\tmodal: true,\r\n\t\t\tclosable: true,\r\n\t\t\tdata: {\r\n\t\t\t\tmode: 'edit',\r\n\t\t\t\tfavorite: favorite\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tref.onClose.subscribe((result) => {\r\n\t\t\tif (result?.status === 'success') {\r\n\t\t\t\tthis.loadFavoritePages();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteFavorite(favorite: FavoritePageResponseDTO, event: Event): void {\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tthis.confirmationService.confirm({\r\n\t\t\ttarget: event.target as EventTarget,\r\n\t\t\tmessage: this.translocoService.translate('favoritePages.confirmDelete', { label: favorite.label }),\r\n\t\t\theader: this.translocoService.translate('favoritePages.deleteConfirmTitle'),\r\n\t\t\ticon: 'pi pi-info-circle',\r\n\t\t\tacceptLabel: this.translocoService.translate('acceptButtonLabel'),\r\n\t\t\trejectLabel: this.translocoService.translate('rejectButtonLabel'),\r\n\t\t\tacceptButtonStyleClass: 'p-button-success',\r\n\t\t\trejectButtonStyleClass: 'p-button-danger p-button-outlined',\r\n\t\t\taccept: () => {\r\n\t\t\t\tthis.subjects.deleteFavorite.next(favorite.id);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tnavigateToFavorite(favorite: FavoritePageResponseDTO): void {\r\n\t\tthis.favoritePagesService.navigateToFavoritePage(favorite);\r\n\t\tthis.visible = false;\r\n\t}\r\n\r\n\ttrackByFavoriteId(index: number, favorite: FavoritePageResponseDTO): number {\r\n\t\treturn favorite.id;\r\n\t}\r\n\r\n\tonPageChange(event: any): void {\r\n\t\tthis.currentPage.set(event.page + 1);\r\n\t\tthis.pageSize.set(event.rows);\r\n\t\tthis.updateClientSidePagination(); // Update pagination client-side, no API call\r\n\t}\r\n}\r\n","<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-favorite-pages-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'favoritePages'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"favorite-pages-content\">\r\n\t\t@if (isCurrentPageFavorited()) {\r\n\t\t\t<div class=\"current-favorited-message\">\r\n\t\t\t\t<div class=\"message-content\">\r\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\r\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"add-section\">\r\n\t\t\t@if (!isCurrentPageFavorited()) {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\r\n\t\t\t\t\ticon=\"PLUS\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t} @else {\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\r\n\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (favoritePages().length > 0) {\r\n\t\t\t<div class=\"favorites-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"favorites-items\">\r\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\r\n\t\t\t\t\t\t\t<div class=\"favorite-item\" [class.default-item]=\"favorite.id < 0\" (click)=\"navigateToFavorite(favorite)\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t\t\ticon=\"PENCIL\"\r\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"warning\"\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('editFavorite')\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t\t(clickEvent)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\t\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('deleteFavorite')\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t\t(clickEvent)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-heart empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\t\t<div>\r\n\t\t\t<p-paginator\r\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\r\n\t\t\t\t[rows]=\"pageSize()\"\r\n\t\t\t\t[totalRecords]=\"totalItems()\"\r\n\t\t\t\t[showCurrentPageReport]=\"true\"\r\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\r\n\t\t\t\t[showFirstLastIcon]=\"false\"\r\n\t\t\t\t[showPageLinks]=\"false\"\r\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\r\n\t\t\t</p-paginator>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n","import { Injectable, computed, signal } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nimport { MenuChangeEvent } from './menuchangeevent';\r\n\r\ninterface MenuConfig {\r\n\titems: PluginMenuItem[];\r\n\tprefix?: string;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AppMenuService {\r\n\tprivate menuSource = new Subject<MenuChangeEvent>();\r\n\tprivate resetSource = new Subject();\r\n\r\n\tpublic menuConfig = signal<MenuConfig>({ items: [], prefix: undefined });\r\n\tpublic activeRootMenuItemKey = signal<string | undefined>(undefined);\r\n\r\n\tpublic menuItems = computed(() => {\r\n\t\tconst config = this.menuConfig();\r\n\t\t// config.items.unshift({ root: true, label: 'Home', icon: 'pi pi-fw pi-home', routerLink: '' });\r\n\r\n\t\tif (config.prefix) return config.items.map((item) => this.addPrefix(item, config.prefix));\r\n\t\telse return config.items;\r\n\t});\r\n\r\n\tmenuSource$ = this.menuSource.asObservable();\r\n\tresetSource$ = this.resetSource.asObservable();\r\n\r\n\taddPrefix(menuItem: PluginMenuItem, appPrefix: string | undefined) {\r\n\t\tif (menuItem.items) {\r\n\t\t\tmenuItem.items = menuItem.items.map((item) => this.addPrefix(item, appPrefix));\r\n\t\t} else {\r\n\t\t\tconst url = menuItem['root'] ? `/${appPrefix}` : `/${appPrefix}/${menuItem.routerLink}`;\r\n\r\n\t\t\tmenuItem.routerLink = url;\r\n\t\t}\r\n\t\treturn menuItem;\r\n\t}\r\n\r\n\tonMenuStateChange(event: MenuChangeEvent) {\r\n\t\tthis.menuSource.next(event);\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.resetSource.next(true);\r\n\t}\r\n}\r\n","import { AnimationEvent, animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, HostBinding, Input, OnDestroy, OnInit, ViewChild, inject } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { DomHandler } from 'primeng/dom';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: '[app-menuitem]',\r\n\ttemplate: `\r\n\t\t<ng-container>\r\n\t\t\t@if (root) {\r\n\t\t\t\t<div class=\"layout-menuitem-root-text\">\r\n\t\t\t\t\t{{ item.label[activeLang()!] }}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t\t@if (item.items?.length) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[ngClass]=\"{ 'active-root-menu-item': root && key == menuService.activeRootMenuItemKey() }\"\r\n\t\t\t\t\t(click)=\"itemClick($event)\"\r\n\t\t\t\t\t(mouseenter)=\"onMouseEnter()\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\tpRipple\r\n\t\t\t\t\t[pTooltip]=\"item.label[activeLang()!]\"\r\n\t\t\t\t\t[tooltipDisabled]=\"!(isSlim && root && !active)\">\r\n\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\t\t\t\t\t<span class=\"layout-menuitem-text\">{{ item.label[activeLang()!] }}</span>\r\n\t\t\t\t\t@if (item.items) {\r\n\t\t\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\r\n\t\t\t\t\t}\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[ngClass]=\"{ 'active-root-menu-item': root && key == menuService.activeRootMenuItemKey() }\"\r\n\t\t\t\t\t(click)=\"itemClick($event)\"\r\n\t\t\t\t\t(mouseenter)=\"onMouseEnter()\"\r\n\t\t\t\t\t[routerLink]=\"item.routerLink\"\r\n\t\t\t\t\trouterLinkActive=\"active-route\"\r\n\t\t\t\t\t[routerLinkActiveOptions]=\"{\r\n\t\t\t\t\t\tpaths: 'exact',\r\n\t\t\t\t\t\tqueryParams: 'ignored',\r\n\t\t\t\t\t\tmatrixParams: 'ignored',\r\n\t\t\t\t\t\tfragment: 'ignored'\r\n\t\t\t\t\t}\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\tpRipple\r\n\t\t\t\t\t[pTooltip]=\"item.label[activeLang()!]\"\r\n\t\t\t\t\t[tooltipDisabled]=\"!(isSlim && root)\">\r\n\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"layout-menuitem-icon\"></i>\r\n\r\n\t\t\t\t\t@if (item.label && item.label[activeLang()!]) {\r\n\t\t\t\t\t\t<span class=\"layout-menuitem-text\">{{ item.label[activeLang()!] }}</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@if (item.items) {\r\n\t\t\t\t\t\t<i class=\"pi pi-fw pi-angle-down layout-submenu-toggler\"></i>\r\n\t\t\t\t\t}\r\n\t\t\t\t</a>\r\n\t\t\t}\r\n\r\n\t\t\t@if (item.items) {\r\n\t\t\t\t<ul #submenu [@children]=\"submenuAnimation\" (@children.done)=\"onSubmenuAnimated($event)\">\r\n\t\t\t\t\t@for (child of item.items; track child; let i = $index) {\r\n\t\t\t\t\t\t<li app-menuitem [item]=\"child\" [index]=\"i\" [parentKey]=\"key\"></li>\r\n\t\t\t\t\t}\r\n\t\t\t\t</ul>\r\n\t\t\t}\r\n\t\t</ng-container>\r\n\t`,\r\n\timports: [NgClass, RouterLink, RouterLinkActive, TooltipModule, RippleModule],\r\n\tanimations: [\r\n\t\ttrigger('children', [\r\n\t\t\tstate(\r\n\t\t\t\t'collapsed',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\theight: '0'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'expanded',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\theight: '*'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'hidden',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\tdisplay: 'none'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\tstate(\r\n\t\t\t\t'visible',\r\n\t\t\t\tstyle({\r\n\t\t\t\t\tdisplay: 'block'\r\n\t\t\t\t})\r\n\t\t\t),\r\n\t\t\ttransition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\r\n\t\t])\r\n\t],\r\n\tstyles: [\r\n\t\t'.active-root-menu-item { background-color: var(--primary-color); & > i,span { color: var(--primary-foreground) !important; } & > span { font-weight: 700; } }'\r\n\t]\r\n})\r\nexport class AppMenuItemComponent implements OnInit, OnDestroy {\r\n\t@Input() item!: PluginMenuItem;\r\n\r\n\t@Input() index!: number;\r\n\r\n\t@Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\r\n\r\n\t@Input() parentKey!: string;\r\n\r\n\t@ViewChild('submenu') submenu!: ElementRef;\r\n\r\n\tactive = false;\r\n\r\n\tmenuSourceSubscription: Subscription;\r\n\r\n\tmenuResetSubscription: Subscription;\r\n\r\n\tkey: string = '';\r\n\r\n\tactiveLang = toSignal(this.translocoService.langChanges$);\r\n\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic router: Router,\r\n\t\tpublic menuService: AppMenuService,\r\n\t\tprivate readonly translocoService: TranslocoService\r\n\t) {\r\n\t\tthis.menuSourceSubscription = this.menuService.menuSource$.subscribe((value) => {\r\n\t\t\tPromise.resolve(null).then(() => {\r\n\t\t\t\tif (value.routeEvent) {\r\n\t\t\t\t\tthis.active = value.key === this.key || value.key.startsWith(this.key + '-') ? true : false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (value.key !== this.key && !value.key.startsWith(this.key + '-')) {\r\n\t\t\t\t\t\tthis.active = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {\r\n\t\t\tthis.active = false;\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((params: any) => {\r\n\t\t\tif (this.isSlimPlus || this.isSlim || this.isHorizontal) {\r\n\t\t\t\tif (!this.layoutService.mfeAppItemClicked()) this.active = false;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.item.routerLink) {\r\n\t\t\t\t\tthis.updateActiveStateFromRoute();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tthis.item.routerLink === params.url ||\r\n\t\t\t\tthis.item.routerLink === params.urlAfterRedirects ||\r\n\t\t\t\t(this.item.routerLink &&\r\n\t\t\t\t\tthis.router.isActive(this.item.routerLink, {\r\n\t\t\t\t\t\tmatrixParams: 'ignored',\r\n\t\t\t\t\t\tqueryParams: 'ignored',\r\n\t\t\t\t\t\tfragment: 'ignored',\r\n\t\t\t\t\t\tpaths: 'subset'\r\n\t\t\t\t\t}))\r\n\t\t\t) {\r\n\t\t\t\tthis.menuService.activeRootMenuItemKey.set(this.key.charAt(0));\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\r\n\t\tif (!(this.isSlimPlus || this.isSlim || this.isHorizontal) && this.item.routerLink) {\r\n\t\t\tthis.updateActiveStateFromRoute();\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewChecked() {\r\n\t\tif (\r\n\t\t\tthis.root &&\r\n\t\t\tthis.active &&\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\tthis.calculatePosition(this.submenu?.nativeElement, this.submenu?.nativeElement.parentElement);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateActiveStateFromRoute() {\r\n\t\tlet activeRoute = this.router.isActive(this.item.routerLink![0], {\r\n\t\t\tpaths: 'exact',\r\n\t\t\tqueryParams: 'ignored',\r\n\t\t\tmatrixParams: 'ignored',\r\n\t\t\tfragment: 'ignored'\r\n\t\t});\r\n\r\n\t\tif (activeRoute) {\r\n\t\t\tthis.menuService.onMenuStateChange({ key: this.key, routeEvent: true });\r\n\t\t}\r\n\t}\r\n\r\n\tonSubmenuAnimated(event: AnimationEvent) {\r\n\t\tif (\r\n\t\t\tevent.toState === 'visible' &&\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\tconst el = <HTMLUListElement>event.element;\r\n\t\t\tconst elParent = <HTMLUListElement>el.parentElement;\r\n\t\t\tthis.calculatePosition(el, elParent);\r\n\t\t}\r\n\t}\r\n\r\n\tcalculatePosition(overlay: HTMLElement, target: HTMLElement) {\r\n\t\tif (overlay) {\r\n\t\t\tconst { left, top } = target.getBoundingClientRect();\r\n\t\t\tconst [vWidth, vHeight] = [window.innerWidth, window.innerHeight];\r\n\t\t\tconst [oWidth, oHeight] = [overlay.offsetWidth, overlay.offsetHeight];\r\n\t\t\tconst scrollbarWidth = DomHandler.calculateScrollbarWidth();\r\n\t\t\t// reset\r\n\t\t\toverlay.style.top = '';\r\n\t\t\toverlay.style.left = '';\r\n\r\n\t\t\tif (this.layoutService.isHorizontal()) {\r\n\t\t\t\tconst width = left + oWidth + scrollbarWidth;\r\n\t\t\t\toverlay.style.left = vWidth < width ? `${left - (width - vWidth)}px` : `${left}px`;\r\n\t\t\t} else if (this.layoutService.isSlim() || this.layoutService.isSlimPlus()) {\r\n\t\t\t\tconst height = top + oHeight;\r\n\t\t\t\toverlay.style.top = vHeight < height ? `${top - (height - vHeight)}px` : `${top}px`;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\titemClick(event: Event) {\r\n\t\t// avoid processing disabled items\r\n\t\tif (this.item.disabled) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// navigate with hover\r\n\t\tif ((this.root && this.isSlim) || this.isHorizontal || this.isSlimPlus) {\r\n\t\t\tthis.layoutService.state.menuHoverActive = !this.layoutService.state.menuHoverActive;\r\n\t\t}\r\n\r\n\t\t// execute command\r\n\t\tif (this.item.command) {\r\n\t\t\tthis.item.command({ originalEvent: event, item: this.item as unknown as MenuItem });\r\n\t\t}\r\n\r\n\t\t// toggle active state\r\n\t\tif (this.item.items) {\r\n\t\t\tthis.active = !this.active;\r\n\r\n\t\t\tif (this.root && this.active && (this.isSlim || this.isHorizontal || this.isSlimPlus)) {\r\n\t\t\t\tthis.layoutService.onOverlaySubmenuOpen();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.layoutService.isMobile()) {\r\n\t\t\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isSlim || this.isHorizontal || this.isSlimPlus) {\r\n\t\t\t\tthis.menuService.reset();\r\n\t\t\t\tthis.layoutService.state.menuHoverActive = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.menuService.onMenuStateChange({ key: this.key });\r\n\t}\r\n\r\n\tonMouseEnter() {\r\n\t\t// activate item on hover\r\n\t\tif ((<any>globalThis).isHostMode && !this.item.items?.length) return;\r\n\r\n\t\tif (this.root && (this.isSlim || this.isHorizontal || this.isSlimPlus) && this.layoutService.isDesktop()) {\r\n\t\t\tif (this.layoutService.state.menuHoverActive) {\r\n\t\t\t\tthis.active = true;\r\n\t\t\t\tthis.menuService.onMenuStateChange({ key: this.key });\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tget submenuAnimation() {\r\n\t\tif (\r\n\t\t\tthis.layoutService.isDesktop() &&\r\n\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus())\r\n\t\t) {\r\n\t\t\treturn this.active ? 'visible' : 'hidden';\r\n\t\t} else\r\n\t\t\treturn (\r\n\t\t\t\tthis.root ? 'expanded'\r\n\t\t\t\t: this.active ? 'expanded'\r\n\t\t\t\t: 'collapsed'\r\n\t\t\t);\r\n\t}\r\n\r\n\tget isHorizontal() {\r\n\t\treturn this.layoutService.isHorizontal();\r\n\t}\r\n\r\n\tget isSlim() {\r\n\t\treturn this.layoutService.isSlim();\r\n\t}\r\n\r\n\tget isSlimPlus() {\r\n\t\treturn this.layoutService.isSlimPlus();\r\n\t}\r\n\r\n\t@HostBinding('class.active-menuitem')\r\n\tget activeClass() {\r\n\t\treturn this.active && !this.root;\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.menuSourceSubscription) {\r\n\t\t\tthis.menuSourceSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.menuResetSubscription) {\r\n\t\t\tthis.menuResetSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-menu',\r\n\timports: [AppMenuItemComponent],\r\n\ttemplateUrl: './app.menu.component.html'\r\n})\r\nexport class AppMenuComponent {\r\n\tmenuService = inject(AppMenuService);\r\n\tisHostMode = (<any>globalThis).isHostMode;\r\n\thostMenuItems = (<any>globalThis).hostMenuItems;\r\n}\r\n","<ul class=\"layout-menu h-full flex-column\">\r\n\t@for (item of isHostMode ? hostMenuItems() : menuService.menuItems(); track $index) {\r\n\t\t@if (item.separator) {\r\n\t\t\t<li class=\"menu-separator\"></li>\r\n\t\t} @else {\r\n\t\t\t<li\r\n\t\t\t\tapp-menuitem\r\n\t\t\t\t[item]=\"item\"\r\n\t\t\t\t[index]=\"$index\"\r\n\t\t\t\t[root]=\"true\"\r\n\t\t\t\t[class.mt-auto]=\"item.label && item.label['en'] === 'Management'\"></li>\r\n\t\t}\r\n\t}\r\n</ul>\r\n","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuComponent } from '../menu/app.menu.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-sidebar',\r\n\timports: [RouterLink, AppMenuComponent],\r\n\ttemplateUrl: './app.sidebar.component.html'\r\n})\r\nexport class AppSidebarComponent {\r\n\tconstructor(\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic el: ElementRef\r\n\t) {}\r\n\r\n\ttimeout: any = null;\r\n\r\n\t@ViewChild('menuContainer') menuContainer!: ElementRef;\r\n\r\n\tonMouseEnter() {\r\n\t\tif (!this.layoutService.state.anchored) {\r\n\t\t\tif (this.timeout) {\r\n\t\t\t\tclearTimeout(this.timeout);\r\n\t\t\t\tthis.timeout = null;\r\n\t\t\t}\r\n\t\t\tthis.layoutService.state.sidebarActive = true;\r\n\t\t}\r\n\t}\r\n\r\n\tonMouseLeave() {\r\n\t\tif (!this.layoutService.state.anchored) {\r\n\t\t\tif (!this.timeout) {\r\n\t\t\t\tthis.timeout = setTimeout(() => (this.layoutService.state.sidebarActive = false), 300);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tanchor() {\r\n\t\tthis.layoutService.state.anchored = !this.layoutService.state.anchored;\r\n\t}\r\n}\r\n","<div class=\"layout-sidebar\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n\t<div class=\"sidebar-header\">\r\n\t\t<!-- <a [routerLink]=\"['/']\" class=\"app-logo\">\r\n\t\t\t<svg\r\n\t\t\t\twidth=\"21\"\r\n\t\t\t\theight=\"22\"\r\n\t\t\t\tviewBox=\"0 0 21 22\"\r\n\t\t\t\tfill=\"none\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\tclass=\"app-logo-small\">\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M10.4851 0L0 20.9465H3.53702L10.4856 6.07843L17.2944 20.9465H20.9715L10.4851 0Z\"\r\n\t\t\t\t\tfill=\"var(--logo-color)\" />\r\n\t\t\t\t<path d=\"M13.8399 15.793L16.2076 21.0019H11.7681L13.8399 15.793Z\" fill=\"var(--logo-color)\" />\r\n\t\t\t\t<path d=\"M9.04637 21.0019L6.67867 15.793L4.60693 21.0019H9.04637Z\" fill=\"var(--logo-color)\" />\r\n\t\t\t</svg>\r\n\t\t</a> -->\r\n\t\t<button class=\"layout-sidebar-anchor p-link z-2 mb-2\" type=\"button\" (click)=\"anchor()\"></button>\r\n\t</div>\r\n\r\n\t<div #menuContainer class=\"layout-menu-container\">\r\n\t\t<app-menu></app-menu>\r\n\t</div>\r\n</div>\r\n","export enum LanguageCode {\r\n\tTR = 'tr',\r\n\tEN = 'en'\r\n}","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BreadcrumbService {\r\n\tkeyValues = signal<{ [key: string]: string }>({});\r\n\r\n\tset(key: string, value: string): void {\r\n\t\tthis.keyValues.update((obj) => ({ ...obj, [key]: value }));\r\n\t}\r\n\r\n\tgetValue(key: string): string {\r\n\t\treturn this.keyValues()[key];\r\n\t}\r\n}\r\n","import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, effect } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, RouterLink } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { BreadcrumbService } from '../../service/breadcrumb.service';\r\n\r\ninterface Breadcrumb {\r\n\tlabel: string;\r\n\turl?: string;\r\n}\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-breadcrumb',\r\n\timports: [NgTemplateOutlet, AsyncPipe, RouterLink, BreadcrumbModule, NgClass],\r\n\ttemplateUrl: './app.breadcrumb.component.html'\r\n})\r\nexport class AppBreadcrumbComponent {\r\n\tprivate readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n\tprivate breadcrumbsSubscription!: Subscription;\r\n\r\n\treadonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\tbreadcrumbs: MenuItem[] = [];\r\n\r\n\tconstructor(\r\n\t\tprivate router: Router,\r\n\t\tprivate breadcrumbService: BreadcrumbService\r\n\t) {\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\r\n\t\t\tconst root = this.router.routerState.snapshot.root;\r\n\t\t\tconst breadcrumbs: Breadcrumb[] = [];\r\n\r\n\t\t\tthis.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n\t\t\tthis._breadcrumbs$.next(breadcrumbs);\r\n\t\t});\r\n\r\n\t\teffect(() => {\r\n\t\t\tif (this.breadcrumbService.keyValues()) {\r\n\t\t\t\tconst root = this.router.routerState.snapshot.root;\r\n\t\t\t\tconst breadcrumbs: Breadcrumb[] = [];\r\n\r\n\t\t\t\tthis.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n\t\t\t\tthis._breadcrumbs$.next(breadcrumbs);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.breadcrumbsSubscription = this.breadcrumbs$.subscribe((breadcrumbs) => {\r\n\t\t\tthis.breadcrumbs = breadcrumbs.map((breadcrumb) => ({\r\n\t\t\t\tlabel: breadcrumb.label,\r\n\t\t\t\turl: breadcrumb.url\r\n\t\t\t}));\r\n\t\t\tthis.breadcrumbs.unshift({ icon: 'pi pi-home', url: '/' });\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.breadcrumbsSubscription) {\r\n\t\t\tthis.breadcrumbsSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n\t\tconst routeUrl = parentUrl.concat(route.url.map((url) => url.path));\r\n\t\tconst breadcrumb = route.data['breadcrumb'];\r\n\t\tconst parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n\t\tif (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n\t\t\tconst keyRegex = new RegExp('(?<=\\\\{)([^}]+)(?=\\\\})');\r\n\t\t\tconst key = (keyRegex.exec(route.data['breadcrumb']) || [])[0]!;\r\n\t\t\tconst value = this.breadcrumbService.getValue(key);\r\n\r\n\t\t\tif (key && value) {\r\n\t\t\t\tbreadcrumbs.push({\r\n\t\t\t\t\tlabel: (route.data['breadcrumb'] as string).replace(`{${key}}`, value),\r\n\t\t\t\t\turl: '/' + routeUrl.join('/')\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tbreadcrumbs.push({\r\n\t\t\t\t\tlabel: route.data['breadcrumb'],\r\n\t\t\t\t\turl: '/' + routeUrl.join('/')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (route.firstChild) {\r\n\t\t\tthis.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n\t\t}\r\n\t}\r\n}\r\n","<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\" [style]=\"{ border: 'none', background: '#EFF3F8' }\">\r\n\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t<a [routerLink]=\"item.url\">\r\n\t\t\t<span [ngClass]=\"[item.icon ? item.icon : '', 'text-500']\"></span>\r\n\t\t\t<span class=\"text-500\">{{ item.label }}</span>\r\n\t\t</a>\r\n\t</ng-template>\r\n</p-breadcrumb>\r\n","import { UpperCasePipe } from '@angular/common';\r\nimport { Component, ElementRef, ViewChild, inject, signal } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { MenubarModule } from 'primeng/menubar';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { PubSubService } from 'aril/util/pub-sub';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { LanguageCode } from '../../service/interfaces/enum';\r\nimport { Language, LanguageChangeEvent } from '../../service/interfaces/interfaces';\r\nimport { AppBreadcrumbComponent } from '../breadcrumb/app.breadcrumb.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-topbar',\r\n\timports: [\r\n\t\tButtonModule,\r\n\t\tAppBreadcrumbComponent,\r\n\t\tUpperCasePipe,\r\n\t\tFormsModule,\r\n\t\tDividerModule,\r\n\t\tBadgeModule,\r\n\t\tMenubarModule,\r\n\t\tDropdownModule,\r\n\t\tTranslocoModule\r\n\t],\r\n\ttemplateUrl: './app.topbar.component.html',\r\n\tstyleUrls: ['./app.topbar.component.scss']\r\n})\r\nexport class AppTopbarComponent {\r\n\t@ViewChild('menubutton') menuButton!: ElementRef;\r\n\r\n\tusername!: string;\r\n\tlayoutService = inject(LayoutService);\r\n\tsearch: string = '';\r\n\r\n\tfilePath = signal<string>('');\r\n\tisNotificationsVisible = signal<boolean>(false);\r\n\r\n\tcurrentLang: LanguageCode = (localStorage.getItem('lang') as LanguageCode) || LanguageCode.TR;\r\n\r\n\tlanguages: Language[] = [\r\n\t\t{ name: 'TR', code: LanguageCode.TR, flag: 'assets/images/flags/tr.svg' },\r\n\t\t{ name: 'EN', code: LanguageCode.EN, flag: 'assets/images/flags/gb.svg' }\r\n\t];\r\n\r\n\tconstructor(\r\n\t\tprivate readonly translocoService: TranslocoService,\r\n\t\tprivate readonly pubSubService: PubSubService,\r\n\t\tprivate readonly keycloak: KeycloakService\r\n\t) {\r\n\t\tthis.translocoService.setActiveLang(this.currentLang);\r\n\t\tthis.publishLanguageChange(this.currentLang);\r\n\r\n\t\tif ((<any>globalThis).activeHost) {\r\n\t\t\tswitch ((<any>globalThis).activeHost) {\r\n\t\t\t\tcase Apps.YEAP:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.THOR:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/thor-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.LENA:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/lena-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tswitch ((<any>globalThis).activeMF) {\r\n\t\t\t\tcase Apps.HES:\r\n\t\t\t\tcase Apps.CTS:\r\n\t\t\t\tcase Apps.SIS:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/lena-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.CRM:\r\n\t\t\t\tcase Apps.BILLING:\r\n\t\t\t\tcase Apps.PAYMENT:\r\n\t\t\t\tcase Apps.WDM:\r\n\t\t\t\tcase Apps.MNG:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/thor-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase Apps.MW:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.filePath.update(() => 'assets/images/yeap-logo.png');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t}\r\n\r\n\tonMenuButtonClick(): void {\r\n\t\tthis.layoutService.onMenuToggle();\r\n\t}\r\n\r\n\tonProfileButtonClick(): void {\r\n\t\tthis.layoutService.showProfileSidebar();\r\n\t}\r\n\r\n\tonConfigButtonClick(): void {\r\n\t\tthis.layoutService.showConfigSidebar();\r\n\t}\r\n\r\n\tonHistoryButtonClick(): void {\r\n\t\tthis.layoutService.showHistorySidebar();\r\n\t}\r\n\r\n\tonSiteMapButtonClick(): void {\r\n\t\tthis.layoutService.showSiteMapSidebar();\r\n\t}\r\n\r\n\tonFavoritePagesButtonClick(): void {\r\n\t\tthis.layoutService.showFavoritePagesSidebar();\r\n\t}\r\n\r\n\tonNotificationsButtonClick(): void {\r\n\t\tthis.isNotificationsVisible.update((visible) => !visible);\r\n\t}\r\n\r\n\tonNotificationsClose(): void {\r\n\t\tthis.isNotificationsVisible.set(false);\r\n\t}\r\n\r\n\tonLanguageChange(): void {\r\n\t\tlocalStorage.setItem('lang', this.currentLang);\r\n\r\n\t\tthis.translocoService.setActiveLang(this.currentLang);\r\n\r\n\t\tthis.publishLanguageChange(this.currentLang);\r\n\t}\r\n\r\n\tprivate publishLanguageChange(language: LanguageCode): void {\r\n\t\tconst event: LanguageChangeEvent = {\r\n\t\t\tname: 'languageChanged',\r\n\t\t\tdata: {\r\n\t\t\t\tpath: '',\r\n\t\t\t\tcustom: {\r\n\t\t\t\t\tlanguage\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.pubSubService.publish(event);\r\n\t}\r\n\r\n\tgetFlagPath(lang: LanguageCode): string {\r\n\t\tswitch (lang) {\r\n\t\t\tcase LanguageCode.TR:\r\n\t\t\t\treturn 'assets/images/flags/tr.svg';\r\n\t\t\tcase LanguageCode.EN:\r\n\t\t\t\treturn 'assets/images/flags/gb.svg';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'assets/images/flags/tr.svg';\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"layout-topbar\">\r\n\t<div class=\"topbar-start\">\r\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\r\n\t\t\t<i class=\"pi pi-bars\"></i>\r\n\t\t</button>\r\n\t\t<img [src]=\"filePath()\" class=\"topbar-logo mr-3\" alt=\"logo\" />\r\n\t</div>\r\n\r\n\t<div class=\"topbar-search\" *transloco=\"let t; read: ''\">\r\n\t\t<span class=\"p-input-icon-left\">\r\n\t\t\t<i class=\"pi pi-search\"></i>\r\n\t\t\t<input\r\n\t\t\t\ttype=\"text\"\r\n\t\t\t\tpInputText\r\n\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t[placeholder]=\"t('searchGeneral')\"\r\n\t\t\t\tstyle=\"background: #eff3f8; border: none; height: 42px\"\r\n\t\t\t\tclass=\"p-inputtext p-component p-element topbar-search-input\" />\r\n\t\t</span>\r\n\t</div>\r\n\r\n\t<div class=\"topbar-end mr-2\">\r\n\t\t<ul class=\"topbar-menu\">\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-sitemap\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onSiteMapButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-history\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onHistoryButtonClick()\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\ticon=\"pi pi-heart\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\t[rounded]=\"true\"\r\n\t\t\t\t\t(click)=\"onFavoritePagesButtonClick()\" />\r\n\t\t\t</li>\r\n\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\r\n\t\t\t\t\t{{ username[0] | uppercase }}\r\n\t\t\t\t</p-button>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<i\r\n\t\t\t\t\tclass=\"pi pi-bell notification-icon\"\r\n\t\t\t\t\tseverity=\"info\"\r\n\t\t\t\t\tpBadge\r\n\t\t\t\t\t[value]=\"0\"\r\n\t\t\t\t\t(click)=\"onNotificationsButtonClick()\"></i>\r\n\t\t\t</li>\r\n\t\t\t<li class=\"topbar-menu-item\">\r\n\t\t\t\t<p-dropdown\r\n\t\t\t\t\t[options]=\"languages\"\r\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\r\n\t\t\t\t\t(ngModelChange)=\"onLanguageChange()\"\r\n\t\t\t\t\toptionLabel=\"name\"\r\n\t\t\t\t\toptionValue=\"code\"\r\n\t\t\t\t\t[showClear]=\"false\"\r\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\r\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"getFlagPath(currentLang)\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span class=\"language-text\">{{ currentLang | uppercase }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\r\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-dropdown>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t</div>\r\n</div>\r\n\r\n<app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb>\r\n","/* eslint-disable @angular-eslint/component-selector */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { IconFieldModule } from 'primeng/iconfield';\r\nimport { InputIconModule } from 'primeng/inputicon';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\n\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { BehaviorSubject, firstValueFrom } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { ButtonComponent } from 'aril/ui/button';\r\nimport { TextAreaComponent } from 'aril/ui/textArea';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-chatbot',\r\n\timports: [\r\n\t\tButtonModule,\r\n\t\tSidebarModule,\r\n\t\tRadioButtonModule,\r\n\t\tFormsModule,\r\n\t\tInputIconModule,\r\n\t\tIconFieldModule,\r\n\t\tInputTextModule,\r\n\t\tMessagesModule,\r\n\t\tTextAreaComponent,\r\n\t\tRatingModule,\r\n\t\tButtonComponent\r\n\t],\r\n\ttemplateUrl: './app.chatbot.component.html',\r\n\tstyleUrl: './app.chatbot.component.scss'\r\n})\r\nexport class AppChatbotComponent {\r\n\tchatbotVisible = false;\r\n\tprojectName!: string;\r\n\tquestionQuery!: string;\r\n\tqueryList: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\terror!: string;\r\n\thistoryList: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n\tisTyping = false;\r\n\ttypingInterval: any;\r\n\ttypingText = '.';\r\n\tusername: string;\r\n\tvisibleGiveFeedback = false;\r\n\tfeedbackComments = '';\r\n\tfeedbackRating = 0;\r\n\tfeedBackResult!: string;\r\n\tbaseUrl = API_CONFIGS.aiApi;\r\n\r\n\tconstructor(\r\n\t\tprivate readonly http: HttpClient,\r\n\t\tprivate readonly keycloak: KeycloakService\r\n\t) {\r\n\t\tthis.username = this.keycloak.getUsername();\r\n\t}\r\n\r\n\tsendRequest() {\r\n\t\tthis.fetchData();\r\n\t}\r\n\r\n\tasync getHistory() {\r\n\t\ttry {\r\n\t\t\tawait this.http\r\n\t\t\t\t.get<any[]>(this.baseUrl + 'history?project=CRM' + '&user_name=' + this.username)\r\n\t\t\t\t.subscribe((response) => {\r\n\t\t\t\t\tthis.historyList.next(response);\r\n\t\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t}\r\n\r\n\tasync fetchData() {\r\n\t\tthis.startTyping();\r\n\t\tconst request = {\r\n\t\t\tproject: 'CRM',\r\n\t\t\tuser_name: this.username,\r\n\t\t\tquery: this.questionQuery\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\tconst result = await firstValueFrom(this.http.post<any>(this.baseUrl + 'chat', request));\r\n\t\t\tif (result && result.answer) {\r\n\t\t\t\tthis.queryList.next([...this.queryList.value, { question: this.questionQuery, answer: result.answer }]);\r\n\t\t\t}\r\n\t\t} catch (error: any) {\r\n\t\t\tthis.error = error;\r\n\t\t} finally {\r\n\t\t\tthis.questionQuery = '';\r\n\t\t\tthis.stopTyping();\r\n\t\t}\r\n\t}\r\n\tonVisible() {\r\n\t\tthis.getHistory();\r\n\t\tthis.chatbotVisible = true;\r\n\t}\r\n\r\n\tstartTyping() {\r\n\t\tthis.isTyping = true;\r\n\t\tlet dots = 0;\r\n\r\n\t\tthis.typingInterval = setInterval(() => {\r\n\t\t\tdots = (dots + 1) % 4;\r\n\t\t\tthis.typingText = '.'.repeat(dots);\r\n\t\t}, 300);\r\n\t}\r\n\r\n\tstopTyping() {\r\n\t\tclearInterval(this.typingInterval);\r\n\t\tthis.isTyping = false;\r\n\t}\r\n\r\n\tgiveFeedback() {\r\n\t\tthis.visibleGiveFeedback = true;\r\n\t}\r\n\tasync sendFeedback() {\r\n\t\tconst request = {\r\n\t\t\tproject: 'CRM',\r\n\t\t\tuser_name: this.username,\r\n\t\t\trating: this.feedbackRating,\r\n\t\t\tcomments: this.feedbackComments\r\n\t\t};\r\n\r\n\t\ttry {\r\n\t\t\tconst result = await firstValueFrom(this.http.post<any>(this.baseUrl + 'feedback', request));\r\n\t\t\tif (result) {\r\n\t\t\t\tthis.feedBackResult = result.message;\r\n\t\t\t}\r\n\t\t} catch (error: any) {\r\n\t\t\tthis.error = error;\r\n\t\t} finally {\r\n\t\t\tthis.visibleGiveFeedback = false;\r\n\t\t\tthis.feedbackComments = '';\r\n\t\t\tthis.feedbackRating = 0;\r\n\t\t}\r\n\t}\r\n\r\n\tcancelFeedback() {\r\n\t\tthis.visibleGiveFeedback = false;\r\n\t\tthis.feedbackComments = '';\r\n\t\tthis.feedbackRating = 0;\r\n\t}\r\n}\r\n","<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\r\n\t<i class=\"pi pi-comments\"></i>\r\n</button>\r\n\r\n<p-sidebar\r\n\t[(visible)]=\"chatbotVisible\"\r\n\tposition=\"right\"\r\n\tstyleClass=\"w-30rem flex flex-column\"\r\n\t[style]=\"{ height: '100%' }\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"custom-sidebar-header\">\r\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\r\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"flex flex-column flex-1\">\r\n\t\t<p-messages severity=\"info\">\r\n\t\t\t<ng-template pTemplate>\r\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\r\n\t\t\t\t<div class=\"ml-2\">Sorularının cevabına buradan ulaşabilirsin.</div>\r\n\t\t\t</ng-template>\r\n\t\t</p-messages>\r\n\t</div>\r\n\r\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 85%; position: relative\">\r\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 85%; overflow-y: auto; padding-right: 0.5rem\">\r\n\t\t\t@if (historyList.getValue().length > 0) {\r\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (queryList.getValue().length > 0) {\r\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\r\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"flex flex-column\">\r\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\r\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\r\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t@if (visibleGiveFeedback) {\r\n\t\t\t\t<div class=\"flex mb-2\">\r\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan gönderebilirsiniz.</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text-lg\">\r\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div>\r\n <aril-button label=\"Gönder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t\t<aril-button label=\"Vazgeç\" color=\"danger\" icon=\"TIMES\" [outlined]=\"true\" (clickEvent)=\"cancelFeedback()\">\r\n </aril-button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t@if (isTyping) {\r\n\t\t\t<div\r\n\t\t\t\tclass=\"typing-indicator\"\r\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\r\n\t\t\t\t{{ typingText }}\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\r\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\r\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\r\n\t\t\t\t\t\tclass=\"flex-1\"\r\n\t\t\t\t\t\tmaxlength=\"500\" />\r\n\t\t\t\t<aril-button label=\"Gönder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</p-sidebar>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { NavigationEnd, Router, RouterLink } from '@angular/router';\r\n\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\nimport { Subscription, filter } from 'rxjs';\r\n\r\nimport { PluginMenuItem } from 'aril/boot/config/apps';\r\nimport { TranslateJsonPipe } from 'aril/util/pipes';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-expandable-menu',\r\n\timports: [RouterLink, NgClass, TooltipModule],\r\n\ttemplateUrl: 'expandable-menu.component.html',\r\n\tproviders: [TranslateJsonPipe]\r\n})\r\nexport class ExpandableMenuComponent implements OnInit, OnDestroy {\r\n\r\n\tactiveLang = toSignal(this.translocoService.langChanges$, { initialValue: 'tr' });\r\n\toverlayMenuOpenSubscription: Subscription | null = null;\r\n\trouterSubscription: Subscription | null = null;\r\n\tusername = this.keycloak.getUsername().charAt(0).toUpperCase();\r\n\tsidebarIsLocked = false;\r\n\r\n isHostMode = (<any>globalThis).isHostMode;\r\n\thostMenuItems = (<any>globalThis).hostMenuItems;\r\n\tcachedMenuItems: PluginMenuItem[] = [];\r\n\r\n\r\n\t// Track selected main menu item\r\n\tselectedMainItem: number | null = null;\r\n\tselectedMainMenuItem: PluginMenuItem | null = null;\r\n\tsecondarySidebarExpanded = false;\r\n\r\n\ttooltipText = {\r\n\t\ttoggleButton: {\r\n\t\t\texpanded: {\r\n\t\t\t\ttr: 'Menüyü Gizle',\r\n\t\t\t\ten: 'Hide Menu'\r\n\t\t\t},\r\n\t\t\tcollapsed: {\r\n\t\t\t\ttr: 'Menüyü Göster',\r\n\t\t\t\ten: 'Show Menu'\r\n\t\t\t}\r\n\t\t},\r\n\t\tlockButton: {\r\n\t\t\tlocked: {\r\n\t\t\t\ttr: 'Otomatik Kapanmayı Aç',\r\n\t\t\t\ten: 'Enable Auto-Close'\r\n\t\t\t},\r\n\t\t\tunlocked: {\r\n\t\t\t\ttr: 'Menüyü Kilitle',\r\n\t\t\t\ten: 'Lock Menu'\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tprivate readonly MAX_LENGTH = {\r\n\t\tmain: 8, \r\n\t\tsecondary: 20,\r\n\t\ttertiary: 20 \r\n\t};\r\n\r\n\tconstructor(\r\n\t\tprivate translateJsonPipe: TranslateJsonPipe,\r\n\t\tprivate menuService: AppMenuService,\r\n\t\tprivate router: Router,\r\n\t\tprivate keycloak: KeycloakService,\r\n\t\tprivate translocoService: TranslocoService,\r\n\t\tprivate layoutService: LayoutService\r\n\t) {}\r\n\r\n\t// Check if text is truncated and needs tooltip\r\n\tisTextTruncated(\r\n\t\tlabel: any,\r\n\t\tlang: string | null,\r\n\t\tmenuType: 'main' | 'secondary' | 'tertiary' | 'nested' = 'secondary'\r\n\t): boolean {\r\n\t\tif (!label || !lang || !label[lang]) return false;\r\n\r\n\t\tconst text = label[lang];\r\n\t\tconst textLength = text.length;\r\n\t\tconst maxLength = menuType === 'nested' ? this.MAX_LENGTH.tertiary : this.MAX_LENGTH[menuType];\r\n\t\treturn textLength > maxLength;\r\n\t}\r\n\r\n\t// Recursively check if a menu item or its children match the current route\r\n\tisActiveRoute(menuItem: PluginMenuItem): boolean {\r\n\t\tif (!menuItem || !menuItem.routerLink) return false;\r\n\r\n\t\t// Get current URL path after the hash\r\n\t\tconst currentUrl = this.router.url;\r\n\t\tconst hashUrl = currentUrl.indexOf('#') > -1 ? currentUrl.split('#')[1] : currentUrl;\r\n\r\n\t\t// Check for exact match first\r\n\t\tif (hashUrl === menuItem.routerLink || hashUrl === '/' + menuItem.routerLink) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check if current URL starts with the routerLink (handles child routes)\r\n\t\tif (\r\n\t\t\tmenuItem.routerLink !== '/' &&\r\n\t\t\t(hashUrl.startsWith(menuItem.routerLink + '/') || hashUrl.startsWith('/' + menuItem.routerLink + '/'))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Check child items if they exist\r\n\t\tif (menuItem.items && menuItem.items.length > 0) {\r\n\t\t\treturn menuItem.items.some((childItem) => this.isActiveRoute(childItem));\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\r\n\t\tthis.updateMenuItems();\r\n\t\tthis.initializeMenu();\r\n\r\n\t\tthis.loadSidebarLockState();\r\n\t\tthis.updateActiveMenuFromCurrentRoute();\r\n\r\n\t\t// Subscribe to route changes to handle secondary sidebar closing\r\n\t\tthis.routerSubscription = this.router.events\r\n\t\t\t.pipe(filter((event) => event instanceof NavigationEnd))\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\t// Update active menu based on the new route\r\n\t\t\t\tthis.updateActiveMenuFromCurrentRoute();\r\n\r\n\t\t\t\t// Close secondary sidebar on navigation if not locked\r\n\t\t\t\tif (!this.sidebarIsLocked) {\r\n\t\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t// Subscribe to overlay menu open notifications\r\n\t\tthis.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\r\n\t\t\tif (this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.overlayMenuOpenSubscription) {\r\n\t\t\tthis.overlayMenuOpenSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.routerSubscription) {\r\n\t\t\tthis.routerSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tloadSidebarLockState(): void {\r\n\t\tconst storedState = localStorage.getItem('sidebarIsLocked');\r\n\t\tthis.sidebarIsLocked = storedState === 'true';\r\n\t}\r\n\r\n\tsaveSidebarLockState(): void {\r\n\t\tlocalStorage.setItem('sidebarIsLocked', this.sidebarIsLocked.toString());\r\n\t}\r\n\r\n\ttoggleSidebarLock(): void {\r\n\t\tthis.sidebarIsLocked = !this.sidebarIsLocked;\r\n\t\tthis.saveSidebarLockState();\r\n\t}\r\n\r\n\t// Initialize the menu with proper active state\r\n\tinitializeMenu() {\r\n\t\tthis.selectedMainItem = null;\r\n\t\tthis.selectedMainMenuItem = null;\r\n\t\tthis.secondarySidebarExpanded = false;\r\n\t\tthis.updateMenuItems();\r\n\t}\r\n\r\n\tupdateMenuFromRootKey(index: number): void {\r\n\t\tthis.updateMenuItems(); \r\n\t\tconst menuItems = this.getMenuItems();\r\n\r\n\t\tif (index >= 0 && index < menuItems.length) {\r\n\t\t\tconst item = menuItems[index];\r\n\t\t\tif (!item.separator) {\r\n\t\t\t\tthis.selectedMainItem = index;\r\n\t\t\t\tthis.selectedMainMenuItem = item;\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tupdateMenuItems(): void {\r\n\t\tthis.cachedMenuItems = this.isHostMode ? this.hostMenuItems() : this.menuService.menuItems();\r\n\t}\r\n\r\n\tgetMenuItems(): PluginMenuItem[] {\r\n\t\treturn this.cachedMenuItems;\r\n\t}\r\n\r\n\tselectMainItem(index: number, item: PluginMenuItem): void {\r\n\t\tif (item.routerLink && (!item.items || item.items.length === 0)) {\r\n\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\tthis.selectedMainItem = index;\r\n\t\t\tthis.selectedMainMenuItem = item;\r\n\t\t\tthis.router.navigate([item.routerLink]);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Handle regular menu items with submenu\r\n\t\tif (this.selectedMainItem === index) {\r\n\t\t\tthis.secondarySidebarExpanded = !this.secondarySidebarExpanded;\r\n\t\t} else {\r\n\t\t\tthis.selectedMainItem = index;\r\n\t\t\tthis.selectedMainMenuItem = item;\r\n\r\n if (item.items && item.items.length > 0) {\r\n\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// For mobile devices, ensure the menu stays open\r\n\t\tif (this.isMobile()) {\r\n\t\t\tthis.layoutService.state.staticMenuMobileActive = true;\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleSecondarySidebar(): void {\r\n\t\tthis.secondarySidebarExpanded = !this.secondarySidebarExpanded;\r\n\t}\r\n\r\n\tisMobile(): boolean {\r\n\t\treturn this.layoutService.isMobile();\r\n\t}\r\n\r\n\t// Listen for resize events to handle responsive behavior for mobile\r\n\t@HostListener('window:resize')\r\n\tonResize() {\r\n\t\tif (!this.isMobile() && this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\t}\r\n\t}\r\n\r\n\tupdateActiveMenuFromCurrentRoute(): void {\r\n\t\tconst menuItems = this.getMenuItems();\r\n\r\n\t\tfor (let i = 0; i < menuItems.length; i++) {\r\n\t\t\tconst menuItem = menuItems[i];\r\n\t\t\tif (this.isActiveRoute(menuItem)) {\r\n\t\t\t\tthis.selectedMainItem = i;\r\n\t\t\t\tthis.selectedMainMenuItem = menuItem;\r\n\r\n\t\t\t\tif (menuItem.items && menuItem.items.length > 0) {\r\n\t\t\t\t\tif (!this.isMobile() && !this.secondarySidebarExpanded && !this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\t\t\tthis.secondarySidebarExpanded = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.secondarySidebarExpanded = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisHaveSelectedChildItem(item: PluginMenuItem): boolean {\r\n\t\tif (!item || !item.items || item.items.length === 0) return false;\r\n\r\n\t\tfor (const child of item.items) {\r\n\t\t\tif (this.isActiveRoute(child)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n if (child.items && child.items.length > 0) {\r\n\t\t\t\tif (this.isHaveSelectedChildItem(child)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tgetLocalText(text: any): string {\r\n\t\treturn this.translateJsonPipe.transform(text);\r\n\t}\r\n}\r\n","<div class=\"new-layout-sidebar\">\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\">\r\n\t\t<div class=\"main-sidebar-header\">\r\n\t\t\t<div class=\"user-avatar\">\r\n\t\t\t\t<span>{{ username }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"main-sidebar-content\">\r\n\t\t\t<ul class=\"main-menu\">\r\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\r\n\t\t\t\t\t@if(!item.separator){\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\r\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\r\n\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(item.label, activeLang(), 'main') ? (item.label && activeLang() ? item.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t<div class=\"main-menu-item\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\r\n\t\t\t\t\t\t\t<small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</ul>\r\n\t\t</div>\r\n\t\t<!-- Toggle button at the bottom of main sidebar -->\r\n\t\t<div class=\"main-sidebar-footer\">\r\n\t\t\t<button class=\"sidebar-toggle-button\" (click)=\"toggleSecondarySidebar()\" \r\n\t\t\t\t[pTooltip]=\"!isMobile() ? (secondarySidebarExpanded ? getLocalText(tooltipText.toggleButton.expanded) : getLocalText(tooltipText.toggleButton.collapsed)) : ''\" \r\n\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t<i class=\"pi\" [ngClass]=\"secondarySidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': secondarySidebarExpanded}\">\r\n\t\t<!-- Content container wrapper to prevent jumps during transitions -->\r\n\t\t<div class=\"secondary-content-wrapper\">\r\n\t\t\t<!-- Secondary sidebar header -->\r\n\t\t\t<div class=\"secondary-sidebar-header\">\r\n\t\t\t\t<div class=\"secondary-header-content\">\r\n\t\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t\t<h3 class=\"section-title\">\r\n\t\t\t\t\t\t\t<i [ngClass]=\"selectedMainMenuItem.icon\" class=\"section-icon\"></i>\r\n\t\t\t\t\t\t\t<span>{{ selectedMainMenuItem.label && activeLang() ? selectedMainMenuItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t</h3>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t<button class=\"sidebar-lock-button\" (click)=\"toggleSidebarLock()\" \r\n\t\t\t\t\t\t[pTooltip]=\"sidebarIsLocked ? getLocalText(tooltipText.lockButton.locked) : getLocalText(tooltipText.lockButton.unlocked)\" \r\n\t\t\t\t\t\ttooltipPosition=\"left\">\r\n\t\t\t\t\t\t<i class=\"pi\" [ngClass]=\"sidebarIsLocked ? 'pi-lock' : 'pi-lock-open'\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t\t<!-- Secondary sidebar content -->\r\n\t\t\t<div class=\"secondary-sidebar-content\">\r\n\t\t\t\t@if(selectedMainMenuItem){\r\n\t\t\t\t\t<ul class=\"secondary-menu\">\r\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\r\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\r\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\r\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\r\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(childItem.label, activeLang(), 'tertiary') ? (childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tertiary-label\">{{ childItem.label && activeLang() ? childItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Always render deeper levels if they exist, also visible by default -->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t@for(nestedItem of childItem.items; track nestedItem; let i = $index){\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(nestedItem.label, activeLang(), 'nested') ? (nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '') : ''\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"nested-label\">{{ nestedItem.label && activeLang() ? nestedItem.label[activeLang()!] || '' : '' }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t </ul>\r\n\t\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</ul>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n</div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, OnDestroy, Renderer2, ViewChild } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterOutlet } from '@angular/router';\r\n\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ToastModule } from 'primeng/toast';\r\n\r\nimport { Subscription, filter } from 'rxjs';\r\n\r\nimport { LayoutService } from '../../service/app.layout.service';\r\nimport { AppMenuService } from '../../service/app.menu.service';\r\nimport { AppProfileSidebarComponent } from '../profileSidebar/app.profilesidebar.component';\r\nimport { HistorySidebarComponent } from '../history/history-sidebar.component';\r\nimport { SiteMapSidebarComponent } from '../site-map/site-map-sidebar.component';\r\nimport { FavoritePagesSidebarComponent } from '../favorite-pages/favorite-pages-sidebar.component';\r\nimport { AppSidebarComponent } from '../sidebar/app.sidebar.component';\r\nimport { AppTopbarComponent } from '../topbar/app.topbar.component';\r\nimport { AppChatbotComponent } from '../chatbot/app.chatbot.component';\r\nimport { ExpandableMenuComponent } from '../expandableMenu/expandable-menu.component';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'app-layout',\r\n\timports: [\r\n\t\tNgClass,\r\n\t\tRouterOutlet,\r\n\t\tConfirmDialogModule,\r\n\t\tConfirmPopupModule,\r\n\t\tDialogModule,\r\n\t\tMessagesModule,\r\n\t\tToastModule,\r\n\t\tAppTopbarComponent,\r\n\t\tAppProfileSidebarComponent,\r\n\t\tHistorySidebarComponent,\r\n\t\tSiteMapSidebarComponent,\r\n\t\tFavoritePagesSidebarComponent,\r\n\t\tAppChatbotComponent,\r\n\t\tAppSidebarComponent,\r\n\t\tExpandableMenuComponent\r\n\t],\r\n\ttemplateUrl: './app.layout.component.html'\r\n})\r\nexport class AppLayoutComponent implements OnDestroy {\r\n\toverlayMenuOpenSubscription: Subscription;\r\n\r\n\tmenuOutsideClickListener: any;\r\n\r\n\tmenuScrollListener: any;\r\n\r\n\tglobalThis: any = globalThis;\r\n\r\n\t@ViewChild(AppSidebarComponent) appSidebar!: AppSidebarComponent;\r\n\r\n\t@ViewChild(ExpandableMenuComponent) expandableMenuComponent!: ExpandableMenuComponent;\r\n\r\n\t@ViewChild(AppTopbarComponent) appTopbar!: AppTopbarComponent;\r\n\r\n\tconstructor(\r\n\t\tprivate menuService: AppMenuService,\r\n\t\tpublic layoutService: LayoutService,\r\n\t\tpublic renderer: Renderer2,\r\n\t\tpublic router: Router\r\n\t) {\r\n\t\tthis.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\r\n\t\t\tif (!this.menuOutsideClickListener) {\r\n\t\t\t\tthis.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {\r\n\t\t\t\t\tconst isOutsideClicked = !(\r\n\t\t\t\t\t\tthis.appSidebar.el.nativeElement.isSameNode(event.target) ||\r\n\t\t\t\t\t\tthis.appSidebar.el.nativeElement.contains(event.target) ||\r\n\t\t\t\t\t\tthis.appTopbar.menuButton.nativeElement.isSameNode(event.target) ||\r\n\t\t\t\t\t\tthis.appTopbar.menuButton.nativeElement.contains(event.target)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (isOutsideClicked) {\r\n\t\t\t\t\t\tthis.hideMenu();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\t(this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) &&\r\n\t\t\t\t!this.menuScrollListener\r\n\t\t\t) {\r\n\t\t\t\tthis.menuScrollListener = this.renderer.listen(\r\n\t\t\t\t\tthis.appSidebar.menuContainer.nativeElement,\r\n\t\t\t\t\t'scroll',\r\n\t\t\t\t\t(event) => {\r\n\t\t\t\t\t\tif (this.layoutService.isDesktop()) {\r\n\t\t\t\t\t\t\tthis.hideMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.layoutService.state.staticMenuMobileActive) {\r\n\t\t\t\tthis.blockBodyScroll();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => {\r\n\t\t\tif (!this.layoutService.mfeAppItemClicked()) this.hideMenu();\r\n\t\t});\r\n\t}\r\n\r\n\tblockBodyScroll(): void {\r\n\t\tif (document.body.classList) {\r\n\t\t\tdocument.body.classList.add('blocked-scroll');\r\n\t\t} else {\r\n\t\t\tdocument.body.className += ' blocked-scroll';\r\n\t\t}\r\n\t}\r\n\r\n\tunblockBodyScroll(): void {\r\n\t\tif (document.body.classList) {\r\n\t\t\tdocument.body.classList.remove('blocked-scroll');\r\n\t\t} else {\r\n\t\t\tdocument.body.className = document.body.className.replace(\r\n\t\t\t\tnew RegExp('(^|\\\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'),\r\n\t\t\t\t' '\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\thideMenu() {\r\n\t\tthis.layoutService.state.overlayMenuActive = false;\r\n\t\tthis.layoutService.state.staticMenuMobileActive = false;\r\n\t\tthis.layoutService.state.menuHoverActive = false;\r\n\t\tthis.menuService.reset();\r\n\r\n\t\tif (this.menuOutsideClickListener) {\r\n\t\t\tthis.menuOutsideClickListener();\r\n\t\t\tthis.menuOutsideClickListener = null;\r\n\t\t}\r\n\r\n\t\tif (this.menuScrollListener) {\r\n\t\t\tthis.menuScrollListener();\r\n\t\t\tthis.menuScrollListener = null;\r\n\t\t}\r\n\r\n\t\tthis.unblockBodyScroll();\r\n\t}\r\n\r\n\tget containerClass() {\r\n\t\treturn {\r\n\t\t\t'layout-light': this.layoutService.config().colorScheme === 'light',\r\n\t\t\t'layout-dim': this.layoutService.config().colorScheme === 'dim',\r\n\t\t\t'layout-dark': this.layoutService.config().colorScheme === 'dark',\r\n\t\t\t'layout-colorscheme-menu': this.layoutService.config().menuTheme === 'colorScheme',\r\n\t\t\t'layout-primarycolor-menu': this.layoutService.config().menuTheme === 'primaryColor',\r\n\t\t\t'layout-transparent-menu': this.layoutService.config().menuTheme === 'transparent',\r\n\t\t\t'layout-overlay': this.layoutService.config().menuMode === 'overlay',\r\n\t\t\t'layout-static': this.layoutService.config().menuMode === 'static',\r\n\t\t\t'layout-slim': this.layoutService.config().menuMode === 'slim',\r\n\t\t\t'layout-slim-plus': this.layoutService.config().menuMode === 'slim-plus',\r\n\t\t\t'layout-horizontal': this.layoutService.config().menuMode === 'horizontal',\r\n\t\t\t'layout-reveal': this.layoutService.config().menuMode === 'reveal',\r\n\t\t\t'layout-drawer': this.layoutService.config().menuMode === 'drawer',\r\n\t\t\t'layout-static-inactive':\r\n\t\t\t\tthis.layoutService.state.staticMenuDesktopInactive && this.layoutService.config().menuMode === 'static',\r\n\t\t\t'layout-overlay-active': this.layoutService.state.overlayMenuActive,\r\n\t\t\t'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,\r\n\t\t\t'p-input-filled': this.layoutService.config().inputStyle === 'filled',\r\n\t\t\t'p-ripple-disabled': !this.layoutService.config().ripple,\r\n\t\t\t'layout-sidebar-active': this.layoutService.state.sidebarActive,\r\n\t\t\t'layout-sidebar-anchored': this.layoutService.state.anchored,\r\n\t\t\t// if expandableMenuComponent is present, add the class 'new-sidebar-layout'\r\n\t\t\t'new-sidebar-layout': this.layoutService.config().menuMode === 'expandable',\r\n\t\t\t'secondary-expanded': this.expandableMenuComponent?.secondarySidebarExpanded\r\n\t\t};\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.overlayMenuOpenSubscription) {\r\n\t\t\tthis.overlayMenuOpenSubscription.unsubscribe();\r\n\t\t}\r\n\r\n\t\tif (this.menuOutsideClickListener) {\r\n\t\t\tthis.menuOutsideClickListener();\r\n\t\t}\r\n\t}\r\n}","<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t\t<app-expandable-menu />\r\n\t\t<!-- <app-sidebar />\t -->\r\n\t\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content card\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<app-history-sidebar />\r\n\t<app-site-map-sidebar />\r\n\t<app-favorite-pages-sidebar />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport {\r\n\tNavigationCancel,\r\n\tNavigationEnd,\r\n\tNavigationError,\r\n\tNavigationSkipped,\r\n\tRouter,\r\n\tRouterOutlet\r\n} from '@angular/router';\r\n\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ToastModule } from 'primeng/toast';\r\n\r\nimport { map } from 'rxjs';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'mfe-layout',\r\n\ttemplate: `\r\n\t\t<!-- <app-sub-menu hidden></app-sub-menu> -->\r\n\r\n\t\t@if (!loading()) {\r\n\t\t\t<router-outlet />\r\n\t\t}\r\n\r\n\t\t<p-toast key=\"toast-root\"></p-toast>\r\n\t\t<p-dialog key=\"dialog-root\"></p-dialog>\r\n\t\t<p-messages key=\"messages-root\"></p-messages>\r\n\t\t<p-confirmPopup key=\"confirmPopup-root\"></p-confirmPopup>\r\n\t\t<p-confirmDialog key=\"confirmDialog-root\"></p-confirmDialog>\r\n\t`,\r\n\timports: [RouterOutlet, ConfirmDialogModule, ConfirmPopupModule, DialogModule, MessagesModule, ToastModule]\r\n})\r\nexport class MFELayoutComponent implements AfterViewInit {\r\n\tloading = toSignal(\r\n\t\tthis.router.events.pipe(\r\n\t\t\tmap((event) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\tevent instanceof NavigationEnd ||\r\n\t\t\t\t\tevent instanceof NavigationCancel ||\r\n\t\t\t\t\tevent instanceof NavigationError ||\r\n\t\t\t\t\tevent instanceof NavigationSkipped\r\n\t\t\t\t)\r\n\t\t\t\t\treturn false;\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t})\r\n\t\t),\r\n\t\t{ initialValue: true }\r\n\t);\r\n\r\n\tconstructor(private router: Router) {}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\t// const appMenu = document.querySelector('app-menu>ul>li>ul#' + (<any>globalThis).activeMF);\r\n\t\t// const subMenuId = 'app-sub-menu-' + (<any>globalThis).activeMF;\r\n\t\t// const subMenu = document.getElementById(subMenuId) as HTMLElement;\r\n\t\t// appMenu?.replaceChildren(...Array.from(subMenu.children));\r\n\t\t// document.querySelector(subMenuId)?.remove();\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, effect, signal } from '@angular/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\n\r\nimport { SelectionGroupDTO, SelectionRequestDTO } from './interfaces/interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SelectionGroupService {\r\n\tselectionGroups = signal<{ [key: string]: SelectionGroupDTO | null }>({});\r\n\r\n\tprivate loading = new Map<string, boolean>();\r\n\tprivate loaded = new Map<string, boolean>();\r\n\r\n\tconstructor(private http: HttpClient) {\r\n\t\tthis.loadStatesFromLocalStorage();\r\n\r\n\t\teffect(() => {\r\n\t\t\tconst encodedData = btoa(encodeURI(JSON.stringify(this.selectionGroups())));\r\n\t\t\tlocalStorage.setItem('selection-groups', encodedData);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate async loadStatesFromLocalStorage() {\r\n\t\tconst selectionGroups = localStorage.getItem('selection-groups');\r\n\r\n\t\tif (selectionGroups) {\r\n\t\t\ttry {\r\n\t\t\t\tconst decodedData = decodeURI(atob(selectionGroups));\r\n\t\t\t\tthis.selectionGroups.set(JSON.parse(decodedData));\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tfetchEnum(groupName: string, parentSelectionKey: string = 'ALL') {\r\n\t\tconst key = groupName + '~' + parentSelectionKey;\r\n\r\n\t\tif (this.loaded.get(key) || this.loading.get(key)) return;\r\n\r\n\t\tconst payload: SelectionRequestDTO = {\r\n\t\t\tgroupName,\r\n\t\t\tparentSelectionKey\r\n\t\t};\r\n\r\n\t\tthis.loading.set(key, true);\r\n\t\tthis.loaded.set(key, false);\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe((selectionGroup) => {\r\n\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\tthis.loaded.set(key, true);\r\n\r\n\t\t\t\tthis.selectionGroups.update((groups) => ({\r\n\t\t\t\t\t...groups,\r\n\t\t\t\t\t[key]: selectionGroup\r\n\t\t\t\t}));\r\n\t\t\t});\r\n\t}\r\n\r\n\tisLoading(groupName: string): boolean {\r\n\t\treturn this.loading.get(groupName) ?? false;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.ProfileService","i5","i1.LayoutService","i2","i4","i6","i7","i2.HistoryService","i8","i1","i3.FavoritePagesService","i2.FavoritePagesService","i9","i10","i3.AppMenuService","i2.BreadcrumbService","i3","filter","i2.AppMenuService","i6.LayoutService","i1.AppMenuService","i2.LayoutService","map"],"mappings":"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"}