aril 1.1.96 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/boot/base/index.d.ts +1 -0
  2. package/boot/base/src/create-base-app-config.d.ts +12 -0
  3. package/boot/bridge/index.d.ts +2 -0
  4. package/boot/bridge/src/mfe-bridge.d.ts +33 -0
  5. package/boot/bridge/src/provide-mfe-bridge.d.ts +1 -0
  6. package/boot/config/api/index.d.ts +1 -0
  7. package/boot/config/api/src/api.service.d.ts +2 -2
  8. package/boot/config/api/src/interfaces.d.ts +1 -19
  9. package/boot/config/apps/src/apps.service.d.ts +7 -4
  10. package/boot/config/plugins/src/getNgZone.d.ts +1 -1
  11. package/boot/config/plugins/src/interfaces.d.ts +0 -37
  12. package/boot/host/src/app.component.d.ts +5 -3
  13. package/boot/mfe/src/app.component.d.ts +4 -2
  14. package/esm2022/boot/base/aril-boot-base.mjs +5 -0
  15. package/esm2022/boot/base/index.mjs +2 -0
  16. package/esm2022/boot/base/src/create-base-app-config.mjs +30 -0
  17. package/esm2022/boot/bridge/aril-boot-bridge.mjs +5 -0
  18. package/esm2022/boot/bridge/index.mjs +3 -0
  19. package/esm2022/boot/bridge/src/mfe-bridge.mjs +59 -0
  20. package/esm2022/boot/bridge/src/provide-mfe-bridge.mjs +6 -0
  21. package/esm2022/boot/config/api/index.mjs +1 -1
  22. package/esm2022/boot/config/api/src/api.service.mjs +14 -9
  23. package/esm2022/boot/config/api/src/interfaces.mjs +2 -21
  24. package/esm2022/boot/config/apps/src/apps.service.mjs +13 -16
  25. package/esm2022/boot/config/plugins/src/getNgZone.mjs +4 -3
  26. package/esm2022/boot/config/plugins/src/interfaces.mjs +1 -60
  27. package/esm2022/boot/config/plugins/src/plugins.service.mjs +9 -21
  28. package/esm2022/boot/host/src/app.component.mjs +11 -10
  29. package/esm2022/boot/host/src/bootstrap.mjs +9 -22
  30. package/esm2022/boot/mfe/src/app.component.mjs +20 -17
  31. package/esm2022/boot/mfe/src/bootstrap.mjs +13 -31
  32. package/esm2022/boot/pages/aril-boot-pages.mjs +5 -0
  33. package/esm2022/boot/pages/index.mjs +3 -0
  34. package/esm2022/{util/custom_pages → boot/pages}/src/forbidden.component.mjs +1 -1
  35. package/esm2022/{util/custom_pages → boot/pages}/src/notFound.component.mjs +1 -1
  36. package/esm2022/keycloak/src/auth.interceptor.mjs +15 -78
  37. package/esm2022/provider/src/prodiveHost.mjs +5 -8
  38. package/esm2022/provider/src/prodiveHostRouter.mjs +4 -3
  39. package/esm2022/provider/src/provideHostKeycloak.mjs +10 -2
  40. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +4 -3
  41. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +3 -4
  42. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +3 -2
  43. package/esm2022/theme/layout/app/history/history.service.mjs +3 -2
  44. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +1 -2
  45. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +5 -4
  46. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +3 -4
  47. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +7 -4
  48. package/esm2022/ui/form/src/form.component.mjs +22 -4
  49. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +14 -2
  50. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -3
  51. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +3 -4
  52. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +1 -1
  53. package/fesm2022/{aril-app.component-hxaLgwmC.mjs → aril-app.component-wxP3y8dg.mjs} +22 -22
  54. package/fesm2022/aril-app.component-wxP3y8dg.mjs.map +1 -0
  55. package/fesm2022/aril-boot-base.mjs +37 -0
  56. package/fesm2022/aril-boot-base.mjs.map +1 -0
  57. package/fesm2022/aril-boot-bridge.mjs +70 -0
  58. package/fesm2022/aril-boot-bridge.mjs.map +1 -0
  59. package/fesm2022/aril-boot-config-api.mjs +12 -27
  60. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  61. package/fesm2022/aril-boot-config-apps.mjs +12 -15
  62. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  63. package/fesm2022/aril-boot-config-plugins.mjs +10 -81
  64. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  65. package/fesm2022/aril-boot-host.mjs +17 -29
  66. package/fesm2022/aril-boot-host.mjs.map +1 -1
  67. package/fesm2022/{aril-boot-mfe-app.component-s1a-tkOD.mjs → aril-boot-mfe-app.component-7IjAmjz0.mjs} +22 -22
  68. package/fesm2022/aril-boot-mfe-app.component-7IjAmjz0.mjs.map +1 -0
  69. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs → aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs} +15 -69
  70. package/fesm2022/aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map +1 -0
  71. package/fesm2022/aril-boot-mfe.mjs +3 -6
  72. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  73. package/fesm2022/{aril-util-custom_pages.mjs → aril-boot-pages.mjs} +1 -1
  74. package/fesm2022/aril-boot-pages.mjs.map +1 -0
  75. package/fesm2022/aril-keycloak.mjs +14 -77
  76. package/fesm2022/aril-keycloak.mjs.map +1 -1
  77. package/fesm2022/aril-provider.mjs +15 -10
  78. package/fesm2022/aril-provider.mjs.map +1 -1
  79. package/fesm2022/aril-theme-layout.mjs +15 -17
  80. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  81. package/fesm2022/aril-ui-business-assetPicker.mjs +13 -1
  82. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  83. package/fesm2022/aril-ui-form.mjs +20 -3
  84. package/fesm2022/aril-ui-form.mjs.map +1 -1
  85. package/fesm2022/aril-util-directives.mjs +3 -2
  86. package/fesm2022/aril-util-directives.mjs.map +1 -1
  87. package/fesm2022/aril-util-pipes.mjs +2 -3
  88. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  89. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  90. package/fesm2022/aril.mjs +24 -87
  91. package/fesm2022/aril.mjs.map +1 -1
  92. package/package.json +111 -105
  93. package/provider/src/prodiveHost.d.ts +2 -2
  94. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +3 -2
  95. package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +0 -2
  96. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +373 -374
  97. package/theme/layout/app/general-search/general-search.component.ts +2 -1
  98. package/theme/layout/app/history/history.service.ts +2 -1
  99. package/theme/layout/app/layout/app.layout.component.d.ts +0 -1
  100. package/theme/layout/app/layout/app.layout.component.ts +0 -1
  101. package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
  102. package/theme/layout/app/site-map/site-map-sidebar.component.ts +3 -2
  103. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +336 -337
  104. package/theme/layout/app/topbar/app.topbar.component.ts +6 -3
  105. package/theme/styles/layout/_fonts.scss +1 -13
  106. package/ui/form/src/form.component.d.ts +4 -1
  107. package/boot/mfe/src/loadStyles.d.ts +0 -3
  108. package/esm2022/boot/mfe/src/loadStyles.mjs +0 -37
  109. package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
  110. package/esm2022/util/custom_pages/index.mjs +0 -3
  111. package/esm2022/util/loaders/aril-util-loaders.mjs +0 -5
  112. package/esm2022/util/loaders/index.mjs +0 -2
  113. package/esm2022/util/loaders/style/style.loader.service.mjs +0 -61
  114. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +0 -1
  115. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +0 -1
  116. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +0 -1
  117. package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
  118. package/fesm2022/aril-util-loaders.mjs +0 -68
  119. package/fesm2022/aril-util-loaders.mjs.map +0 -1
  120. package/theme/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  121. package/theme/fonts/Inter/Inter_18pt-BlackItalic.ttf +0 -0
  122. package/theme/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  123. package/theme/fonts/Inter/Inter_18pt-BoldItalic.ttf +0 -0
  124. package/theme/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  125. package/theme/fonts/Inter/Inter_18pt-ExtraBoldItalic.ttf +0 -0
  126. package/theme/fonts/Inter/Inter_18pt-ExtraLight.ttf +0 -0
  127. package/theme/fonts/Inter/Inter_18pt-ExtraLightItalic.ttf +0 -0
  128. package/theme/fonts/Inter/Inter_18pt-Italic.ttf +0 -0
  129. package/theme/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  130. package/theme/fonts/Inter/Inter_18pt-LightItalic.ttf +0 -0
  131. package/theme/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  132. package/theme/fonts/Inter/Inter_18pt-MediumItalic.ttf +0 -0
  133. package/theme/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  134. package/theme/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  135. package/theme/fonts/Inter/Inter_18pt-SemiBoldItalic.ttf +0 -0
  136. package/theme/fonts/Inter/Inter_18pt-Thin.ttf +0 -0
  137. package/theme/fonts/Inter/Inter_18pt-ThinItalic.ttf +0 -0
  138. package/theme/fonts/Inter/Inter_24pt-Black.ttf +0 -0
  139. package/theme/fonts/Inter/Inter_24pt-BlackItalic.ttf +0 -0
  140. package/theme/fonts/Inter/Inter_24pt-Bold.ttf +0 -0
  141. package/theme/fonts/Inter/Inter_24pt-BoldItalic.ttf +0 -0
  142. package/theme/fonts/Inter/Inter_24pt-ExtraBold.ttf +0 -0
  143. package/theme/fonts/Inter/Inter_24pt-ExtraBoldItalic.ttf +0 -0
  144. package/theme/fonts/Inter/Inter_24pt-ExtraLight.ttf +0 -0
  145. package/theme/fonts/Inter/Inter_24pt-ExtraLightItalic.ttf +0 -0
  146. package/theme/fonts/Inter/Inter_24pt-Italic.ttf +0 -0
  147. package/theme/fonts/Inter/Inter_24pt-Light.ttf +0 -0
  148. package/theme/fonts/Inter/Inter_24pt-LightItalic.ttf +0 -0
  149. package/theme/fonts/Inter/Inter_24pt-Medium.ttf +0 -0
  150. package/theme/fonts/Inter/Inter_24pt-MediumItalic.ttf +0 -0
  151. package/theme/fonts/Inter/Inter_24pt-Regular.ttf +0 -0
  152. package/theme/fonts/Inter/Inter_24pt-SemiBold.ttf +0 -0
  153. package/theme/fonts/Inter/Inter_24pt-SemiBoldItalic.ttf +0 -0
  154. package/theme/fonts/Inter/Inter_24pt-Thin.ttf +0 -0
  155. package/theme/fonts/Inter/Inter_24pt-ThinItalic.ttf +0 -0
  156. package/theme/fonts/Inter/Inter_28pt-Black.ttf +0 -0
  157. package/theme/fonts/Inter/Inter_28pt-BlackItalic.ttf +0 -0
  158. package/theme/fonts/Inter/Inter_28pt-Bold.ttf +0 -0
  159. package/theme/fonts/Inter/Inter_28pt-BoldItalic.ttf +0 -0
  160. package/theme/fonts/Inter/Inter_28pt-ExtraBold.ttf +0 -0
  161. package/theme/fonts/Inter/Inter_28pt-ExtraBoldItalic.ttf +0 -0
  162. package/theme/fonts/Inter/Inter_28pt-ExtraLight.ttf +0 -0
  163. package/theme/fonts/Inter/Inter_28pt-ExtraLightItalic.ttf +0 -0
  164. package/theme/fonts/Inter/Inter_28pt-Italic.ttf +0 -0
  165. package/theme/fonts/Inter/Inter_28pt-Light.ttf +0 -0
  166. package/theme/fonts/Inter/Inter_28pt-LightItalic.ttf +0 -0
  167. package/theme/fonts/Inter/Inter_28pt-Medium.ttf +0 -0
  168. package/theme/fonts/Inter/Inter_28pt-MediumItalic.ttf +0 -0
  169. package/theme/fonts/Inter/Inter_28pt-Regular.ttf +0 -0
  170. package/theme/fonts/Inter/Inter_28pt-SemiBold.ttf +0 -0
  171. package/theme/fonts/Inter/Inter_28pt-SemiBoldItalic.ttf +0 -0
  172. package/theme/fonts/Inter/Inter_28pt-Thin.ttf +0 -0
  173. package/theme/fonts/Inter/Inter_28pt-ThinItalic.ttf +0 -0
  174. package/theme/fonts/Inter/woff/Inter18pt-Black.woff +0 -0
  175. package/theme/fonts/Inter/woff/Inter18pt-Black.woff2 +0 -0
  176. package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff +0 -0
  177. package/theme/fonts/Inter/woff/Inter18pt-BlackItalic.woff2 +0 -0
  178. package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff +0 -0
  179. package/theme/fonts/Inter/woff/Inter18pt-BoldItalic.woff2 +0 -0
  180. package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff +0 -0
  181. package/theme/fonts/Inter/woff/Inter18pt-ExtraBold.woff2 +0 -0
  182. package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff +0 -0
  183. package/theme/fonts/Inter/woff/Inter18pt-ExtraBoldItalic.woff2 +0 -0
  184. package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff +0 -0
  185. package/theme/fonts/Inter/woff/Inter18pt-ExtraLight.woff2 +0 -0
  186. package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff +0 -0
  187. package/theme/fonts/Inter/woff/Inter18pt-ExtraLightItalic.woff2 +0 -0
  188. package/theme/fonts/Inter/woff/Inter18pt-Italic.woff +0 -0
  189. package/theme/fonts/Inter/woff/Inter18pt-Italic.woff2 +0 -0
  190. package/theme/fonts/Inter/woff/Inter18pt-Light.woff +0 -0
  191. package/theme/fonts/Inter/woff/Inter18pt-Light.woff2 +0 -0
  192. package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff +0 -0
  193. package/theme/fonts/Inter/woff/Inter18pt-LightItalic.woff2 +0 -0
  194. package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff +0 -0
  195. package/theme/fonts/Inter/woff/Inter18pt-MediumItalic.woff2 +0 -0
  196. package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff +0 -0
  197. package/theme/fonts/Inter/woff/Inter18pt-SemiBoldItalic.woff2 +0 -0
  198. package/theme/fonts/Inter/woff/Inter18pt-Thin.woff +0 -0
  199. package/theme/fonts/Inter/woff/Inter18pt-Thin.woff2 +0 -0
  200. package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff +0 -0
  201. package/theme/fonts/Inter/woff/Inter18pt-ThinItalic.woff2 +0 -0
  202. package/theme/fonts/Inter/woff/Inter24pt-Black.woff +0 -0
  203. package/theme/fonts/Inter/woff/Inter24pt-Black.woff2 +0 -0
  204. package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff +0 -0
  205. package/theme/fonts/Inter/woff/Inter24pt-BlackItalic.woff2 +0 -0
  206. package/theme/fonts/Inter/woff/Inter24pt-Bold.woff +0 -0
  207. package/theme/fonts/Inter/woff/Inter24pt-Bold.woff2 +0 -0
  208. package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff +0 -0
  209. package/theme/fonts/Inter/woff/Inter24pt-BoldItalic.woff2 +0 -0
  210. package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff +0 -0
  211. package/theme/fonts/Inter/woff/Inter24pt-ExtraBold.woff2 +0 -0
  212. package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff +0 -0
  213. package/theme/fonts/Inter/woff/Inter24pt-ExtraBoldItalic.woff2 +0 -0
  214. package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff +0 -0
  215. package/theme/fonts/Inter/woff/Inter24pt-ExtraLight.woff2 +0 -0
  216. package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff +0 -0
  217. package/theme/fonts/Inter/woff/Inter24pt-ExtraLightItalic.woff2 +0 -0
  218. package/theme/fonts/Inter/woff/Inter24pt-Italic.woff +0 -0
  219. package/theme/fonts/Inter/woff/Inter24pt-Italic.woff2 +0 -0
  220. package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff +0 -0
  221. package/theme/fonts/Inter/woff/Inter24pt-LightItalic.woff2 +0 -0
  222. package/theme/fonts/Inter/woff/Inter24pt-Medium.woff +0 -0
  223. package/theme/fonts/Inter/woff/Inter24pt-Medium.woff2 +0 -0
  224. package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff +0 -0
  225. package/theme/fonts/Inter/woff/Inter24pt-MediumItalic.woff2 +0 -0
  226. package/theme/fonts/Inter/woff/Inter24pt-Regular.woff +0 -0
  227. package/theme/fonts/Inter/woff/Inter24pt-Regular.woff2 +0 -0
  228. package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff +0 -0
  229. package/theme/fonts/Inter/woff/Inter24pt-SemiBold.woff2 +0 -0
  230. package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff +0 -0
  231. package/theme/fonts/Inter/woff/Inter24pt-SemiBoldItalic.woff2 +0 -0
  232. package/theme/fonts/Inter/woff/Inter24pt-Thin.woff +0 -0
  233. package/theme/fonts/Inter/woff/Inter24pt-Thin.woff2 +0 -0
  234. package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff +0 -0
  235. package/theme/fonts/Inter/woff/Inter24pt-ThinItalic.woff2 +0 -0
  236. package/theme/fonts/Inter/woff/Inter28pt-Black.woff +0 -0
  237. package/theme/fonts/Inter/woff/Inter28pt-Black.woff2 +0 -0
  238. package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff +0 -0
  239. package/theme/fonts/Inter/woff/Inter28pt-BlackItalic.woff2 +0 -0
  240. package/theme/fonts/Inter/woff/Inter28pt-Bold.woff +0 -0
  241. package/theme/fonts/Inter/woff/Inter28pt-Bold.woff2 +0 -0
  242. package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff +0 -0
  243. package/theme/fonts/Inter/woff/Inter28pt-BoldItalic.woff2 +0 -0
  244. package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff +0 -0
  245. package/theme/fonts/Inter/woff/Inter28pt-ExtraBoldItalic.woff2 +0 -0
  246. package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff +0 -0
  247. package/theme/fonts/Inter/woff/Inter28pt-ExtraLightItalic.woff2 +0 -0
  248. package/theme/fonts/Inter/woff/Inter28pt-Italic.woff +0 -0
  249. package/theme/fonts/Inter/woff/Inter28pt-Italic.woff2 +0 -0
  250. package/theme/fonts/Inter/woff/Inter28pt-Light.woff +0 -0
  251. package/theme/fonts/Inter/woff/Inter28pt-Light.woff2 +0 -0
  252. package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff +0 -0
  253. package/theme/fonts/Inter/woff/Inter28pt-LightItalic.woff2 +0 -0
  254. package/theme/fonts/Inter/woff/Inter28pt-Medium.woff +0 -0
  255. package/theme/fonts/Inter/woff/Inter28pt-Medium.woff2 +0 -0
  256. package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff +0 -0
  257. package/theme/fonts/Inter/woff/Inter28pt-MediumItalic.woff2 +0 -0
  258. package/theme/fonts/Inter/woff/Inter28pt-Regular.woff +0 -0
  259. package/theme/fonts/Inter/woff/Inter28pt-Regular.woff2 +0 -0
  260. package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff +0 -0
  261. package/theme/fonts/Inter/woff/Inter28pt-SemiBold.woff2 +0 -0
  262. package/theme/fonts/Inter/woff/Inter28pt-Thin.woff +0 -0
  263. package/theme/fonts/Inter/woff/Inter28pt-Thin.woff2 +0 -0
  264. package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff +0 -0
  265. package/theme/fonts/Inter/woff/Inter28pt-ThinItalic.woff2 +0 -0
  266. package/util/loaders/index.d.ts +0 -1
  267. package/util/loaders/style/style.loader.service.d.ts +0 -13
  268. /package/{util/custom_pages → boot/pages}/index.d.ts +0 -0
  269. /package/{util/custom_pages → boot/pages}/src/forbidden.component.d.ts +0 -0
  270. /package/{util/custom_pages → boot/pages}/src/notFound.component.d.ts +0 -0
@@ -61,6 +61,7 @@ import * as i10 from '@fortawesome/angular-fontawesome';
61
61
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
62
62
  import { solidIcons, regularIcons } from 'aril/util/lib';
63
63
  import { Title } from '@angular/platform-browser';
64
+ import { bridge } from 'aril/boot/bridge';
64
65
  import * as i2$2 from 'aril/util/pub-sub';
65
66
  import { PubSubService } from 'aril/util/pub-sub';
66
67
  import * as i1$2 from 'aril/util/pipes';
@@ -804,7 +805,7 @@ class HistoryService {
804
805
  multiLanguageTitle.en = pageTitle;
805
806
  }
806
807
  else {
807
- const globalPageTitle = globalThis.__ARIL_PAGE_TITLE__?.();
808
+ const globalPageTitle = bridge.pageTitle();
808
809
  if (globalPageTitle) {
809
810
  multiLanguageTitle.tr = globalPageTitle;
810
811
  multiLanguageTitle.en = globalPageTitle;
@@ -1017,7 +1018,7 @@ class SiteMapSidebarComponent {
1017
1018
  this.layoutService.state.siteMapSidebarVisible = value;
1018
1019
  }
1019
1020
  loadSiteMap() {
1020
- const menuItems = globalThis.hostMenuItems?.() || [];
1021
+ const menuItems = bridge.hostMenuItems();
1021
1022
  const nodes = this.buildSiteMapNodes(menuItems);
1022
1023
  const totalCount = this.countTotalPages(nodes);
1023
1024
  this.siteMapNodes.set(nodes);
@@ -1120,7 +1121,7 @@ class SiteMapSidebarComponent {
1120
1121
  return node.key || `${index}`;
1121
1122
  }
1122
1123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, deps: [{ token: LayoutService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
1123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: SiteMapSidebarComponent, isStandalone: true, selector: "app-site-map-sidebar", ngImport: i0, template: "<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 grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\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", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6$1.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "pipe", type: TranslateJsonPipe, name: "translateJson" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
1124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: SiteMapSidebarComponent, isStandalone: true, selector: "app-site-map-sidebar", ngImport: i0, template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'siteMap'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\n\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"sitemap-content\">\n\t\t<div class=\"search-section grid p-fluid m-0\">\n\t\t\t<aril-text\n\t\t\t\t[placeholder]=\"t('searchPages')\"\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\n\t\t\t\tclass=\"col-10 m-0\">\n\t\t\t</aril-text>\n\t\t\t@if (filteredNodes().length > 0) {\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\n\t\t\t\t\t\tsize=\"xl\"\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"expandAll()\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\n\t\t\t\t\t\tsize=\"xl\"\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"collapseAll()\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\n\t\t<!-- Site Map Tree -->\n\t\t@if (filteredNodes().length > 0) {\n\t\t\t<div class=\"sitemap-tree\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"tree-container\">\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</p-scrollPanel>\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div class=\"empty-state\">\n\t\t\t\t<div class=\"empty-content\">\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<p class=\"empty-message\">\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\n\t\t\t\t\t</p>\n\t\t\t\t\t@if (searchTerm()) {\n\t\t\t\t\t\t<aril-button\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\n\t\t\t\t\t\t\ticon=\"TIMES\"\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\n\t\t\t\t\t\t</aril-button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<!-- Recursive Tree Node Template -->\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"node-item\"\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\n\t\t\t\t\t<div class=\"node-content\">\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\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>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\n\n\t\t\t\t\t\t@if (node.routerLink) {\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Recursive Children -->\n\t\t\t\t@if (node.children && node.expanded) {\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6$1.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "pipe", type: TranslateJsonPipe, name: "translateJson" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
1124
1125
  }
1125
1126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, decorators: [{
1126
1127
  type: Component,
@@ -1136,7 +1137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1136
1137
  TranslocoModule,
1137
1138
  TranslateJsonPipe,
1138
1139
  FontAwesomeModule
1139
- ], template: "<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 grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\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", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
1140
+ ], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'siteMap'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\n\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"sitemap-content\">\n\t\t<div class=\"search-section grid p-fluid m-0\">\n\t\t\t<aril-text\n\t\t\t\t[placeholder]=\"t('searchPages')\"\n\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\n\t\t\t\tclass=\"col-10 m-0\">\n\t\t\t</aril-text>\n\t\t\t@if (filteredNodes().length > 0) {\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\n\t\t\t\t\t\tsize=\"xl\"\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"expandAll()\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\n\t\t\t\t\t\tsize=\"xl\"\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"collapseAll()\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\n\t\t<!-- Site Map Tree -->\n\t\t@if (filteredNodes().length > 0) {\n\t\t\t<div class=\"sitemap-tree\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"tree-container\">\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</p-scrollPanel>\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div class=\"empty-state\">\n\t\t\t\t<div class=\"empty-content\">\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<p class=\"empty-message\">\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\n\t\t\t\t\t</p>\n\t\t\t\t\t@if (searchTerm()) {\n\t\t\t\t\t\t<aril-button\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\n\t\t\t\t\t\t\ticon=\"TIMES\"\n\t\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\n\t\t\t\t\t\t</aril-button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<!-- Recursive Tree Node Template -->\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"node-item\"\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\n\t\t\t\t\t<div class=\"node-content\">\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\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>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\n\n\t\t\t\t\t\t@if (node.routerLink) {\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Recursive Children -->\n\t\t\t\t@if (node.children && node.expanded) {\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n\t</div>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
1140
1141
  }], ctorParameters: () => [{ type: LayoutService }, { type: i5.TranslocoService }] });
1141
1142
 
1142
1143
  // API Endpoints
@@ -1710,7 +1711,7 @@ class GeneralSearchComponent {
1710
1711
  this.presentableData = getPresentableData(this.data, tab);
1711
1712
  }
1712
1713
  goToDetail(item) {
1713
- const isHostYeap = globalThis.activeHost === Apps.YEAP;
1714
+ const isHostYeap = bridge.activeHost() === Apps.YEAP;
1714
1715
  if (isHostYeap) {
1715
1716
  this.router.navigate(['mng/master-data/view-md-data'], {
1716
1717
  queryParams: { assetId: item.assetId }
@@ -1804,8 +1805,10 @@ class AppTopbarComponent {
1804
1805
  }
1805
1806
  }
1806
1807
  setLogoPath() {
1807
- if (globalThis.activeHost) {
1808
- switch (globalThis.activeHost) {
1808
+ const activeHost = bridge.activeHost();
1809
+ const activeMF = bridge.activeMF();
1810
+ if (activeHost) {
1811
+ switch (activeHost) {
1809
1812
  case Apps.YEAP:
1810
1813
  this.logoPath = 'assets/images/yeap-logo-dark.png';
1811
1814
  break;
@@ -1820,7 +1823,7 @@ class AppTopbarComponent {
1820
1823
  }
1821
1824
  }
1822
1825
  else {
1823
- switch (globalThis.activeMF) {
1826
+ switch (activeMF) {
1824
1827
  case Apps.HES:
1825
1828
  case Apps.CTS:
1826
1829
  case Apps.SIS:
@@ -1923,8 +1926,6 @@ class ExpandableMenuComponent {
1923
1926
  this.http = http;
1924
1927
  this.overlayMenuOpenSubscription = null;
1925
1928
  this.routerSubscription = null;
1926
- this.isHostMode = globalThis.isHostMode;
1927
- this.hostMenuItems = globalThis.hostMenuItems;
1928
1929
  this.cachedMenuItems = [];
1929
1930
  this.selectedMainMenuItem = null;
1930
1931
  this.tooltipText = {
@@ -2044,7 +2045,7 @@ class ExpandableMenuComponent {
2044
2045
  }
2045
2046
  }
2046
2047
  updateMenuItems() {
2047
- this.cachedMenuItems = this.isHostMode ? this.hostMenuItems() : this.menuService.menuItems();
2048
+ this.cachedMenuItems = bridge.isHostMode() ? bridge.hostMenuItems() : this.menuService.menuItems();
2048
2049
  }
2049
2050
  getMenuItems() {
2050
2051
  return this.cachedMenuItems;
@@ -2296,9 +2297,7 @@ class StaticSidebarComponent {
2296
2297
  });
2297
2298
  }
2298
2299
  getMenuItems() {
2299
- const isHostMode = globalThis.isHostMode;
2300
- const hostMenuItems = globalThis.hostMenuItems;
2301
- return isHostMode ? hostMenuItems() : this.menuService.menuItems();
2300
+ return bridge.isHostMode() ? bridge.hostMenuItems() : this.menuService.menuItems();
2302
2301
  }
2303
2302
  getLocalText(text) {
2304
2303
  return this.translateJsonPipe.transform(text);
@@ -2658,7 +2657,6 @@ class AppLayoutComponent {
2658
2657
  this.layoutService = layoutService;
2659
2658
  this.renderer = renderer;
2660
2659
  this.router = router;
2661
- this.globalThis = globalThis;
2662
2660
  this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {
2663
2661
  if (!this.menuOutsideClickListener) {
2664
2662
  this.menuOutsideClickListener = this.renderer.listen('document', 'click', (event) => {
@@ -2833,10 +2831,10 @@ class AppBreadcrumbComponent {
2833
2831
  }));
2834
2832
  this.breadcrumbs.unshift({ icon: 'pi pi-home', url: '/' });
2835
2833
  // Update global page title signal with the last breadcrumb label
2836
- const pageTitle = globalThis.__ARIL_PAGE_TITLE__?.();
2834
+ const pageTitle = bridge.pageTitle();
2837
2835
  if (pageTitle) {
2838
2836
  const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];
2839
- pageTitle.set(lastBreadcrumb?.label || '');
2837
+ bridge.pageTitle.set(lastBreadcrumb?.label || '');
2840
2838
  }
2841
2839
  const currentUrl = this.router.url;
2842
2840
  this.pubSubService.publish({