aril 1.1.63 → 1.1.65

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 (637) hide show
  1. package/README.md +62 -62
  2. package/boot/config/api/src/api.service.d.ts +1 -0
  3. package/boot/config/api.sample.json +8 -8
  4. package/esm2022/boot/config/api/index.mjs +1 -1
  5. package/esm2022/boot/config/api/src/api.service.mjs +15 -3
  6. package/esm2022/boot/config/api/src/interfaces.mjs +1 -1
  7. package/esm2022/boot/config/apps/index.mjs +1 -1
  8. package/esm2022/boot/config/apps/src/apps.service.mjs +1 -1
  9. package/esm2022/boot/config/apps/src/auth.guard.mjs +1 -1
  10. package/esm2022/boot/config/apps/src/interfaces.mjs +1 -1
  11. package/esm2022/boot/config/apps/src/reuse-strategy.mjs +1 -1
  12. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +1 -1
  13. package/esm2022/boot/config/plugins/index.mjs +1 -1
  14. package/esm2022/boot/config/plugins/src/getNgZone.mjs +1 -1
  15. package/esm2022/boot/config/plugins/src/interfaces.mjs +1 -1
  16. package/esm2022/boot/config/plugins/src/plugins.service.mjs +1 -1
  17. package/esm2022/boot/config/translate/constants.mjs +1 -1
  18. package/esm2022/boot/config/translate/index.mjs +1 -1
  19. package/esm2022/boot/config/translate/primeng/i18n/tr.mjs +1 -1
  20. package/esm2022/boot/host/index.mjs +1 -1
  21. package/esm2022/boot/host/src/app.component.mjs +1 -1
  22. package/esm2022/boot/host/src/bootstrap.mjs +4 -2
  23. package/esm2022/boot/index.mjs +1 -1
  24. package/esm2022/boot/mfe/index.mjs +1 -1
  25. package/esm2022/boot/mfe/src/app.component.mjs +13 -13
  26. package/esm2022/boot/mfe/src/appComponentLoader.mjs +1 -1
  27. package/esm2022/boot/mfe/src/bootstrap.mjs +1 -1
  28. package/esm2022/boot/mfe/src/loadStyles.mjs +1 -1
  29. package/esm2022/boot/mfe/src/monaco.config.mjs +1 -1
  30. package/esm2022/http/index.mjs +1 -1
  31. package/esm2022/http/lib/enums.mjs +1 -1
  32. package/esm2022/http/lib/interfaces.mjs +1 -1
  33. package/esm2022/http/src/httpBackend.mjs +1 -1
  34. package/esm2022/http/src/httpClient.mjs +1 -1
  35. package/esm2022/http/src/interceptor/accept-language.interceptor.mjs +1 -1
  36. package/esm2022/http/src/serviceBase.mjs +1 -1
  37. package/esm2022/http/src/serviceMockBase.mjs +1 -1
  38. package/esm2022/http/src/serviceRequest.mjs +1 -1
  39. package/esm2022/http/src/serviceStateMethods.mjs +1 -1
  40. package/esm2022/i18n/index.mjs +1 -1
  41. package/esm2022/i18n/src/folder-name-token.mjs +1 -1
  42. package/esm2022/i18n/src/i18n.module.mjs +1 -1
  43. package/esm2022/i18n/src/loader.mjs +1 -1
  44. package/esm2022/i18n/src/provideI18n.mjs +1 -1
  45. package/esm2022/i18n/src/provideScope.mjs +1 -1
  46. package/esm2022/keycloak/src/auth.interceptor.mjs +1 -1
  47. package/esm2022/provider/index.mjs +1 -1
  48. package/esm2022/provider/src/index.mjs +1 -1
  49. package/esm2022/provider/src/prodiveHost.mjs +1 -1
  50. package/esm2022/provider/src/prodiveHostRouter.mjs +1 -1
  51. package/esm2022/provider/src/provideHostKeycloak.mjs +1 -1
  52. package/esm2022/provider/src/provideLocaleId.mjs +1 -1
  53. package/esm2022/public-api.mjs +1 -1
  54. package/esm2022/theme/index.mjs +1 -1
  55. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +3 -3
  56. package/esm2022/theme/layout/app/chatbot/app.chatbot.component.mjs +3 -3
  57. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +3 -3
  58. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +3 -3
  59. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +1 -1
  60. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +3 -3
  61. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +3 -3
  62. package/esm2022/theme/layout/app/general-search/helpers.mjs +1 -1
  63. package/esm2022/theme/layout/app/general-search/models.mjs +1 -1
  64. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +3 -3
  65. package/esm2022/theme/layout/app/history/history.service.mjs +1 -1
  66. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +3 -3
  67. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +23 -23
  68. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +3 -3
  69. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +3 -3
  70. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +3 -3
  71. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +3 -3
  72. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +1 -1
  73. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +3 -3
  74. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +3 -3
  75. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +3 -3
  76. package/esm2022/theme/layout/index.mjs +1 -1
  77. package/esm2022/theme/layout/service/app.layout.service.mjs +1 -1
  78. package/esm2022/theme/layout/service/app.menu.service.mjs +1 -1
  79. package/esm2022/theme/layout/service/breadcrumb.service.mjs +1 -1
  80. package/esm2022/theme/layout/service/interfaces/enum.mjs +1 -1
  81. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  82. package/esm2022/theme/layout/service/menuchangeevent.mjs +1 -1
  83. package/esm2022/theme/layout/service/notifications.service.mjs +1 -1
  84. package/esm2022/theme/layout/service/search.service.mjs +1 -1
  85. package/esm2022/theme/layout/service/selection-group.service.mjs +1 -1
  86. package/esm2022/ui/autoComplete/index.mjs +1 -1
  87. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +3 -3
  88. package/esm2022/ui/autoComplete/src/interfaces.mjs +1 -1
  89. package/esm2022/ui/badge/index.mjs +1 -1
  90. package/esm2022/ui/badge/src/badge.component.mjs +3 -3
  91. package/esm2022/ui/button/index.mjs +1 -1
  92. package/esm2022/ui/button/src/button.component.mjs +3 -3
  93. package/esm2022/ui/button/src/split-button.component.mjs +3 -3
  94. package/esm2022/ui/calendar/index.mjs +1 -1
  95. package/esm2022/ui/calendar/src/calendar.component.mjs +3 -3
  96. package/esm2022/ui/charts/index.mjs +1 -1
  97. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +1 -1
  98. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +1 -1
  99. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +1 -1
  100. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +19 -19
  101. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +14 -14
  102. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +14 -14
  103. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +19 -19
  104. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +15 -15
  105. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +15 -15
  106. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +5 -5
  107. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +1 -1
  108. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +17 -17
  109. package/esm2022/ui/charts/src/theme/theme.mjs +1 -1
  110. package/esm2022/ui/checkbox/index.mjs +1 -1
  111. package/esm2022/ui/checkbox/src/check-box.component.mjs +3 -3
  112. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +3 -3
  113. package/esm2022/ui/chip/src/chip.component.mjs +3 -3
  114. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +3 -3
  115. package/esm2022/ui/dxEditor/index.mjs +1 -1
  116. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +3 -3
  117. package/esm2022/ui/dxField/index.mjs +1 -1
  118. package/esm2022/ui/dxField/src/dx-field.component.mjs +3 -3
  119. package/esm2022/ui/editor/index.mjs +1 -1
  120. package/esm2022/ui/editor/src/aril-editor.component.mjs +3 -3
  121. package/esm2022/ui/editor/src/types.mjs +1 -1
  122. package/esm2022/ui/field/index.mjs +1 -1
  123. package/esm2022/ui/field/src/field.component.mjs +3 -3
  124. package/esm2022/ui/fileUpload/index.mjs +1 -1
  125. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +3 -3
  126. package/esm2022/ui/form/index.mjs +1 -1
  127. package/esm2022/ui/form/src/form-submit-button.component.mjs +3 -3
  128. package/esm2022/ui/form/src/form.component.mjs +1 -1
  129. package/esm2022/ui/img-viewer/index.mjs +1 -1
  130. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +3 -3
  131. package/esm2022/ui/index.mjs +1 -1
  132. package/esm2022/ui/json-diff-comparison/index.mjs +1 -1
  133. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +3 -3
  134. package/esm2022/ui/lib/index.mjs +1 -1
  135. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +9 -9
  136. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +1 -1
  137. package/esm2022/ui/lib/src/form/form-field-builder.mjs +1 -1
  138. package/esm2022/ui/lib/src/form/form-validation.mjs +1 -1
  139. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +1 -1
  140. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +1 -1
  141. package/esm2022/ui/lib/src/input/baseInput.mjs +1 -1
  142. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +1 -1
  143. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +1 -1
  144. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +1 -1
  145. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +1 -1
  146. package/esm2022/ui/lib/src/input/input-transforms.mjs +1 -1
  147. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +1 -1
  148. package/esm2022/ui/loader/index.mjs +1 -1
  149. package/esm2022/ui/loader/src/loader.component.mjs +3 -3
  150. package/esm2022/ui/mask/index.mjs +1 -1
  151. package/esm2022/ui/mask/src/mask.component.mjs +3 -3
  152. package/esm2022/ui/multiSelect/index.mjs +1 -1
  153. package/esm2022/ui/multiSelect/src/interfaces.mjs +1 -1
  154. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -3
  155. package/esm2022/ui/number/index.mjs +1 -1
  156. package/esm2022/ui/number/src/number.component.mjs +3 -3
  157. package/esm2022/ui/operation-types-dialog/index.mjs +1 -1
  158. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +11 -11
  159. package/esm2022/ui/overlayPanel/index.mjs +1 -1
  160. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +3 -3
  161. package/esm2022/ui/panel/index.mjs +1 -1
  162. package/esm2022/ui/panel/src/panel.component.mjs +3 -3
  163. package/esm2022/ui/password/index.mjs +1 -1
  164. package/esm2022/ui/password/src/password.component.mjs +3 -3
  165. package/esm2022/ui/pdf-viewer/index.mjs +1 -1
  166. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +3 -3
  167. package/esm2022/ui/progressbar/index.mjs +1 -1
  168. package/esm2022/ui/progressbar/src/progressbar.component.mjs +3 -3
  169. package/esm2022/ui/radioButton/index.mjs +1 -1
  170. package/esm2022/ui/radioButton/src/radio-button.component.mjs +3 -3
  171. package/esm2022/ui/relativeDateSelector/src/enum.mjs +1 -1
  172. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +3 -3
  173. package/esm2022/ui/selectBox/index.mjs +1 -1
  174. package/esm2022/ui/selectBox/src/interfaces.mjs +1 -1
  175. package/esm2022/ui/selectBox/src/select-box.component.mjs +3 -3
  176. package/esm2022/ui/switch/index.mjs +1 -1
  177. package/esm2022/ui/switch/src/switch.component.mjs +3 -3
  178. package/esm2022/ui/table/index.mjs +1 -1
  179. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +127 -127
  180. package/esm2022/ui/table/src/interfaces.mjs +1 -1
  181. package/esm2022/ui/table/src/table-column.component.mjs +1 -1
  182. package/esm2022/ui/table/src/table.component.mjs +3 -3
  183. package/esm2022/ui/table-expand/index.mjs +1 -1
  184. package/esm2022/ui/table-expand/src/table-column.component.mjs +1 -1
  185. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +1 -1
  186. package/esm2022/ui/table-expand/src/table.component.mjs +3 -3
  187. package/esm2022/ui/tag/src/tag.component.mjs +3 -3
  188. package/esm2022/ui/tagBox/index.mjs +1 -1
  189. package/esm2022/ui/tagBox/src/tag-box.component.mjs +3 -3
  190. package/esm2022/ui/text/index.mjs +1 -1
  191. package/esm2022/ui/text/src/text.component.mjs +3 -3
  192. package/esm2022/ui/textArea/index.mjs +1 -1
  193. package/esm2022/ui/textArea/src/text-area.component.mjs +3 -3
  194. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +3 -3
  195. package/esm2022/ui/tooltip/index.mjs +1 -1
  196. package/esm2022/ui/tooltip/src/tooltip-component.mjs +3 -3
  197. package/esm2022/ui/translate-input/index.mjs +1 -1
  198. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +3 -3
  199. package/esm2022/ui/translate-input/src/aril-lang-modal/constants.mjs +1 -1
  200. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +25 -25
  201. package/esm2022/ui/translate-input/src/interface.mjs +1 -1
  202. package/esm2022/ui/tree/index.mjs +1 -1
  203. package/esm2022/ui/tree/src/tree.component.mjs +3 -3
  204. package/esm2022/ui/treeSelect/index.mjs +1 -1
  205. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +3 -3
  206. package/esm2022/ui/treeTable/index.mjs +1 -1
  207. package/esm2022/ui/treeTable/src/tree-table.component.mjs +3 -3
  208. package/esm2022/ui/value/index.mjs +1 -1
  209. package/esm2022/ui/value/src/value.component.mjs +3 -3
  210. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +3 -3
  211. package/esm2022/ui-business/assetPicker/src/interface.mjs +1 -1
  212. package/esm2022/ui-business/detailed-overlay-panel/index.mjs +1 -1
  213. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +3 -3
  214. package/esm2022/ui-business/detailed-overlay-panel/src/interface.mjs +1 -1
  215. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +3 -3
  216. package/esm2022/ui-business/enumPicker/src/interface.mjs +1 -1
  217. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +29 -29
  218. package/esm2022/ui-business/index.mjs +1 -1
  219. package/esm2022/ui-business/multiple-ref-value/index.mjs +1 -1
  220. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +3 -3
  221. package/esm2022/ui-business/notification-templates-dialog/index.mjs +1 -1
  222. package/esm2022/ui-business/notification-templates-dialog/src/interface.mjs +1 -1
  223. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +3 -3
  224. package/esm2022/ui-business/operation-types-dialog/index.mjs +1 -1
  225. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +11 -11
  226. package/esm2022/ui-business/ref-value/index.mjs +1 -1
  227. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +3 -3
  228. package/esm2022/ui-business/rolePicker/index.mjs +1 -1
  229. package/esm2022/ui-business/rolePicker/src/interface.mjs +1 -1
  230. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +3 -3
  231. package/esm2022/ui-business/userPicker/src/interface.mjs +1 -1
  232. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +3 -3
  233. package/esm2022/util/block/index.mjs +1 -1
  234. package/esm2022/util/block/src/block.mjs +1 -1
  235. package/esm2022/util/custom_pages/index.mjs +1 -1
  236. package/esm2022/util/custom_pages/src/notFound.component.mjs +47 -47
  237. package/esm2022/util/directives/aril-util-directives.mjs +5 -0
  238. package/esm2022/util/directives/index.mjs +4 -0
  239. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +298 -0
  240. package/esm2022/util/directives/src/detail-page-customization/index.mjs +3 -0
  241. package/esm2022/util/directives/src/detail-page-customization/models.mjs +4 -0
  242. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +25 -0
  243. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +16 -0
  244. package/esm2022/util/init-event/index.mjs +1 -1
  245. package/esm2022/util/init-event/src/init-event.directive.mjs +1 -1
  246. package/esm2022/util/lib/index.mjs +1 -1
  247. package/esm2022/util/lib/src/interfaces.mjs +1 -1
  248. package/esm2022/util/lib/src/module-router.mjs +1 -1
  249. package/esm2022/util/lib/src/types.mjs +1 -1
  250. package/esm2022/util/lib/src/validators/iban.validator.mjs +1 -1
  251. package/esm2022/util/lib/src/validators/index.mjs +1 -1
  252. package/esm2022/util/lib/src/validators/max-array-length.validator.mjs +1 -1
  253. package/esm2022/util/lib/src/validators/min-array-length.validator.mjs +1 -1
  254. package/esm2022/util/lib/src/validators/tckn.validator.mjs +1 -1
  255. package/esm2022/util/lib/src/validators/validators.mjs +1 -1
  256. package/esm2022/util/loaders/index.mjs +1 -1
  257. package/esm2022/util/loaders/script/script.loader.service.mjs +1 -1
  258. package/esm2022/util/loaders/style/style.loader.service.mjs +1 -1
  259. package/esm2022/util/pipes/index.mjs +1 -1
  260. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +1 -1
  261. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +1 -1
  262. package/esm2022/util/pipes/src/parse.pipe.mjs +1 -1
  263. package/esm2022/util/pipes/src/round-number.pipe.mjs +1 -1
  264. package/esm2022/util/pipes/src/safe.pipe.mjs +1 -1
  265. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +1 -1
  266. package/esm2022/util/primitive-extensions/index.mjs +1 -1
  267. package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +1 -1
  268. package/esm2022/util/primitive-extensions/src/date.extensions.mjs +1 -1
  269. package/esm2022/util/primitive-extensions/src/number.extensions.mjs +1 -1
  270. package/esm2022/util/primitive-extensions/src/string.extensions.mjs +1 -1
  271. package/esm2022/util/pub-sub/index.mjs +1 -1
  272. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +1 -1
  273. package/esm2022/util/sync-active-tab-route/index.mjs +1 -1
  274. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +1 -1
  275. package/esm2022/util/unwrap/index.mjs +1 -1
  276. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +1 -1
  277. package/fesm2022/{aril-app.component-hxaLgwmC.mjs → aril-app.component-BrM-uBqB.mjs} +13 -13
  278. package/fesm2022/aril-app.component-BrM-uBqB.mjs.map +1 -0
  279. package/fesm2022/aril-boot-config-api.mjs +15 -3
  280. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  281. package/fesm2022/aril-boot-config-apps.mjs +1 -1
  282. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  283. package/fesm2022/aril-boot-config-plugins.mjs +2 -2
  284. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  285. package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
  286. package/fesm2022/aril-boot-host.mjs +7 -5
  287. package/fesm2022/aril-boot-host.mjs.map +1 -1
  288. package/fesm2022/{aril-boot-mfe-app.component-s1a-tkOD.mjs → aril-boot-mfe-app.component-BWEM0ozE.mjs} +14 -14
  289. package/fesm2022/aril-boot-mfe-app.component-BWEM0ozE.mjs.map +1 -0
  290. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs → aril-boot-mfe-aril-boot-mfe-Chnmyg0H.mjs} +7 -7
  291. package/fesm2022/aril-boot-mfe-aril-boot-mfe-Chnmyg0H.mjs.map +1 -0
  292. package/fesm2022/aril-boot-mfe.mjs +1 -1
  293. package/fesm2022/aril-boot.mjs.map +1 -1
  294. package/fesm2022/aril-http.mjs.map +1 -1
  295. package/fesm2022/aril-i18n.mjs.map +1 -1
  296. package/fesm2022/aril-keycloak.mjs.map +1 -1
  297. package/fesm2022/aril-provider.mjs +1 -1
  298. package/fesm2022/aril-provider.mjs.map +1 -1
  299. package/fesm2022/aril-theme-layout.mjs +52 -52
  300. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  301. package/fesm2022/aril-theme.mjs.map +1 -1
  302. package/fesm2022/aril-ui-autoComplete.mjs +5 -5
  303. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
  304. package/fesm2022/aril-ui-badge.mjs +3 -3
  305. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  306. package/fesm2022/aril-ui-business-assetPicker.mjs +4 -4
  307. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  308. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +4 -4
  309. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  310. package/fesm2022/aril-ui-business-enumPicker.mjs +4 -4
  311. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  312. package/fesm2022/aril-ui-business-image-viewer.mjs +28 -28
  313. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
  314. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +3 -3
  315. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
  316. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +2 -2
  317. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
  318. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +10 -10
  319. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +1 -1
  320. package/fesm2022/aril-ui-business-ref-value.mjs +3 -3
  321. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
  322. package/fesm2022/aril-ui-business-rolePicker.mjs +3 -3
  323. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
  324. package/fesm2022/aril-ui-business-userPicker.mjs +2 -2
  325. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
  326. package/fesm2022/aril-ui-business.mjs.map +1 -1
  327. package/fesm2022/aril-ui-button.mjs +5 -5
  328. package/fesm2022/aril-ui-button.mjs.map +1 -1
  329. package/fesm2022/aril-ui-calendar.mjs +2 -2
  330. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  331. package/fesm2022/aril-ui-charts.mjs +111 -111
  332. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  333. package/fesm2022/aril-ui-checkbox.mjs +4 -4
  334. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  335. package/fesm2022/aril-ui-chip.mjs +3 -3
  336. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  337. package/fesm2022/aril-ui-collapse-reorder-list.mjs +3 -3
  338. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
  339. package/fesm2022/aril-ui-dxEditor.mjs +3 -3
  340. package/fesm2022/aril-ui-dxEditor.mjs.map +1 -1
  341. package/fesm2022/aril-ui-dxField.mjs +3 -3
  342. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  343. package/fesm2022/aril-ui-editor.mjs +3 -3
  344. package/fesm2022/aril-ui-editor.mjs.map +1 -1
  345. package/fesm2022/aril-ui-field.mjs +3 -3
  346. package/fesm2022/aril-ui-field.mjs.map +1 -1
  347. package/fesm2022/aril-ui-fileUpload.mjs +3 -3
  348. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  349. package/fesm2022/aril-ui-form.mjs +3 -3
  350. package/fesm2022/aril-ui-form.mjs.map +1 -1
  351. package/fesm2022/aril-ui-img-viewer.mjs +2 -2
  352. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
  353. package/fesm2022/aril-ui-json-diff-comparison.mjs +3 -3
  354. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
  355. package/fesm2022/aril-ui-lib.mjs +9 -9
  356. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  357. package/fesm2022/aril-ui-loader.mjs +2 -2
  358. package/fesm2022/aril-ui-loader.mjs.map +1 -1
  359. package/fesm2022/aril-ui-mask.mjs +2 -2
  360. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  361. package/fesm2022/aril-ui-multiSelect.mjs +3 -2
  362. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  363. package/fesm2022/aril-ui-number.mjs +2 -2
  364. package/fesm2022/aril-ui-number.mjs.map +1 -1
  365. package/fesm2022/aril-ui-operation-types-dialog.mjs +10 -10
  366. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
  367. package/fesm2022/aril-ui-overlayPanel.mjs +3 -3
  368. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  369. package/fesm2022/aril-ui-panel.mjs +3 -3
  370. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  371. package/fesm2022/aril-ui-password.mjs +2 -2
  372. package/fesm2022/aril-ui-password.mjs.map +1 -1
  373. package/fesm2022/aril-ui-pdf-viewer.mjs +2 -2
  374. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
  375. package/fesm2022/aril-ui-progressbar.mjs +2 -2
  376. package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
  377. package/fesm2022/aril-ui-radioButton.mjs +2 -2
  378. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  379. package/fesm2022/aril-ui-relativeDateSelector.mjs +3 -3
  380. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  381. package/fesm2022/aril-ui-selectBox.mjs +4 -4
  382. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  383. package/fesm2022/aril-ui-switch.mjs +2 -2
  384. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  385. package/fesm2022/aril-ui-table-expand.mjs +3 -3
  386. package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
  387. package/fesm2022/aril-ui-table.mjs +130 -130
  388. package/fesm2022/aril-ui-table.mjs.map +1 -1
  389. package/fesm2022/aril-ui-tag.mjs +2 -2
  390. package/fesm2022/aril-ui-tag.mjs.map +1 -1
  391. package/fesm2022/aril-ui-tagBox.mjs +4 -4
  392. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  393. package/fesm2022/aril-ui-text.mjs +2 -2
  394. package/fesm2022/aril-ui-text.mjs.map +1 -1
  395. package/fesm2022/aril-ui-textArea.mjs +2 -2
  396. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  397. package/fesm2022/aril-ui-toggle-button.mjs +3 -3
  398. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
  399. package/fesm2022/aril-ui-tooltip.mjs +2 -2
  400. package/fesm2022/aril-ui-tooltip.mjs.map +1 -1
  401. package/fesm2022/aril-ui-translate-input.mjs +26 -26
  402. package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
  403. package/fesm2022/aril-ui-tree.mjs +3 -3
  404. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  405. package/fesm2022/aril-ui-treeSelect.mjs +3 -3
  406. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
  407. package/fesm2022/aril-ui-treeTable.mjs +3 -3
  408. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  409. package/fesm2022/aril-ui-value.mjs +4 -4
  410. package/fesm2022/aril-ui-value.mjs.map +1 -1
  411. package/fesm2022/aril-ui.mjs.map +1 -1
  412. package/fesm2022/aril-util-block.mjs.map +1 -1
  413. package/fesm2022/aril-util-custom_pages.mjs +46 -46
  414. package/fesm2022/aril-util-custom_pages.mjs.map +1 -1
  415. package/fesm2022/aril-util-directives.mjs +343 -0
  416. package/fesm2022/aril-util-directives.mjs.map +1 -0
  417. package/fesm2022/aril-util-init-event.mjs +1 -1
  418. package/fesm2022/aril-util-init-event.mjs.map +1 -1
  419. package/fesm2022/aril-util-lib.mjs.map +1 -1
  420. package/fesm2022/aril-util-loaders.mjs +1 -1
  421. package/fesm2022/aril-util-loaders.mjs.map +1 -1
  422. package/fesm2022/aril-util-pipes.mjs +1 -1
  423. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  424. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  425. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  426. package/fesm2022/aril-util-sync-active-tab-route.mjs +1 -1
  427. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  428. package/fesm2022/aril-util-unwrap.mjs.map +1 -1
  429. package/fesm2022/aril.mjs +9 -7
  430. package/fesm2022/aril.mjs.map +1 -1
  431. package/package.json +115 -109
  432. package/scripts/util/blockui.min.js +6 -6
  433. package/styles/ui/ui.common.scss +42 -42
  434. package/styles/util/blockui.css +56 -56
  435. package/theme/index.ts +1 -1
  436. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +8 -8
  437. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +126 -126
  438. package/theme/layout/app/chatbot/app.chatbot.component.html +108 -108
  439. package/theme/layout/app/chatbot/app.chatbot.component.scss +34 -34
  440. package/theme/layout/app/chatbot/app.chatbot.component.ts +151 -151
  441. package/theme/layout/app/config/app.config.component.html +146 -146
  442. package/theme/layout/app/config/app.config.component.ts +143 -143
  443. package/theme/layout/app/expandableMenu/expandable-menu.component.html +89 -89
  444. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +295 -295
  445. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +110 -110
  446. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -181
  447. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +260 -260
  448. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +95 -95
  449. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -27
  450. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -165
  451. package/theme/layout/app/general-search/general-search.component.html +57 -57
  452. package/theme/layout/app/general-search/general-search.component.scss +27 -27
  453. package/theme/layout/app/general-search/general-search.component.ts +93 -93
  454. package/theme/layout/app/general-search/helpers.spec.ts +527 -527
  455. package/theme/layout/app/general-search/helpers.ts +106 -106
  456. package/theme/layout/app/general-search/models.ts +142 -142
  457. package/theme/layout/app/history/history-sidebar.component.html +87 -87
  458. package/theme/layout/app/history/history-sidebar.component.scss +182 -182
  459. package/theme/layout/app/history/history-sidebar.component.ts +143 -143
  460. package/theme/layout/app/history/history.service.ts +154 -154
  461. package/theme/layout/app/layout/app.layout.component.html +27 -27
  462. package/theme/layout/app/layout/app.layout.component.ts +171 -171
  463. package/theme/layout/app/layout/mfe.layout.component.ts +59 -59
  464. package/theme/layout/app/menu/app.menu.component.html +14 -14
  465. package/theme/layout/app/menu/app.menu.component.ts +350 -350
  466. package/theme/layout/app/notifications/notifications-sidebar.component.html +104 -104
  467. package/theme/layout/app/notifications/notifications-sidebar.component.scss +237 -237
  468. package/theme/layout/app/notifications/notifications-sidebar.component.ts +221 -221
  469. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +122 -122
  470. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +151 -151
  471. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +141 -141
  472. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +48 -48
  473. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +27 -27
  474. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -178
  475. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +71 -71
  476. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +251 -251
  477. package/theme/layout/app/profileSidebar/profile.service.ts +116 -116
  478. package/theme/layout/app/sidebar/app.sidebar.component.html +24 -24
  479. package/theme/layout/app/sidebar/app.sidebar.component.ts +44 -44
  480. package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
  481. package/theme/layout/app/site-map/site-map-sidebar.component.scss +178 -178
  482. package/theme/layout/app/site-map/site-map-sidebar.component.ts +193 -193
  483. package/theme/layout/app/static-sidebar/static-sidebar.component.html +123 -123
  484. package/theme/layout/app/static-sidebar/static-sidebar.component.scss +408 -408
  485. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +276 -276
  486. package/theme/layout/app/topbar/app.topbar.component.html +85 -85
  487. package/theme/layout/app/topbar/app.topbar.component.scss +193 -193
  488. package/theme/layout/app/topbar/app.topbar.component.ts +172 -172
  489. package/theme/layout/index.ts +7 -7
  490. package/theme/layout/ng-package.json +6 -6
  491. package/theme/layout/service/app.layout.service.ts +307 -307
  492. package/theme/layout/service/app.menu.service.ts +53 -53
  493. package/theme/layout/service/breadcrumb.service.ts +14 -14
  494. package/theme/layout/service/interfaces/enum.ts +13 -13
  495. package/theme/layout/service/interfaces/interfaces.ts +150 -150
  496. package/theme/layout/service/menuchangeevent.ts +4 -4
  497. package/theme/layout/service/notifications.service.ts +26 -26
  498. package/theme/layout/service/search.service.ts +22 -22
  499. package/theme/layout/service/selection-group.service.ts +73 -73
  500. package/theme/ng-package.json +6 -6
  501. package/theme/styles/layout/_animation.scss +53 -53
  502. package/theme/styles/layout/_breadcrumb.scss +31 -31
  503. package/theme/styles/layout/_config.scss +42 -42
  504. package/theme/styles/layout/_content.scss +61 -61
  505. package/theme/styles/layout/_expanded_sidebar.scss +486 -486
  506. package/theme/styles/layout/_fonts.scss +93 -93
  507. package/theme/styles/layout/_layout_dark.scss +5 -5
  508. package/theme/styles/layout/_layout_dim.scss +5 -5
  509. package/theme/styles/layout/_layout_light.scss +5 -5
  510. package/theme/styles/layout/_main.scss +28 -28
  511. package/theme/styles/layout/_profile.scss +10 -10
  512. package/theme/styles/layout/_responsive.scss +153 -153
  513. package/theme/styles/layout/_sidebar_drawer.scss +234 -234
  514. package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
  515. package/theme/styles/layout/_sidebar_reveal.scss +201 -201
  516. package/theme/styles/layout/_sidebar_slim.scss +144 -144
  517. package/theme/styles/layout/_sidebar_slim_plus.scss +168 -168
  518. package/theme/styles/layout/_sidebar_vertical.scss +156 -156
  519. package/theme/styles/layout/_topbar.scss +140 -140
  520. package/theme/styles/layout/_typography.scss +68 -68
  521. package/theme/styles/layout/_utils.scss +24 -24
  522. package/theme/styles/layout/layout.scss +25 -25
  523. package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
  524. package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
  525. package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
  526. package/theme/styles/layout/menutheme/_transparent.scss +26 -26
  527. package/theme/styles/layout/preloading.scss +84 -84
  528. package/theme/styles/theme/base/_colors.scss +17 -17
  529. package/theme/styles/theme/base/_common.scss +89 -89
  530. package/theme/styles/theme/base/_components.scss +108 -108
  531. package/theme/styles/theme/base/_mixins.scss +337 -337
  532. package/theme/styles/theme/base/components/button/_button.scss +576 -576
  533. package/theme/styles/theme/base/components/button/_speeddial.scss +96 -96
  534. package/theme/styles/theme/base/components/button/_splitbutton.scss +348 -348
  535. package/theme/styles/theme/base/components/data/_carousel.scss +37 -37
  536. package/theme/styles/theme/base/components/data/_datatable.scss +338 -338
  537. package/theme/styles/theme/base/components/data/_dataview.scss +46 -46
  538. package/theme/styles/theme/base/components/data/_filter.scss +137 -137
  539. package/theme/styles/theme/base/components/data/_orderlist.scss +114 -114
  540. package/theme/styles/theme/base/components/data/_organizationchart.scss +50 -50
  541. package/theme/styles/theme/base/components/data/_paginator.scss +92 -92
  542. package/theme/styles/theme/base/components/data/_picklist.scss +114 -114
  543. package/theme/styles/theme/base/components/data/_table.scss +16 -16
  544. package/theme/styles/theme/base/components/data/_timeline.scss +35 -35
  545. package/theme/styles/theme/base/components/data/_tree.scss +150 -150
  546. package/theme/styles/theme/base/components/data/_treetable.scss +255 -255
  547. package/theme/styles/theme/base/components/data/_virtualscroller.scss +28 -28
  548. package/theme/styles/theme/base/components/file/_fileupload.scss +64 -64
  549. package/theme/styles/theme/base/components/input/_autocomplete.scss +141 -141
  550. package/theme/styles/theme/base/components/input/_calendar.scss +267 -267
  551. package/theme/styles/theme/base/components/input/_cascadeselect.scss +135 -135
  552. package/theme/styles/theme/base/components/input/_checkbox.scss +99 -99
  553. package/theme/styles/theme/base/components/input/_chips.scss +67 -67
  554. package/theme/styles/theme/base/components/input/_colorpicker.scss +19 -19
  555. package/theme/styles/theme/base/components/input/_dropdown.scss +151 -151
  556. package/theme/styles/theme/base/components/input/_editor.scss +122 -122
  557. package/theme/styles/theme/base/components/input/_inputgroup.scss +75 -75
  558. package/theme/styles/theme/base/components/input/_inputmask.scss +16 -16
  559. package/theme/styles/theme/base/components/input/_inputnumber.scss +28 -28
  560. package/theme/styles/theme/base/components/input/_inputswitch.scss +60 -60
  561. package/theme/styles/theme/base/components/input/_inputtext.scss +100 -100
  562. package/theme/styles/theme/base/components/input/_listbox.scss +97 -97
  563. package/theme/styles/theme/base/components/input/_multiselect.scss +177 -177
  564. package/theme/styles/theme/base/components/input/_password.scss +52 -52
  565. package/theme/styles/theme/base/components/input/_radiobutton.scss +78 -78
  566. package/theme/styles/theme/base/components/input/_rating.scss +60 -60
  567. package/theme/styles/theme/base/components/input/_selectbutton.scss +50 -50
  568. package/theme/styles/theme/base/components/input/_slider.scss +75 -75
  569. package/theme/styles/theme/base/components/input/_togglebutton.scss +48 -48
  570. package/theme/styles/theme/base/components/input/_treeselect.scss +139 -139
  571. package/theme/styles/theme/base/components/menu/_breadcrumb.scss +43 -43
  572. package/theme/styles/theme/base/components/menu/_contextmenu.scss +39 -39
  573. package/theme/styles/theme/base/components/menu/_dock.scss +95 -95
  574. package/theme/styles/theme/base/components/menu/_megamenu.scss +55 -55
  575. package/theme/styles/theme/base/components/menu/_menu.scss +37 -37
  576. package/theme/styles/theme/base/components/menu/_menubar.scss +140 -140
  577. package/theme/styles/theme/base/components/menu/_panelmenu.scss +153 -153
  578. package/theme/styles/theme/base/components/menu/_slidemenu.scss +59 -59
  579. package/theme/styles/theme/base/components/menu/_steps.scss +56 -56
  580. package/theme/styles/theme/base/components/menu/_tabmenu.scss +73 -73
  581. package/theme/styles/theme/base/components/menu/_tieredmenu.scss +43 -43
  582. package/theme/styles/theme/base/components/messages/_inlinemessage.scss +69 -69
  583. package/theme/styles/theme/base/components/messages/_message.scss +107 -107
  584. package/theme/styles/theme/base/components/messages/_toast.scss +99 -99
  585. package/theme/styles/theme/base/components/misc/_avatar.scss +30 -30
  586. package/theme/styles/theme/base/components/misc/_badge.scss +48 -48
  587. package/theme/styles/theme/base/components/misc/_chip.scss +42 -42
  588. package/theme/styles/theme/base/components/misc/_inplace.scss +16 -16
  589. package/theme/styles/theme/base/components/misc/_progressbar.scss +17 -17
  590. package/theme/styles/theme/base/components/misc/_scrolltop.scss +25 -25
  591. package/theme/styles/theme/base/components/misc/_skeleton.scss +8 -8
  592. package/theme/styles/theme/base/components/misc/_tag.scss +45 -45
  593. package/theme/styles/theme/base/components/misc/_terminal.scss +12 -12
  594. package/theme/styles/theme/base/components/multimedia/_galleria.scss +155 -155
  595. package/theme/styles/theme/base/components/multimedia/_image.scss +49 -49
  596. package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +70 -70
  597. package/theme/styles/theme/base/components/overlay/_dialog.scss +69 -69
  598. package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +62 -62
  599. package/theme/styles/theme/base/components/overlay/_sidebar.scss +28 -28
  600. package/theme/styles/theme/base/components/overlay/_tooltip.scss +33 -33
  601. package/theme/styles/theme/base/components/panel/_accordion.scss +119 -119
  602. package/theme/styles/theme/base/components/panel/_card.scss +30 -30
  603. package/theme/styles/theme/base/components/panel/_divider.scss +31 -31
  604. package/theme/styles/theme/base/components/panel/_fieldset.scss +47 -47
  605. package/theme/styles/theme/base/components/panel/_panel.scss +77 -77
  606. package/theme/styles/theme/base/components/panel/_scrollpanel.scss +6 -6
  607. package/theme/styles/theme/base/components/panel/_splitter.scss +19 -19
  608. package/theme/styles/theme/base/components/panel/_stepper.scss +200 -200
  609. package/theme/styles/theme/base/components/panel/_tabview.scss +91 -91
  610. package/theme/styles/theme/base/components/panel/_toolbar.scss +11 -11
  611. package/theme/styles/theme/dark/_extensions.scss +134 -134
  612. package/theme/styles/theme/dark/_variables.scss +933 -933
  613. package/theme/styles/theme/dark/blue/theme.scss +14 -14
  614. package/theme/styles/theme/dark/indigo/theme.scss +14 -14
  615. package/theme/styles/theme/dark/lena/theme.scss +14 -14
  616. package/theme/styles/theme/dark/orange/theme.scss +14 -14
  617. package/theme/styles/theme/dark/thor/theme.scss +14 -14
  618. package/theme/styles/theme/dark/yeap/theme.scss +14 -14
  619. package/theme/styles/theme/light/_extensions.scss +116 -116
  620. package/theme/styles/theme/light/_variables.scss +940 -940
  621. package/theme/styles/theme/light/blue/theme.scss +14 -14
  622. package/theme/styles/theme/light/custom/theme.scss +16 -16
  623. package/theme/styles/theme/light/indigo/theme.scss +14 -14
  624. package/theme/styles/theme/light/lena/theme.scss +14 -14
  625. package/theme/styles/theme/light/orange/theme.scss +14 -14
  626. package/theme/styles/theme/light/thor/theme.scss +15 -15
  627. package/theme/styles/theme/light/yeap/theme.scss +14 -14
  628. package/ui/multiSelect/src/multi-select.component.d.ts +2 -1
  629. package/util/directives/index.d.ts +3 -0
  630. package/util/directives/src/detail-page-customization/detail-page-customization.directive.d.ts +26 -0
  631. package/util/directives/src/detail-page-customization/index.d.ts +2 -0
  632. package/util/directives/src/detail-page-customization/models.d.ts +53 -0
  633. package/util/directives/src/dialog-component/plugin-dialog.component.d.ts +10 -0
  634. package/util/directives/src/dialog-service/plugin-dialog.service.d.ts +7 -0
  635. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +0 -1
  636. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +0 -1
  637. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +0 -1
@@ -251,7 +251,7 @@ class ChangePasswordModalComponent {
251
251
  this.dialogRef.close('cancel');
252
252
  }
253
253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChangePasswordModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }, { token: ProfileService }, { token: i5.TranslocoService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ChangePasswordModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<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\tautocomplete=\"new-password\"\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\tautocomplete=\"new-password\"\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", styles: [".change-password-modal :host ::ng-deep .p-password.ng-invalid.ng-touched .p-inputtext{border-color:var(--red-500, #ef4444);box-shadow:0 0 0 1px var(--red-500, #ef4444)}.change-password-modal :host ::ng-deep .p-password.ng-valid.ng-touched .p-inputtext{border-color:var(--green-500, #22c55e);box-shadow:0 0 0 1px var(--green-500, #22c55e)}.change-password-modal :host ::ng-deep .tooltipErrorMessage{background-color:var(--red-500, #ef4444)!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;border-radius:4px!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px #0000001a!important}.change-password-modal :host ::ng-deep .tooltipErrorMessage .p-tooltip-arrow{border-top-color:var(--red-500, #ef4444)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { 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: "ngmodule", type: PasswordModule }, { kind: "component", type: i7.Password, selector: "p-password", inputs: ["ariaLabel", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ChangePasswordModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"change-password-modal\" *transloco=\"let t; read: 'profileSidebar'\">\n\t<aril-form [formGroup]=\"passwordForm\">\n\t\t<aril-field [label]=\"t('newPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<p-password \n\t\t\t\tformControlName=\"newPassword\"\n\t\t\t\t[placeholder]=\"t('newPassword')\"\n\t\t\t\t[feedback]=\"false\"\n\t\t\t\t[toggleMask]=\"true\"\n\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t[pTooltip]=\"passwordForm.get('newPassword')?.invalid && passwordForm.get('newPassword')?.touched ? getErrorMessage('newPassword') : ''\"\n\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\n\t\t\t</p-password>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('confirmPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<p-password \n\t\t\t\tformControlName=\"confirmPassword\"\n\t\t\t\t[placeholder]=\"t('confirmPassword')\"\n\t\t\t\t[feedback]=\"false\"\n\t\t\t\t[toggleMask]=\"true\"\n\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t[pTooltip]=\"passwordForm.get('confirmPassword')?.invalid && passwordForm.get('confirmPassword')?.touched ? getErrorMessage('confirmPassword') : ''\"\n\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\n\t\t\t</p-password>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\n\t\t\t<aril-button\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[label]=\"t('cancel')\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\ticon=\"TIMES\"\n\t\t\t\t(clickEvent)=\"cancel()\">\n\t\t\t</aril-button>\n\t\t\t<aril-button\n\t\t\t\tcolor=\"success\"\n\t\t\t\t[label]=\"t('save')\"\n\t\t\t\t[raised]=\"false\"\n\t\t\t\ticon=\"CHECK\"\n\t\t\t\t(clickEvent)=\"submit()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</aril-form>\n</div>\n", styles: [".change-password-modal :host ::ng-deep .p-password.ng-invalid.ng-touched .p-inputtext{border-color:var(--red-500, #ef4444);box-shadow:0 0 0 1px var(--red-500, #ef4444)}.change-password-modal :host ::ng-deep .p-password.ng-valid.ng-touched .p-inputtext{border-color:var(--green-500, #22c55e);box-shadow:0 0 0 1px var(--green-500, #22c55e)}.change-password-modal :host ::ng-deep .tooltipErrorMessage{background-color:var(--red-500, #ef4444)!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;border-radius:4px!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px #0000001a!important}.change-password-modal :host ::ng-deep .tooltipErrorMessage .p-tooltip-arrow{border-top-color:var(--red-500, #ef4444)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { 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: "ngmodule", type: PasswordModule }, { kind: "component", type: i7.Password, selector: "p-password", inputs: ["ariaLabel", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
255
255
  }
256
256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ChangePasswordModalComponent, decorators: [{
257
257
  type: Component,
@@ -265,7 +265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
265
265
  PasswordModule,
266
266
  TooltipModule,
267
267
  TranslocoModule
268
- ], template: "<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\tautocomplete=\"new-password\"\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\tautocomplete=\"new-password\"\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", styles: [".change-password-modal :host ::ng-deep .p-password.ng-invalid.ng-touched .p-inputtext{border-color:var(--red-500, #ef4444);box-shadow:0 0 0 1px var(--red-500, #ef4444)}.change-password-modal :host ::ng-deep .p-password.ng-valid.ng-touched .p-inputtext{border-color:var(--green-500, #22c55e);box-shadow:0 0 0 1px var(--green-500, #22c55e)}.change-password-modal :host ::ng-deep .tooltipErrorMessage{background-color:var(--red-500, #ef4444)!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;border-radius:4px!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px #0000001a!important}.change-password-modal :host ::ng-deep .tooltipErrorMessage .p-tooltip-arrow{border-top-color:var(--red-500, #ef4444)!important}\n"] }]
268
+ ], template: "<div class=\"change-password-modal\" *transloco=\"let t; read: 'profileSidebar'\">\n\t<aril-form [formGroup]=\"passwordForm\">\n\t\t<aril-field [label]=\"t('newPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<p-password \n\t\t\t\tformControlName=\"newPassword\"\n\t\t\t\t[placeholder]=\"t('newPassword')\"\n\t\t\t\t[feedback]=\"false\"\n\t\t\t\t[toggleMask]=\"true\"\n\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t[pTooltip]=\"passwordForm.get('newPassword')?.invalid && passwordForm.get('newPassword')?.touched ? getErrorMessage('newPassword') : ''\"\n\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\n\t\t\t</p-password>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('confirmPassword')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<p-password \n\t\t\t\tformControlName=\"confirmPassword\"\n\t\t\t\t[placeholder]=\"t('confirmPassword')\"\n\t\t\t\t[feedback]=\"false\"\n\t\t\t\t[toggleMask]=\"true\"\n\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t[pTooltip]=\"passwordForm.get('confirmPassword')?.invalid && passwordForm.get('confirmPassword')?.touched ? getErrorMessage('confirmPassword') : ''\"\n\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\ttooltipStyleClass=\"tooltipErrorMessage\">\n\t\t\t</p-password>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\n\t\t\t<aril-button\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[label]=\"t('cancel')\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\ticon=\"TIMES\"\n\t\t\t\t(clickEvent)=\"cancel()\">\n\t\t\t</aril-button>\n\t\t\t<aril-button\n\t\t\t\tcolor=\"success\"\n\t\t\t\t[label]=\"t('save')\"\n\t\t\t\t[raised]=\"false\"\n\t\t\t\ticon=\"CHECK\"\n\t\t\t\t(clickEvent)=\"submit()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</aril-form>\n</div>\n", styles: [".change-password-modal :host ::ng-deep .p-password.ng-invalid.ng-touched .p-inputtext{border-color:var(--red-500, #ef4444);box-shadow:0 0 0 1px var(--red-500, #ef4444)}.change-password-modal :host ::ng-deep .p-password.ng-valid.ng-touched .p-inputtext{border-color:var(--green-500, #22c55e);box-shadow:0 0 0 1px var(--green-500, #22c55e)}.change-password-modal :host ::ng-deep .tooltipErrorMessage{background-color:var(--red-500, #ef4444)!important;color:#fff!important;font-size:.75rem!important;font-weight:500!important;border-radius:4px!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px #0000001a!important}.change-password-modal :host ::ng-deep .tooltipErrorMessage .p-tooltip-arrow{border-top-color:var(--red-500, #ef4444)!important}\n"] }]
269
269
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }, { type: ProfileService }, { type: i5.TranslocoService }, { type: i3.MessageService }] });
270
270
 
271
271
  class EditProfileModalComponent {
@@ -423,7 +423,7 @@ class EditProfileModalComponent {
423
423
  this.levelPairs = [];
424
424
  }
425
425
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DynamicDialogRef }, { token: i3.MessageService }, { token: ProfileService }, { token: i2.DynamicDialogConfig }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [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('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('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\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-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\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('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\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('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\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<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<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { 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: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "labelAsYesNo", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "component", type: TreeSelectComponent, selector: "aril-treeSelect", inputs: ["options", "modelValue", "placeholder", "selectionMode", "display", "showClear", "filter", "filterPlaceholder", "propagateSelectionUp", "propagateSelectionDown", "metaKeySelection", "formControlName"], outputs: ["modelValueChange", "nodeSelect", "nodeUnselect", "cleared"] }] }); }
426
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: EditProfileModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'profileSidebar'\">\n\t<aril-form [formGroup]=\"profileForm\">\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-treeSelect\n\t\t\t\t[options]=\"treeItems\"\n\t\t\t\tformControlName=\"regions\"\n\t\t\t\t[placeholder]=\"t('select')\"\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\n\t\t\t\t(cleared)=\"clear()\">\n\t\t\t</aril-treeSelect>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\n\t\t</div>\n\t</aril-form>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TreeSelectModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "component", type: MaskComponent, selector: "aril-mask[ngModel], aril-mask[formControl], aril-mask[formControlName]", inputs: ["mask", "slotChar", "placeholder", "maxlength", "usageInGrid", "tabindex"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { 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: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "component", type: CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "labelAsYesNo", "tabindex"] }, { kind: "component", type: PasswordComponent, selector: "aril-password[ngModel], aril-password[formControl], aril-password[formControlName]", inputs: ["feedback", "passwordCriterias", "placeholder", "tabindex"] }, { kind: "component", type: SelectBoxComponent, selector: "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", inputs: ["itemKey", "itemText", "groupName", "parentSelectionKey", "tabindex", "items", "grouped", "showClearButton", "placeholder", "searchExpr"], outputs: ["onSelectionChanged"] }, { kind: "component", type: TreeSelectComponent, selector: "aril-treeSelect", inputs: ["options", "modelValue", "placeholder", "selectionMode", "display", "showClear", "filter", "filterPlaceholder", "propagateSelectionUp", "propagateSelectionDown", "metaKeySelection", "formControlName"], outputs: ["modelValueChange", "nodeSelect", "nodeUnselect", "cleared"] }] }); }
427
427
  }
428
428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: EditProfileModalComponent, decorators: [{
429
429
  type: Component,
@@ -443,7 +443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
443
443
  PasswordComponent,
444
444
  SelectBoxComponent,
445
445
  TreeSelectComponent
446
- ], template: "<div *transloco=\"let t; read: 'profileSidebar'\">\r\n\t<aril-form [formGroup]=\"profileForm\">\r\n\t\t<aril-field [label]=\"t('userStatus')\" [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('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('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\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-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\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('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\r\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\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('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\r\n\t\t\t<aril-treeSelect\r\n\t\t\t\t[options]=\"treeItems\"\r\n\t\t\t\tformControlName=\"regions\"\r\n\t\t\t\t[placeholder]=\"t('select')\"\r\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\r\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\r\n\t\t\t\t(cleared)=\"clear()\">\r\n\t\t\t</aril-treeSelect>\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<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<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\r\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\r\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\r\n\t\t</div>\r\n\t</aril-form>\r\n</div>\r\n" }]
446
+ ], template: "<div *transloco=\"let t; read: 'profileSidebar'\">\n\t<aril-form [formGroup]=\"profileForm\">\n\t\t<aril-field [label]=\"t('userStatus')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"enabled\" [disabled]=\"true\"></aril-checkbox>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('systemUser')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\n\t\t\t<aril-checkbox [label]=\"' '\" formControlName=\"systemUser\" [disabled]=\"true\"></aril-checkbox>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('userType')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-select-box formControlName=\"userTypeId\" [items]=\"userTypeItems\" itemKey=\"value\" itemText=\"label\" [placeholder]=\"t('select')\"></aril-select-box>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('systemUserApp')\" [cols]=\"{ xl: 6, lg: 6, md: 12, sm: 12 }\">\n\t\t\t<aril-select-box formControlName=\"clientOfSystemUser\" [items]=\"clientList\" itemText=\"text\" itemKey=\"key\" [placeholder]=\"t('select')\"></aril-select-box>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('username')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"userName\" [disabled]=\"true\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('userPassword')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-password formControlName=\"password\" [placeholder]=\"'&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;&#8728;'\"></aril-password>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('firstName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"firstName\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('lastName')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"lastName\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('email')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"email\"></aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('phone')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-mask mask=\"(999) 999 99 99\" [placeholder]=\"t('phoneExample')\" formControlName=\"phone\"></aril-mask>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('tcNumber')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-mask mask=\"99999999999\" formControlName=\"tckn\"></aril-mask>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('responsibleRegions')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-treeSelect\n\t\t\t\t[options]=\"treeItems\"\n\t\t\t\tformControlName=\"regions\"\n\t\t\t\t[placeholder]=\"t('select')\"\n\t\t\t\t(nodeSelect)=\"nodeSelect($event)\"\n\t\t\t\t(nodeUnselect)=\"nodeUnselect($event)\"\n\t\t\t\t(cleared)=\"clear()\">\n\t\t\t</aril-treeSelect>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('notes')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\n\t\t\t<aril-text-area [rows]=\"3\" [cols]=\"40\" formControlName=\"notes\"></aril-text-area>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('photoUrl')\" [cols]=\"{ xl: 6, lg: 6, md: 6, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"photoUrl\"></aril-text>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-3 gap-1\">\n\t\t\t<aril-button color=\"danger\" [label]=\"t('cancel')\" [outlined]=\"true\" icon=\"TIMES\" (clickEvent)=\"cancel()\"></aril-button>\n\t\t\t<aril-form-submit [label]=\"t('save')\" color=\"success\" icon=\"CHECK\" [formGroup]=\"profileForm\" (validEvent)=\"submit()\"></aril-form-submit>\n\t\t</div>\n\t</aril-form>\n</div>\n" }]
447
447
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DynamicDialogRef }, { type: i3.MessageService }, { type: ProfileService }, { type: i2.DynamicDialogConfig }, { type: i5.TranslocoService }] });
448
448
 
449
449
  class LayoutService {
@@ -756,7 +756,7 @@ class AppProfileSidebarComponent {
756
756
  ref.onClose.subscribe();
757
757
  }
758
758
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppProfileSidebarComponent, deps: [{ token: LayoutService }, { token: i2$1.KeycloakService }, { token: ProfileService }, { token: i2.DialogService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppProfileSidebarComponent, isStandalone: true, selector: "app-profilemenu", providers: [DialogService], 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-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\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", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: SkeletonModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: ChipModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }] }); }
759
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppProfileSidebarComponent, isStandalone: true, selector: "app-profilemenu", providers: [DialogService], 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-profile-sidebar w-full sm:w-30rem\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center gap-2\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<span class=\"font-bold\">{{ t('personalInfo') }}</span>\n\t\t</div>\n\t</ng-template>\n\n\t@if (userProfile()) {\n\t\t<div class=\"profile-content\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<!-- Personal Information -->\n\t\t\t<div class=\"info-section\">\n\t\t\t\t<div class=\"info-items\">\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('fullName') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.firstName }} {{ userProfile()?.lastName }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-id-card info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('tcNumber') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.tckn || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-envelope info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('email') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.email || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-phone info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('phone') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.phone || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-at info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('username') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.userName }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-check-circle info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('accountStatus') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.enabled\">\n\t\t\t\t\t\t\t\t{{ userProfile()?.enabled ? t('active') : t('inactive') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('systemUser') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.systemUser\">\n\t\t\t\t\t\t\t\t{{ userProfile()?.systemUser ? t('yes') : t('no') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-building info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('clientSystemUser') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.clientOfSystemUser }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t}\n\n\t<!-- Fixed Action Buttons -->\n\t@if (userProfile()) {\n\t\t<div class=\"action-buttons-container grid p-fluid\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<div class=\"col-12 flex justify-content-between align-items-center\">\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('editProfile')\"\n\t\t\t\t\ticon=\"USER_EDIT\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclass=\"col-6\"\n\t\t\t\t\t(clickEvent)=\"editProfile()\">\n\t\t\t\t</aril-button>\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('changePassword')\"\n\t\t\t\t\ticon=\"KEY\"\n\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclass=\"col-6\"\n\t\t\t\t\t(clickEvent)=\"changePassword()\">\n\t\t\t\t</aril-button>\n\t\t\t</div>\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('logout')\"\n\t\t\t\ticon=\"SIGN_OUT\"\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[outlined]=\"false\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclass=\"col-12\"\n\t\t\t\t(clickEvent)=\"logout()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t}\n</p-sidebar>\n", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: SkeletonModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: ChipModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }] }); }
760
760
  }
761
761
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppProfileSidebarComponent, decorators: [{
762
762
  type: Component,
@@ -770,7 +770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
770
770
  ChipModule,
771
771
  TranslocoModule,
772
772
  ButtonComponent
773
- ], providers: [DialogService], 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-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\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", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"] }]
773
+ ], providers: [DialogService], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-profile-sidebar w-full sm:w-30rem\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center gap-2\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<span class=\"font-bold\">{{ t('personalInfo') }}</span>\n\t\t</div>\n\t</ng-template>\n\n\t@if (userProfile()) {\n\t\t<div class=\"profile-content\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<!-- Personal Information -->\n\t\t\t<div class=\"info-section\">\n\t\t\t\t<div class=\"info-items\">\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('fullName') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.firstName }} {{ userProfile()?.lastName }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-id-card info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('tcNumber') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.tckn || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-envelope info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('email') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.email || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-phone info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('phone') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.phone || '' }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-at info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('username') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.userName }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-check-circle info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('accountStatus') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.enabled\">\n\t\t\t\t\t\t\t\t{{ userProfile()?.enabled ? t('active') : t('inactive') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('systemUser') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.systemUser\">\n\t\t\t\t\t\t\t\t{{ userProfile()?.systemUser ? t('yes') : t('no') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"info-item\">\n\t\t\t\t\t\t<i class=\"pi pi-building info-icon\"></i>\n\t\t\t\t\t\t<div class=\"info-content\">\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('clientSystemUser') }}</span>\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.clientOfSystemUser }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t}\n\n\t<!-- Fixed Action Buttons -->\n\t@if (userProfile()) {\n\t\t<div class=\"action-buttons-container grid p-fluid\" *transloco=\"let t; read: 'profileSidebar'\">\n\t\t\t<div class=\"col-12 flex justify-content-between align-items-center\">\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('editProfile')\"\n\t\t\t\t\ticon=\"USER_EDIT\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclass=\"col-6\"\n\t\t\t\t\t(clickEvent)=\"editProfile()\">\n\t\t\t\t</aril-button>\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('changePassword')\"\n\t\t\t\t\ticon=\"KEY\"\n\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclass=\"col-6\"\n\t\t\t\t\t(clickEvent)=\"changePassword()\">\n\t\t\t\t</aril-button>\n\t\t\t</div>\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('logout')\"\n\t\t\t\ticon=\"SIGN_OUT\"\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[outlined]=\"false\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclass=\"col-12\"\n\t\t\t\t(clickEvent)=\"logout()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t}\n</p-sidebar>\n", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"] }]
774
774
  }], ctorParameters: () => [{ type: LayoutService }, { type: i2$1.KeycloakService }, { type: ProfileService }, { type: i2.DialogService }, { type: i5.TranslocoService }] });
775
775
 
776
776
  class HistoryService {
@@ -983,7 +983,7 @@ class HistorySidebarComponent {
983
983
  return item.title;
984
984
  }
985
985
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HistorySidebarComponent, deps: [{ token: LayoutService }, { token: HistoryService }, { token: i3.ConfirmationService }, { token: i3.MessageService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
986
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HistorySidebarComponent, isStandalone: true, selector: "app-history-sidebar", providers: [ConfirmationService], 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-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=\"flex justify-content-center align-items-center grid p-fluid m-0\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"col-10\"\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\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\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-2 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</fa-icon>\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", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.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-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}: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: "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: 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: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { 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"] }] }); }
986
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: HistorySidebarComponent, isStandalone: true, selector: "app-history-sidebar", providers: [ConfirmationService], 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-history-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'history'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"history-content\">\n\t\t@if (history().length > 0) {\n\t\t\t<div class=\"search-section\">\n\t\t\t\t<div class=\"flex justify-content-center align-items-center grid p-fluid m-0\">\n\t\t\t\t\t<aril-text\n\t\t\t\t\t\tclass=\"col-10\"\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\n\t\t\t\t\t</aril-text>\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\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-2 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t@if (filteredHistory().length > 0) {\n\t\t\t<div class=\"history-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"history-items\">\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\n\t\t\t\t\t\t\t<div class=\"history-item\" (click)=\"navigateToItem(item)\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-history empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\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') : t('startBrowsing') }}\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\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.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-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}: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: "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: 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: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { 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"] }] }); }
987
987
  }
988
988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HistorySidebarComponent, decorators: [{
989
989
  type: Component,
@@ -1000,7 +1000,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1000
1000
  TranslocoModule,
1001
1001
  TextComponent,
1002
1002
  FontAwesomeModule
1003
- ], providers: [ConfirmationService], 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-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=\"flex justify-content-center align-items-center grid p-fluid m-0\">\r\n\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\tclass=\"col-10\"\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\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\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-2 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\r\n\t\t\t\t\t</fa-icon>\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", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.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-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}: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"] }]
1003
+ ], providers: [ConfirmationService], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-history-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'history'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-history text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('pageHistory') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"history-content\">\n\t\t@if (history().length > 0) {\n\t\t\t<div class=\"search-section\">\n\t\t\t\t<div class=\"flex justify-content-center align-items-center grid p-fluid m-0\">\n\t\t\t\t\t<aril-text\n\t\t\t\t\t\tclass=\"col-10\"\n\t\t\t\t\t\t[placeholder]=\"t('searchHistory')\"\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\">\n\t\t\t\t\t</aril-text>\n\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\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-2 cursor-pointer\"\n\t\t\t\t\t\t[pTooltip]=\"t('confirmClearAll')\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\t(click)=\"clearAllHistory($event)\">\n\t\t\t\t\t</fa-icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t@if (filteredHistory().length > 0) {\n\t\t\t<div class=\"history-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"history-items\">\n\t\t\t\t\t\t@for (item of filteredHistory(); track trackByItemId($index, item)) {\n\t\t\t\t\t\t\t<div class=\"history-item\" (click)=\"navigateToItem(item)\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"title-info\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ getLocalizedTitle(item) }}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"route-text\">{{ item.url }}</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-history empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noHistory') }}\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') : t('startBrowsing') }}\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\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-history-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-history-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header i{color:var(--primary-color-text);font-size:1.1rem}:host ::ng-deep .layout-history-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600;color:var(--primary-color-text)}.history-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.history-list{flex:1;overflow:hidden}.history-items{padding:.5rem}.history-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.history-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.history-item:hover .remove-btn{opacity:1}.history-item:last-child{margin-bottom:0}.item-content{padding:1rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-info{display:flex;flex-direction:column;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-title .route-text{font-size:.75rem;color:var(--text-color-secondary);font-weight:400;line-height:1.2;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.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-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.history-content{height:calc(100vh - 3.5rem)}.search-section{padding:.75rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}: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"] }]
1004
1004
  }], ctorParameters: () => [{ type: LayoutService }, { type: HistoryService }, { type: i3.ConfirmationService }, { type: i3.MessageService }, { type: i5.TranslocoService }] });
1005
1005
 
1006
1006
  class SiteMapSidebarComponent {
@@ -1126,7 +1126,7 @@ class SiteMapSidebarComponent {
1126
1126
  return node.key || `${index}`;
1127
1127
  }
1128
1128
  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 }); }
1129
- 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: i9.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"] }] }); }
1129
+ 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: i9.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"] }] }); }
1130
1130
  }
1131
1131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, decorators: [{
1132
1132
  type: Component,
@@ -1142,7 +1142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1142
1142
  TranslocoModule,
1143
1143
  TranslateJsonPipe,
1144
1144
  FontAwesomeModule
1145
- ], 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"] }]
1145
+ ], 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"] }]
1146
1146
  }], ctorParameters: () => [{ type: LayoutService }, { type: i5.TranslocoService }] });
1147
1147
 
1148
1148
  // API Endpoints
@@ -1295,7 +1295,7 @@ class AddEditFavoriteModalComponent {
1295
1295
  this.dialogRef.close('cancel');
1296
1296
  }
1297
1297
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddEditFavoriteModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DynamicDialogRef }, { token: i2.DynamicDialogConfig }, { token: FavoritePagesService }, { token: i3.MessageService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
1298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddEditFavoriteModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
1298
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddEditFavoriteModalComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div *transloco=\"let t; read: 'favoritePages'\">\n\t<aril-form [formGroup]=\"favoriteForm\">\n\t\t<aril-field [label]=\"t('label')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"label\" [placeholder]=\"t('labelPlaceholder')\"> </aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('path')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"url\"> </aril-text>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\n\t\t\t<aril-button\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[label]=\"t('cancel')\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\ticon=\"TIMES\"\n\t\t\t\t(clickEvent)=\"cancel()\">\n\t\t\t</aril-button>\n\t\t\t<aril-form-submit\n\t\t\t\t[label]=\"t('save')\"\n\t\t\t\tcolor=\"success\"\n\t\t\t\ticon=\"CHECK\"\n\t\t\t\t[formGroup]=\"favoriteForm\"\n\t\t\t\t(validEvent)=\"submit()\" />\n\t\t</div>\n\t</aril-form>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ARiLFormModule }, { kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i6.FormSubmitButtonComponent, selector: "aril-form-submit:not([click])", inputs: ["formGroup"], outputs: ["validEvent", "inValidEvent"] }, { kind: "component", type: FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData", "infoDataOverlayPanel"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
1299
1299
  }
1300
1300
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddEditFavoriteModalComponent, decorators: [{
1301
1301
  type: Component,
@@ -1308,7 +1308,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1308
1308
  TextComponent,
1309
1309
  ButtonComponent,
1310
1310
  TranslocoModule
1311
- ], template: "<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" }]
1311
+ ], template: "<div *transloco=\"let t; read: 'favoritePages'\">\n\t<aril-form [formGroup]=\"favoriteForm\">\n\t\t<aril-field [label]=\"t('label')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\" [markAsRequired]=\"true\">\n\t\t\t<aril-text formControlName=\"label\" [placeholder]=\"t('labelPlaceholder')\"> </aril-text>\n\t\t</aril-field>\n\n\t\t<aril-field [label]=\"t('path')\" [cols]=\"{ xl: 12, lg: 12, md: 12, sm: 12 }\">\n\t\t\t<aril-text formControlName=\"url\"> </aril-text>\n\t\t</aril-field>\n\n\t\t<div class=\"col-12 flex justify-content-end mt-4 gap-2\">\n\t\t\t<aril-button\n\t\t\t\tcolor=\"danger\"\n\t\t\t\t[label]=\"t('cancel')\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\ticon=\"TIMES\"\n\t\t\t\t(clickEvent)=\"cancel()\">\n\t\t\t</aril-button>\n\t\t\t<aril-form-submit\n\t\t\t\t[label]=\"t('save')\"\n\t\t\t\tcolor=\"success\"\n\t\t\t\ticon=\"CHECK\"\n\t\t\t\t[formGroup]=\"favoriteForm\"\n\t\t\t\t(validEvent)=\"submit()\" />\n\t\t</div>\n\t</aril-form>\n</div>\n" }]
1312
1312
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DynamicDialogRef }, { type: i2.DynamicDialogConfig }, { type: FavoritePagesService }, { type: i3.MessageService }, { type: i5.TranslocoService }] });
1313
1313
 
1314
1314
  class FavoritePagesSidebarComponent {
@@ -1482,7 +1482,7 @@ class FavoritePagesSidebarComponent {
1482
1482
  return this.favoritePagesService.getFullUrl(url);
1483
1483
  }
1484
1484
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FavoritePagesSidebarComponent, deps: [{ token: LayoutService }, { token: FavoritePagesService }, { token: i3.ConfirmationService }, { token: i3.MessageService }, { token: i2.DialogService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
1485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: FavoritePagesSidebarComponent, isStandalone: true, selector: "app-favorite-pages-sidebar", providers: [ConfirmationService, DialogService], 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-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\r\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\r\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\r\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\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<div>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\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-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", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i9$1.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "ngmodule", type: DynamicDialogModule }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { 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"] }] }); }
1485
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: FavoritePagesSidebarComponent, isStandalone: true, selector: "app-favorite-pages-sidebar", providers: [ConfirmationService, DialogService], 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-favorite-pages-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'favoritePages'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"favorite-pages-content\">\n\t\t@if (isCurrentPageFavorited()) {\n\t\t\t<div class=\"current-favorited-message\">\n\t\t\t\t<div class=\"message-content\">\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"add-section\">\n\t\t\t@if (!isCurrentPageFavorited()) {\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\n\t\t\t\t\ticon=\"PLUS\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\n\t\t\t\t</aril-button>\n\t\t\t} @else {\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\n\t\t\t\t\ticon=\"TIMES\"\n\t\t\t\t\tcolor=\"danger\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\n\t\t\t\t</aril-button>\n\t\t\t}\n\t\t</div>\n\n\t\t@if (favoritePages().length > 0) {\n\t\t\t<div class=\"favorites-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"favorites-items\">\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-heart empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t\t<div>\n\t\t\t<p-paginator\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\n\t\t\t\t[rows]=\"pageSize()\"\n\t\t\t\t[totalRecords]=\"totalItems()\"\n\t\t\t\t[showCurrentPageReport]=\"true\"\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\n\t\t\t\t[showFirstLastIcon]=\"false\"\n\t\t\t\t[showPageLinks]=\"false\"\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\n\t\t\t</p-paginator>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: i9$1.Paginator, selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "dropdownAppendTo", "templateLeft", "templateRight", "appendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "jumpToPageItemTemplate", "showPageLinks", "locale", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { kind: "ngmodule", type: DynamicDialogModule }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { 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"] }] }); }
1486
1486
  }
1487
1487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FavoritePagesSidebarComponent, decorators: [{
1488
1488
  type: Component,
@@ -1497,7 +1497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1497
1497
  TranslocoModule,
1498
1498
  TooltipModule,
1499
1499
  FontAwesomeModule
1500
- ], providers: [ConfirmationService, DialogService], 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-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\r\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\r\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\r\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\r\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\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<div>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\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-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", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"] }]
1500
+ ], providers: [ConfirmationService, DialogService], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-favorite-pages-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'favoritePages'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-heart text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('favoritePages') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"favorite-pages-content\">\n\t\t@if (isCurrentPageFavorited()) {\n\t\t\t<div class=\"current-favorited-message\">\n\t\t\t\t<div class=\"message-content\">\n\t\t\t\t\t<i class=\"pi pi-check-circle text-green-500\"></i>\n\t\t\t\t\t<span>{{ t('currentPageFavorited') }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"add-section\">\n\t\t\t@if (!isCurrentPageFavorited()) {\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('addCurrentPage')\"\n\t\t\t\t\ticon=\"PLUS\"\n\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t(clickEvent)=\"addCurrentPageToFavorites()\">\n\t\t\t\t</aril-button>\n\t\t\t} @else {\n\t\t\t\t<aril-button\n\t\t\t\t\t[label]=\"t('removeCurrentPage')\"\n\t\t\t\t\ticon=\"TIMES\"\n\t\t\t\t\tcolor=\"danger\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t(clickEvent)=\"removeCurrentPageFromFavorites()\">\n\t\t\t\t</aril-button>\n\t\t\t}\n\t\t</div>\n\n\t\t@if (favoritePages().length > 0) {\n\t\t\t<div class=\"favorites-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"favorites-items\">\n\t\t\t\t\t\t@for (favorite of favoritePages(); track trackByFavoriteId($index, favorite)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"favorite-item\"\n\t\t\t\t\t\t\t\t[class.default-item]=\"favorite.id < 0\"\n\t\t\t\t\t\t\t\t(click)=\"navigateToFavorite(favorite)\"\n\t\t\t\t\t\t\t\t[pTooltip]=\"getFullUrl(favorite.url)\"\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"pi pi-external-link text-primary mr-2\"></i>\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"title-text\">{{ favorite.label }}</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faPenToSquare\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--yellow-500)\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"editFavorite(favorite, $event)\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faTrash\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"col-2 cursor-pointer\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"deleteFavorite(favorite, $event)\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-heart empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noFavorites') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('startAddingFavorites') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t\t<div>\n\t\t\t<p-paginator\n\t\t\t\t[first]=\"(currentPage() - 1) * pageSize()\"\n\t\t\t\t[rows]=\"pageSize()\"\n\t\t\t\t[totalRecords]=\"totalItems()\"\n\t\t\t\t[showCurrentPageReport]=\"true\"\n\t\t\t\t[currentPageReportTemplate]=\"t('paginatorTemplate')\"\n\t\t\t\t[showFirstLastIcon]=\"false\"\n\t\t\t\t[showPageLinks]=\"false\"\n\t\t\t\t(onPageChange)=\"onPageChange($event)\">\n\t\t\t</p-paginator>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-favorite-pages-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.favorite-pages-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.current-favorited-message{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--green-50)}.current-favorited-message .message-content{display:flex;align-items:center;gap:.5rem;color:var(--green-700);font-size:.9rem;font-weight:500}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.favorites-list{flex:1;overflow:hidden}.favorites-items{padding:.5rem}.favorite-item{background:var(--surface-0);border:1px solid var(--surface-border);border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;padding:.5rem .2rem}.favorite-item:hover{border-color:var(--primary-200);background:var(--primary-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.favorite-item:hover .action-btn{opacity:1}.favorite-item:last-child{margin-bottom:0}.favorite-item.default-item{background:var(--blue-50);border-left:3px solid var(--blue-500)}.favorite-item.default-item:hover{background:var(--blue-100);border-color:var(--blue-300)}.favorite-item.default-item .title-text{font-weight:600;color:var(--blue-700)}.item-content{padding:.5rem .75rem}.item-header{display:flex;align-items:center;justify-content:space-between}.item-title{display:flex;align-items:center;flex:1;min-width:0}.item-title .title-text{font-weight:600;color:var(--text-color);font-size:1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-content .empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-content .empty-title{font-size:1.1rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-content .empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}@media (max-width: 768px){.add-section{padding:.75rem}.add-section .button-label{font-size:.8rem}.item-content{padding:.5rem}.item-title .title-text{font-size:.85rem}}\n"] }]
1501
1501
  }], ctorParameters: () => [{ type: LayoutService }, { type: FavoritePagesService }, { type: i3.ConfirmationService }, { type: i3.MessageService }, { type: i2.DialogService }, { type: i5.TranslocoService }] });
1502
1502
 
1503
1503
  var LanguageCode;
@@ -1725,11 +1725,11 @@ class GeneralSearchComponent {
1725
1725
  this.goToDetail(item.value);
1726
1726
  }
1727
1727
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GeneralSearchComponent, deps: [{ token: i1$1.Router }, { token: SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
1728
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: GeneralSearchComponent, isStandalone: true, selector: "app-general-search", ngImport: i0, template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\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</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.KeyValuePipe, name: "keyvalue" }, { 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: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6$2.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
1728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: GeneralSearchComponent, isStandalone: true, selector: "app-general-search", ngImport: i0, template: "<ng-container *transloco=\"let g\">\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\n\t\t<div class=\"global-search\">\n\t\t\t<p-autoComplete\n\t\t\t\t[(ngModel)]=\"query\"\n\t\t\t\toptionLabel=\"title\"\n\t\t\t\tminLength=\"3\"\n\t\t\t\t[delay]=\"500\"\n\t\t\t\t(completeMethod)=\"search($event.query)\"\n\t\t\t\t[suggestions]=\"presentableData\"\n\t\t\t\t[placeholder]=\"t('placeholder')\"\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\n\t\t\t\t<ng-template pTemplate=\"empty\">\n\t\t\t\t\t<div class=\"px-3\">\n\t\t\t\t\t\t{{ t('noResults') }}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template pTemplate=\"header\">\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\n\t\t\t\t\t\t\t{{ t('all') }}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\n\t\t\t\t\t\t<div class=\"result-icon\">\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"result-text\">\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\n\t\t\t\t\t\t\t@if (result.subtitle) {\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t@if (result.url) {\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template pTemplate=\"footer\">\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</p-autoComplete>\n\t\t</div>\n\t</ng-container>\n</ng-container>\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3$1.KeyValuePipe, name: "keyvalue" }, { 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: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i6$2.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
1729
1729
  }
1730
1730
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GeneralSearchComponent, decorators: [{
1731
1731
  type: Component,
1732
- args: [{ selector: 'app-general-search', standalone: true, imports: [CommonModule, FormsModule, TranslocoModule, AutoCompleteModule], template: "<ng-container *transloco=\"let g\">\r\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\r\n\t\t<div class=\"global-search\">\r\n\t\t\t<p-autoComplete\r\n\t\t\t\t[(ngModel)]=\"query\"\r\n\t\t\t\toptionLabel=\"title\"\r\n\t\t\t\tminLength=\"3\"\r\n\t\t\t\t[delay]=\"500\"\r\n\t\t\t\t(completeMethod)=\"search($event.query)\"\r\n\t\t\t\t[suggestions]=\"presentableData\"\r\n\t\t\t\t[placeholder]=\"t('placeholder')\"\r\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\r\n\t\t\t\t<ng-template pTemplate=\"empty\">\r\n\t\t\t\t\t<div class=\"px-3\">\r\n\t\t\t\t\t\t{{ t('noResults') }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\r\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\r\n\t\t\t\t\t\t\t{{ t('all') }}\r\n\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\r\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\r\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\r\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\r\n\t\t\t\t\t\t<div class=\"result-icon\">\r\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"result-text\">\r\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\r\n\t\t\t\t\t\t\t@if (result.subtitle) {\r\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t@if (result.url) {\r\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\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</ng-template>\r\n\t\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\r\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</p-autoComplete>\r\n\t\t</div>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"] }]
1732
+ args: [{ selector: 'app-general-search', standalone: true, imports: [CommonModule, FormsModule, TranslocoModule, AutoCompleteModule], template: "<ng-container *transloco=\"let g\">\n\t<ng-container *transloco=\"let t; read: 'generalSearch'\">\n\t\t<div class=\"global-search\">\n\t\t\t<p-autoComplete\n\t\t\t\t[(ngModel)]=\"query\"\n\t\t\t\toptionLabel=\"title\"\n\t\t\t\tminLength=\"3\"\n\t\t\t\t[delay]=\"500\"\n\t\t\t\t(completeMethod)=\"search($event.query)\"\n\t\t\t\t[suggestions]=\"presentableData\"\n\t\t\t\t[placeholder]=\"t('placeholder')\"\n\t\t\t\t(onSelect)=\"onResultClick($event)\">\n\t\t\t\t<ng-template pTemplate=\"empty\">\n\t\t\t\t\t<div class=\"px-3\">\n\t\t\t\t\t\t{{ t('noResults') }}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template pTemplate=\"header\">\n\t\t\t\t\t<div class=\"tabs flex gap-2 overflow-x-auto white-space-nowrap p-2 border-bottom-1 border-gray-200\">\n\t\t\t\t\t\t<span (click)=\"setTab('all')\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === 'all'\">\n\t\t\t\t\t\t\t{{ t('all') }}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t@for (tab of data | keyvalue; track tab) {\n\t\t\t\t\t\t\t<span (click)=\"setTab(tab.key)\" class=\"cursor-pointer py-1 px-2\" [class.active]=\"activeTab === tab.key\">\n\t\t\t\t\t\t\t\t{{ data[tab.key].result[0].assetDefinitionName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template let-result pTemplate=\"item\">\n\t\t\t\t\t<div class=\"flex items-center gap-2\">\n\t\t\t\t\t\t<div class=\"result-icon\">\n\t\t\t\t\t\t\t<i class=\"pi {{ result.icon }}\"></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"result-text\">\n\t\t\t\t\t\t\t<div class=\"title mb-2\">{{ result.title }}</div>\n\t\t\t\t\t\t\t@if (result.subtitle) {\n\t\t\t\t\t\t\t\t<div class=\"subtitle\">{{ result.subtitle }}</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t@if (result.url) {\n\t\t\t\t\t\t\t<div class=\"open-btn ml-auto align-self-center\">\n\t\t\t\t\t\t\t\t<i class=\"pi pi-chevron-right\"></i>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template pTemplate=\"footer\">\n\t\t\t\t\t<div class=\"px-3 py-3 border-top-1 border-gray-200\">\n\t\t\t\t\t\t<span>{{ presentableData.length }} {{ t('results') }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</p-autoComplete>\n\t\t</div>\n\t</ng-container>\n</ng-container>\n", styles: [":host ::ng-deep .p-autocomplete,:host ::ng-deep .p-autocomplete-input{width:100%;max-width:100%}:host ::ng-deep .p-overlay{width:100%!important;max-width:100%!important}:host ::ng-deep .p-autocomplete-item.p-focus{background:var(--gray-100)}:host ::ng-deep .tabs span.active{font-weight:700;border-bottom:2px solid var(--gray-900)}.global-search{position:relative}\n"] }]
1733
1733
  }], ctorParameters: () => [{ type: i1$1.Router }, { type: SearchService }] });
1734
1734
 
1735
1735
  class AppTopbarComponent {
@@ -1844,7 +1844,7 @@ class AppTopbarComponent {
1844
1844
  }
1845
1845
  }
1846
1846
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, deps: [{ token: i5.TranslocoService }, { token: i2$2.PubSubService }, { token: i2$1.KeycloakService }], target: i0.ɵɵFactoryTarget.Component }); }
1847
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<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]=\"logoPath\" class=\"topbar-logo\" 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<app-general-search></app-general-search>\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\tpBadge\r\n\t\t\t\t\t[value]=\"unreadCount > 0 ? unreadCount.toString() : '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(onChange)=\"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]=\"currentFlagPath\" 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", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem;box-shadow:0 1px 2px #00000013}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex}.topbar-logo{height:36px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.2rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { 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: DividerModule }, { kind: "component", type: i7$2.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i8$1.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "ngmodule", type: MenubarModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: GeneralSearchComponent, selector: "app-general-search" }] }); }
1847
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppTopbarComponent, isStandalone: true, selector: "app-topbar", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menubutton"], descendants: true }], ngImport: i0, template: "<div class=\"layout-topbar\">\n\t<div class=\"topbar-start\">\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\n\t\t\t<i class=\"pi pi-bars\"></i>\n\t\t</button>\n\t\t<img [src]=\"logoPath\" class=\"topbar-logo\" alt=\"logo\" />\n\t</div>\n\n\t<div class=\"topbar-search\" *transloco=\"let t; read: ''\">\n\t\t<span class=\"p-input-icon-left\">\n\t\t\t<i class=\"pi pi-search\"></i>\n\t\t\t<app-general-search></app-general-search>\n\t\t</span>\n\t</div>\n\n\t<div class=\"topbar-end mr-2\">\n\t\t<ul class=\"topbar-menu\">\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-sitemap\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onSiteMapButtonClick()\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-history\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onHistoryButtonClick()\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-heart\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onFavoritePagesButtonClick()\" />\n\t\t\t</li>\n\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\n\t\t\t\t\t{{ username[0] | uppercase }}\n\t\t\t\t</p-button>\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-bell notification-icon\"\n\t\t\t\t\tpBadge\n\t\t\t\t\t[value]=\"unreadCount > 0 ? unreadCount.toString() : '0'\"\n\t\t\t\t\t(click)=\"onNotificationsButtonClick()\"></i>\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[options]=\"languages\"\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\n\t\t\t\t\t(onChange)=\"onLanguageChange()\"\n\t\t\t\t\toptionLabel=\"name\"\n\t\t\t\t\toptionValue=\"code\"\n\t\t\t\t\t[showClear]=\"false\"\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t\t\t\t<img [src]=\"currentFlagPath\" class=\"flag-icon\" alt=\"flag\" />\n\t\t\t\t\t\t\t<span class=\"language-text\">{{ currentLang | uppercase }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</p-dropdown>\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</div>\n\n<!-- <app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb> -->\n", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem;box-shadow:0 1px 2px #00000013}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex}.topbar-logo{height:36px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.2rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { 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: DividerModule }, { kind: "component", type: i7$2.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i8$1.BadgeDirective, selector: "[pBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "severity", "value", "badgeStyle", "badgeStyleClass"] }, { kind: "ngmodule", type: MenubarModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i9$2.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "autoShowPanelOnPrintableCharacterKeyDown", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: GeneralSearchComponent, selector: "app-general-search" }] }); }
1848
1848
  }
1849
1849
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppTopbarComponent, decorators: [{
1850
1850
  type: Component,
@@ -1858,7 +1858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1858
1858
  DropdownModule,
1859
1859
  TranslocoModule,
1860
1860
  GeneralSearchComponent
1861
- ], template: "<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]=\"logoPath\" class=\"topbar-logo\" 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<app-general-search></app-general-search>\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\tpBadge\r\n\t\t\t\t\t[value]=\"unreadCount > 0 ? unreadCount.toString() : '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(onChange)=\"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]=\"currentFlagPath\" 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", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem;box-shadow:0 1px 2px #00000013}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex}.topbar-logo{height:36px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.2rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"] }]
1861
+ ], template: "<div class=\"layout-topbar\">\n\t<div class=\"topbar-start\">\n\t\t<button #menubutton type=\"button\" class=\"topbar-menubutton p-link p-trigger\" (click)=\"onMenuButtonClick()\">\n\t\t\t<i class=\"pi pi-bars\"></i>\n\t\t</button>\n\t\t<img [src]=\"logoPath\" class=\"topbar-logo\" alt=\"logo\" />\n\t</div>\n\n\t<div class=\"topbar-search\" *transloco=\"let t; read: ''\">\n\t\t<span class=\"p-input-icon-left\">\n\t\t\t<i class=\"pi pi-search\"></i>\n\t\t\t<app-general-search></app-general-search>\n\t\t</span>\n\t</div>\n\n\t<div class=\"topbar-end mr-2\">\n\t\t<ul class=\"topbar-menu\">\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-sitemap\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onSiteMapButtonClick()\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-history\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onHistoryButtonClick()\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button\n\t\t\t\t\ticon=\"pi pi-heart\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\t[rounded]=\"true\"\n\t\t\t\t\t(click)=\"onFavoritePagesButtonClick()\" />\n\t\t\t</li>\n\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-button severity=\"secondary\" [text]=\"true\" [rounded]=\"true\" (click)=\"onProfileButtonClick()\">\n\t\t\t\t\t{{ username[0] | uppercase }}\n\t\t\t\t</p-button>\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-divider layout=\"vertical\" styleClass=\"h-1rem border-500 m-0\" />\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-bell notification-icon\"\n\t\t\t\t\tpBadge\n\t\t\t\t\t[value]=\"unreadCount > 0 ? unreadCount.toString() : '0'\"\n\t\t\t\t\t(click)=\"onNotificationsButtonClick()\"></i>\n\t\t\t</li>\n\t\t\t<li class=\"topbar-menu-item\">\n\t\t\t\t<p-dropdown\n\t\t\t\t\t[options]=\"languages\"\n\t\t\t\t\t[(ngModel)]=\"currentLang\"\n\t\t\t\t\t(onChange)=\"onLanguageChange()\"\n\t\t\t\t\toptionLabel=\"name\"\n\t\t\t\t\toptionValue=\"code\"\n\t\t\t\t\t[showClear]=\"false\"\n\t\t\t\t\tclass=\"custom-dropdown ml-3\">\n\t\t\t\t\t<ng-template pTemplate=\"selectedItem\">\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t\t\t\t<img [src]=\"currentFlagPath\" class=\"flag-icon\" alt=\"flag\" />\n\t\t\t\t\t\t\t<span class=\"language-text\">{{ currentLang | uppercase }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<ng-template pTemplate=\"item\" let-item>\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-2\">\n\t\t\t\t\t\t\t<img [src]=\"item.flag\" class=\"flag-icon\" alt=\"flag\" />\n\t\t\t\t\t\t\t<span>{{ item.name }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</p-dropdown>\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</div>\n\n<!-- <app-breadcrumb class=\"topbar-breadcrumb\"></app-breadcrumb> -->\n", styles: [".layout-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:.5rem;padding:0 1rem;box-shadow:0 1px 2px #00000013}@media (max-width: 768px){.layout-topbar{padding:0 .5rem;gap:.25rem}}.topbar-start{display:flex}.topbar-logo{height:36px;width:auto}@media (max-width: 768px){.topbar-logo{display:none}}.topbar-search{flex:1;max-width:50rem;margin:0 1rem}@media (max-width: 1024px){.topbar-search{max-width:30rem}}@media (max-width: 768px){.topbar-search{max-width:20rem;margin:0 .5rem}}@media (max-width: 480px){.topbar-search{max-width:15rem;margin:0 .25rem}}.topbar-search .p-input-icon-left{width:100%}.topbar-end{flex-shrink:0}.topbar-menu{display:flex;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none}@media (max-width: 768px){.topbar-menu{gap:.25rem}}@media (max-width: 480px){.topbar-menu{gap:.1rem}}.topbar-menu-item{display:flex;align-items:center}@media (max-width: 1024px){.desktop-only{display:none!important}}.mobile-only{display:none!important}@media (max-width: 1024px){.mobile-only{display:flex!important}}.custom-dropdown .p-dropdown{border-radius:50px;padding:.5rem 1rem;border:1px solid #c8c8c8;background-color:#f4f4f4}@media (max-width: 768px){.custom-dropdown .p-dropdown{padding:.4rem .8rem}}@media (max-width: 480px){.custom-dropdown .p-dropdown{padding:.3rem .6rem}}.custom-dropdown .p-dropdown-label{padding:0;line-height:1.5}.custom-dropdown .p-dropdown-trigger{border-radius:50px}.flag-icon{width:18px;height:18px;display:inline-block;vertical-align:middle}@media (max-width: 768px){.flag-icon{width:16px;height:16px}}@media (max-width: 480px){.language-text{display:none}}@media (max-width: 768px){.topbar-menubutton{padding:.4rem!important}}@media (max-width: 480px){.topbar-menubutton{padding:.3rem!important}}@media (max-width: 768px){.topbar-menu-item p-button{min-width:auto}.topbar-menu-item p-button .p-button-icon{margin:0}.topbar-menu-item p-button .p-button-label{font-size:.9rem}}@media (max-width: 480px){.topbar-menu-item p-button .p-button-label{font-size:.8rem}.topbar-menu-item p-divider{display:none}}.notification-icon{cursor:pointer;padding:.2rem;border-radius:50%;transition:background-color .2s}.notification-icon:hover{background-color:var(--surface-hover)}@media (max-width: 480px){.notification-icon{font-size:.9rem;padding:.4rem}}\n"] }]
1862
1862
  }], ctorParameters: () => [{ type: i5.TranslocoService }, { type: i2$2.PubSubService }, { type: i2$1.KeycloakService }], propDecorators: { menuButton: [{
1863
1863
  type: ViewChild,
1864
1864
  args: ['menubutton']
@@ -1962,7 +1962,7 @@ class AppChatbotComponent {
1962
1962
  this.feedbackRating = 0;
1963
1963
  }
1964
1964
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppChatbotComponent, deps: [{ token: i1$2.HttpClient }, { token: i2$1.KeycloakService }], target: i0.ɵɵFactoryTarget.Component }); }
1965
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppChatbotComponent, isStandalone: true, selector: "app-chatbot", ngImport: i0, template: "<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\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</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\u00F6nderebilirsiniz.</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\u00F6nder\" 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\u00E7\" 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\u00F6nder\" 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", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { 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: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputIconModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i8$2.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }] }); }
1965
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppChatbotComponent, isStandalone: true, selector: "app-chatbot", ngImport: i0, template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\n\t<i class=\"pi pi-comments\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"chatbotVisible\"\n\tposition=\"right\"\n\tstyleClass=\"w-30rem flex flex-column\"\n\t[style]=\"{ height: '100%' }\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"custom-sidebar-header\">\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"flex flex-column flex-1\">\n\t\t<p-messages severity=\"info\">\n\t\t\t<ng-template pTemplate>\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\n\t\t\t\t<div class=\"ml-2\">Sorular\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</div>\n\t\t\t</ng-template>\n\t\t</p-messages>\n\t</div>\n\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 85%; position: relative\">\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 85%; overflow-y: auto; padding-right: 0.5rem\">\n\t\t\t@if (historyList.getValue().length > 0) {\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@if (queryList.getValue().length > 0) {\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-column\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@if (visibleGiveFeedback) {\n\t\t\t\t<div class=\"flex mb-2\">\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan g\u00F6nderebilirsiniz.</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"text-lg\">\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n <aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\n </aril-button>\n\t\t\t\t\t\t\t<aril-button label=\"Vazge\u00E7\" color=\"danger\" icon=\"TIMES\" [outlined]=\"true\" (clickEvent)=\"cancelFeedback()\">\n </aril-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\n\t\t@if (isTyping) {\n\t\t\t<div\n\t\t\t\tclass=\"typing-indicator\"\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\n\t\t\t\t{{ typingText }}\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tpInputText\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\n\t\t\t\t\t\tclass=\"flex-1\"\n\t\t\t\t\t\tmaxlength=\"500\" />\n\t\t\t\t<aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\n\t\t\t\t</aril-button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</p-sidebar>\n", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { 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: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputIconModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i6$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "component", type: TextAreaComponent, selector: "aril-text-area[ngModel], aril-text-area[formControl], aril-text-area[formControlName]", inputs: ["rows", "cols", "isAutoResize", "tabindex", "placeholder"] }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i8$2.Rating, selector: "p-rating", inputs: ["disabled", "readonly", "stars", "cancel", "iconOnClass", "iconOnStyle", "iconOffClass", "iconOffStyle", "iconCancelClass", "iconCancelStyle", "autofocus"], outputs: ["onRate", "onCancel", "onFocus", "onBlur"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }] }); }
1966
1966
  }
1967
1967
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppChatbotComponent, decorators: [{
1968
1968
  type: Component,
@@ -1978,7 +1978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
1978
1978
  TextAreaComponent,
1979
1979
  RatingModule,
1980
1980
  ButtonComponent
1981
- ], template: "<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\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</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\u00F6nderebilirsiniz.</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\u00F6nder\" 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\u00E7\" 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\u00F6nder\" 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", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"] }]
1981
+ ], template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"chatbotVisible=true\">\n\t<i class=\"pi pi-comments\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"chatbotVisible\"\n\tposition=\"right\"\n\tstyleClass=\"w-30rem flex flex-column\"\n\t[style]=\"{ height: '100%' }\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"custom-sidebar-header\">\n\t\t\t<span class=\"header-title\">THOR Asistan</span>\n\t\t\t<i class=\"pi pi-thumbs-up custom-icon\" (click)=\"giveFeedback()\" (keypress)=\"giveFeedback()\"></i>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"flex flex-column flex-1\">\n\t\t<p-messages severity=\"info\">\n\t\t\t<ng-template pTemplate>\n\t\t\t\t<i class=\"pi pi-info-circle text-xl\"></i>\n\t\t\t\t<div class=\"ml-2\">Sorular\u0131n\u0131n cevab\u0131na buradan ula\u015Fabilirsin.</div>\n\t\t\t</ng-template>\n\t\t</p-messages>\n\t</div>\n\n\t<div class=\"flex flex-column flex-1 query-details\" style=\"height: 85%; position: relative\">\n\t\t<div class=\"query-history\" style=\"flex: 1; max-height: 85%; overflow-y: auto; padding-right: 0.5rem\">\n\t\t\t@if (historyList.getValue().length > 0) {\n\t\t\t\t@for (historyItem of historyList.getValue(); track $index) {\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.query }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4\">{{ historyItem.answer }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@if (queryList.getValue().length > 0) {\n\t\t\t\t@for (item of queryList.getValue(); track $index) {\n\t\t\t\t\t<div class=\"flex flex-column mb-2\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-user text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.question }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"flex flex-column\">\n\t\t\t\t\t\t<div class=\"card shadow-none flex-1 flex align-items-center ml-5\">\n\t\t\t\t\t\t\t<i class=\"pi pi-comment text-xl\"></i>\n\t\t\t\t\t\t\t<div class=\"ml-4 text-lg\">{{ item.answer }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@if (visibleGiveFeedback) {\n\t\t\t\t<div class=\"flex mb-2\">\n\t\t\t\t\t<div class=\"card custom-card\" style=\"background-color: #e2e4e5\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<span>Geri bildirimlerinizi buradan g\u00F6nderebilirsiniz.</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<p-rating [(ngModel)]=\"feedbackRating\" [stars]=\"5\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"text-lg\">\n\t\t\t\t\t\t\t<aril-text-area [rows]=\"5\" [cols]=\"30\" pTextarea [(ngModel)]=\"feedbackComments\"></aril-text-area>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n <aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendFeedback()\">\n </aril-button>\n\t\t\t\t\t\t\t<aril-button label=\"Vazge\u00E7\" color=\"danger\" icon=\"TIMES\" [outlined]=\"true\" (clickEvent)=\"cancelFeedback()\">\n </aril-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\n\t\t@if (isTyping) {\n\t\t\t<div\n\t\t\t\tclass=\"typing-indicator\"\n\t\t\t\tstyle=\"font-size: 16px; font-weight: 900; padding: 6px; width: 10%; text-align: center\">\n\t\t\t\t{{ typingText }}\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"search-container\" style=\"position: absolute; bottom: 0; width: 100%; background: white\">\n\t\t\t<div class=\"search-box\" style=\"display: flex; align-items: center; gap: 0.5rem\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tstyle=\"flex: 1; width: 100%\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tpInputText\n\t\t\t\t\t\tplaceholder=\"Sorunu yaz...\"\n\t\t\t\t\t\t[(ngModel)]=\"questionQuery\"\n\t\t\t\t\t\tclass=\"flex-1\"\n\t\t\t\t\t\tmaxlength=\"500\" />\n\t\t\t\t<aril-button label=\"G\u00F6nder\" color=\"danger\" icon=\"SEND\" [outlined]=\"true\" (clickEvent)=\"sendRequest()\">\n\t\t\t\t</aril-button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</p-sidebar>\n", styles: ["@charset \"UTF-8\";::ng-deep .p-sidebar .p-sidebar-header{background-color:var(--primary-color)!important;color:#fff!important}::ng-deep .p-sidebar .p-sidebar-close i{color:#fff!important}.custom-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.header-title{font-size:16px;font-weight:700}.custom-icon{font-size:1.5rem;color:#fff;cursor:pointer;margin-left:1rem}.custom-card{display:flex;flex-direction:column;gap:.5rem}\n"] }]
1982
1982
  }], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: i2$1.KeycloakService }] });
1983
1983
 
1984
1984
  class AppMenuService {
@@ -2249,11 +2249,11 @@ class ExpandableMenuComponent {
2249
2249
  }
2250
2250
  }
2251
2251
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ExpandableMenuComponent, deps: [{ token: i1$3.TranslateJsonPipe }, { token: AppMenuService }, { token: i1$1.Router }, { token: i2$1.KeycloakService }, { token: i5.TranslocoService }, { token: LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
2252
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ExpandableMenuComponent, isStandalone: true, selector: "app-expandable-menu", host: { listeners: { "window:resize": "onResize()" } }, providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"new-layout-sidebar\" >\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\" style=\"position: relative;\">\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]=\"(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</div>\r\n\t\t @if(selectedMainMenuItem && selectedMainMenuItem.items && selectedMainMenuItem.items.length > 0){\r\n\r\n\t\t\t <div class=\"sidebar-toggle-container\">\r\n\t\t\t\t <button class=\"sidebar-circle-toggle-btn\" (click)=\"toggleSidebar()\">\r\n\t\t\t\t\t <i class=\"pi\" [ngClass]=\"sidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t\t </button>\r\n\t\t\t </div>\r\n\t\t }\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': sidebarExpanded}\">\r\n\t\t<div class=\"secondary-content-wrapper\" style=\"position: relative;\">\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", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
2252
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ExpandableMenuComponent, isStandalone: true, selector: "app-expandable-menu", host: { listeners: { "window:resize": "onResize()" } }, providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"new-layout-sidebar\" >\n\t<!-- Main sidebar (first level) -->\n\t<div class=\"main-sidebar\" style=\"position: relative;\">\n\t\t<div class=\"main-sidebar-content\">\n\t\t\t<ul class=\"main-menu\">\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\n\t\t\t\t\t@if(!item.separator){\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\n\t\t\t\t\t\t[pTooltip]=\"(item.label && activeLang() ? item.label[activeLang()!] || '' : '')\"\n\t\t\t\t\t\ttooltipPosition=\"right\">\n\t\t\t\t\t\t<div class=\"main-menu-item\">\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\n\t\t\t\t\t\t\t<!-- <small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small> -->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t\t @if(selectedMainMenuItem && selectedMainMenuItem.items && selectedMainMenuItem.items.length > 0){\n\n\t\t\t <div class=\"sidebar-toggle-container\">\n\t\t\t\t <button class=\"sidebar-circle-toggle-btn\" (click)=\"toggleSidebar()\">\n\t\t\t\t\t <i class=\"pi\" [ngClass]=\"sidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\n\t\t\t\t </button>\n\t\t\t </div>\n\t\t }\n\n\t<!-- Secondary sidebar (second level) -->\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': sidebarExpanded}\">\n\t\t<div class=\"secondary-content-wrapper\" style=\"position: relative;\">\n\t\t\t<!-- Secondary sidebar content -->\n\t\t\t<div class=\"secondary-sidebar-content\">\n\t\t\t\t@if(selectedMainMenuItem){\n\t\t\t\t\t<ul class=\"secondary-menu\">\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\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()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\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>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\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 -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\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){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\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()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\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>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t </ul>\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t}\n\t\t\t\t\t</ul>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t\n</div>\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] }); }
2253
2253
  }
2254
2254
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ExpandableMenuComponent, decorators: [{
2255
2255
  type: Component,
2256
- args: [{ standalone: true, selector: 'app-expandable-menu', imports: [RouterLink, NgClass, TooltipModule], providers: [TranslateJsonPipe], template: "<div class=\"new-layout-sidebar\" >\r\n\t<!-- Main sidebar (first level) -->\r\n\t<div class=\"main-sidebar\" style=\"position: relative;\">\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]=\"(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</div>\r\n\t\t @if(selectedMainMenuItem && selectedMainMenuItem.items && selectedMainMenuItem.items.length > 0){\r\n\r\n\t\t\t <div class=\"sidebar-toggle-container\">\r\n\t\t\t\t <button class=\"sidebar-circle-toggle-btn\" (click)=\"toggleSidebar()\">\r\n\t\t\t\t\t <i class=\"pi\" [ngClass]=\"sidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\r\n\t\t\t\t </button>\r\n\t\t\t </div>\r\n\t\t }\r\n\r\n\t<!-- Secondary sidebar (second level) -->\r\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': sidebarExpanded}\">\r\n\t\t<div class=\"secondary-content-wrapper\" style=\"position: relative;\">\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" }]
2256
+ args: [{ standalone: true, selector: 'app-expandable-menu', imports: [RouterLink, NgClass, TooltipModule], providers: [TranslateJsonPipe], template: "<div class=\"new-layout-sidebar\" >\n\t<!-- Main sidebar (first level) -->\n\t<div class=\"main-sidebar\" style=\"position: relative;\">\n\t\t<div class=\"main-sidebar-content\">\n\t\t\t<ul class=\"main-menu\">\n\t\t\t\t@for(item of getMenuItems(); track item; let i = $index){\n\t\t\t\t\t@if(!item.separator){\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(item) || isHaveSelectedChildItem(item)}\"\n\t\t\t\t\t\t(click)=\"selectMainItem(i, item)\"\n\t\t\t\t\t\t[pTooltip]=\"(item.label && activeLang() ? item.label[activeLang()!] || '' : '')\"\n\t\t\t\t\t\ttooltipPosition=\"right\">\n\t\t\t\t\t\t<div class=\"main-menu-item\">\n\t\t\t\t\t\t\t<i [ngClass]=\"item.icon\" class=\"menu-icon\"></i>\n\t\t\t\t\t\t\t<!-- <small class=\"menu-label\">{{ item.label && activeLang() ? item.label[activeLang()!] || '' : '' }}</small> -->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t\t @if(selectedMainMenuItem && selectedMainMenuItem.items && selectedMainMenuItem.items.length > 0){\n\n\t\t\t <div class=\"sidebar-toggle-container\">\n\t\t\t\t <button class=\"sidebar-circle-toggle-btn\" (click)=\"toggleSidebar()\">\n\t\t\t\t\t <i class=\"pi\" [ngClass]=\"sidebarExpanded ? 'pi-angle-left' : 'pi-angle-right'\"></i>\n\t\t\t\t </button>\n\t\t\t </div>\n\t\t }\n\n\t<!-- Secondary sidebar (second level) -->\n\t<div class=\"secondary-sidebar\" [ngClass]=\"{'expanded': sidebarExpanded}\">\n\t\t<div class=\"secondary-content-wrapper\" style=\"position: relative;\">\n\t\t\t<!-- Secondary sidebar content -->\n\t\t\t<div class=\"secondary-sidebar-content\">\n\t\t\t\t@if(selectedMainMenuItem){\n\t\t\t\t\t<ul class=\"secondary-menu\">\n\t\t\t\t\t\t@for(subItem of selectedMainMenuItem.items; track subItem; let i = $index){\n\t\t\t\t\t\t\t\t<!-- Create menu item -->\n\t\t\t\t\t\t\t\t<li class=\"secondary-menu-item\" [ngClass]=\"{'active': isActiveRoute(subItem)}\">\n\t\t\t\t\t\t\t\t\t<a [routerLink]=\"subItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\tclass=\"secondary-menu-link\"\n\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(subItem.label, activeLang(), 'secondary') ? (subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\n\t\t\t\t\t\t\t\t\t\t<i [ngClass]=\"subItem.icon\" class=\"submenu-icon\"></i>\n\t\t\t\t\t\t\t\t\t\t<span class=\"submenu-label\">{{ subItem.label && activeLang() ? subItem.label[activeLang()!] || '' : '' }}</span>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t<!-- Always render submenu if it exists -->\n\t\t\t\t\t\t\t\t\t @if(subItem.items && subItem.items.length > 0){\n\t\t\t\t\t\t\t\t\t\t <ul class=\"tertiary-menu always-open\">\n\t\t\t\t\t\t\t\t\t\t\t@for(childItem of subItem.items; track childItem; let i = $index){\n\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"tertiary-menu-item\" [ngClass]=\"{'active': isActiveRoute(childItem)}\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"childItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"tertiary-menu-link\"\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()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\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>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\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 -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t@if(childItem.items && childItem.items.length > 0){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"nested-menu always-open\">\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){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{'active': isActiveRoute(nestedItem)}\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a [routerLink]=\"nestedItem.routerLink\" \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"nested-menu-link\"\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()!] || '' : '') : ''\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"right\">\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>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t </ul>\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t}\n\t\t\t\t\t</ul>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t\n</div>\n" }]
2257
2257
  }], ctorParameters: () => [{ type: i1$3.TranslateJsonPipe }, { type: AppMenuService }, { type: i1$1.Router }, { type: i2$1.KeycloakService }, { type: i5.TranslocoService }, { type: LayoutService }], propDecorators: { onResize: [{
2258
2258
  type: HostListener,
2259
2259
  args: ['window:resize']
@@ -2460,11 +2460,11 @@ class StaticSidebarComponent {
2460
2460
  return filtered;
2461
2461
  }
2462
2462
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, deps: [{ token: AppMenuService }, { token: i1$1.Router }, { token: LayoutService }, { token: i1$3.TranslateJsonPipe }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
2463
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: StaticSidebarComponent, isStandalone: true, selector: "app-static-sidebar", providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\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\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\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[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\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\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\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[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\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\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\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</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:hidden;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2}.static-sidebar .tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
2463
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: StaticSidebarComponent, isStandalone: true, selector: "app-static-sidebar", providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\n\t<div class=\"static-sidebar-content\">\n\t\t@if (!isCollapsed) {\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\n\t\t\t\t<div class=\"search-wrapper\">\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tpInputText\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\n\t\t\t\t<div class=\"tree-container\">\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</p-scrollPanel>\n\t\t} @else {\n\t\t\t<!-- Collapsed mode - only icons -->\n\t\t\t<div class=\"collapsed-container\">\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\n\t\t\t\t\t\t<a \n\t\t\t\t\t\t\tclass=\"collapsed-item\" \n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \n\t\t\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\n\t\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tclass=\"collapsed-item\" \n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \n\t\t\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\n\t\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<!-- Recursive Tree Node Template -->\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\n\t\t\t@if (node.routerLink) {\n\t\t\t\t<a\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\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[class.active]=\"isChildNodeActive(node)\"\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\n\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\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\"\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t} @else {\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[class.active]=\"isChildNodeActive(node)\"\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\n\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\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\"\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<!-- Recursive Children -->\n\t\t\t@if (node.children && node.expanded) {\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\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</div>\n\t\t\t}\n\t\t</div>\n\t</ng-template>\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:hidden;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2}.static-sidebar .tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i7$1.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
2464
2464
  }
2465
2465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, decorators: [{
2466
2466
  type: Component,
2467
- args: [{ standalone: true, selector: 'app-static-sidebar', imports: [RouterLink, NgClass, NgTemplateOutlet, ScrollPanelModule, TooltipModule, FormsModule, TranslocoModule], providers: [TranslateJsonPipe], template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\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\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\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[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\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\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\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[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\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\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\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</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:hidden;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2}.static-sidebar .tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"] }]
2467
+ args: [{ standalone: true, selector: 'app-static-sidebar', imports: [RouterLink, NgClass, NgTemplateOutlet, ScrollPanelModule, TooltipModule, FormsModule, TranslocoModule], providers: [TranslateJsonPipe], template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\n\t<div class=\"static-sidebar-content\">\n\t\t@if (!isCollapsed) {\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\n\t\t\t\t<div class=\"search-wrapper\">\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tpInputText\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\n\t\t\t\t<div class=\"tree-container\">\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</p-scrollPanel>\n\t\t} @else {\n\t\t\t<!-- Collapsed mode - only icons -->\n\t\t\t<div class=\"collapsed-container\">\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\n\t\t\t\t\t\t<a \n\t\t\t\t\t\t\tclass=\"collapsed-item\" \n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \n\t\t\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\n\t\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tclass=\"collapsed-item\" \n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \n\t\t\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\n\t\t\t\t\t\t\t@if (node.icon) {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<!-- Recursive Tree Node Template -->\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\n\t\t\t@if (node.routerLink) {\n\t\t\t\t<a\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\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[class.active]=\"isChildNodeActive(node)\"\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\n\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\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\"\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t} @else {\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[class.active]=\"isChildNodeActive(node)\"\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\n\t\t\t\t\ttooltipPosition=\"right\"\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\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\"\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\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\">{{ getLocalText(node.label) }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<!-- Recursive Children -->\n\t\t\t@if (node.children && node.expanded) {\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\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</div>\n\t\t\t}\n\t\t</div>\n\t</ng-template>\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:hidden;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2}.static-sidebar .tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"] }]
2468
2468
  }], ctorParameters: () => [{ type: AppMenuService }, { type: i1$1.Router }, { type: LayoutService }, { type: i1$3.TranslateJsonPipe }, { type: i5.TranslocoService }] });
2469
2469
 
2470
2470
  class NotificationsService extends RestClient {
@@ -2636,7 +2636,7 @@ class NotificationsSidebarComponent {
2636
2636
  this.visible = false;
2637
2637
  }
2638
2638
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationsSidebarComponent, deps: [{ token: LayoutService }, { token: NotificationsService }, { token: i5.TranslocoService }, { token: i1$1.Router }, { token: i2$1.KeycloakService }], target: i0.ɵɵFactoryTarget.Component }); }
2639
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: NotificationsSidebarComponent, isStandalone: true, selector: "app-notifications-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-notifications-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'notifications'\">\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-bell text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"notifications-content\">\r\n\t\t@if (notifications().length > 0) {\r\n\t\t\t<div class=\"notifications-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"notifications-items\">\r\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\r\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\r\n\t\t\t\t\t\t\t\t(click)=\"\r\n\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\r\n\t\t\t\t\t\t\t\t\t:\tnull\r\n\t\t\t\t\t\t\t\t\">\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@if (notification.type === ActivityTypesEnum.SMS) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\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}\r\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\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<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\r\n\t\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\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\r\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\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</div>\r\n\t\t\t\t\t\t\t\t\t}\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-bell empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\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=\"flex justify-content-center p-2 border-top-1 surface-border\">\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('allShow')\"\r\n\t\t\t\ticon=\"EXTERNAL_LINK\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tsize=\"md\"\r\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { 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"] }, { kind: "pipe", type: SafePipe, name: "safe" }] }); }
2639
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: NotificationsSidebarComponent, isStandalone: true, selector: "app-notifications-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-notifications-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'notifications'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"notifications-content\">\n\t\t@if (notifications().length > 0) {\n\t\t\t<div class=\"notifications-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"notifications-items\">\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\n\t\t\t\t\t\t\t\t(click)=\"\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\n\t\t\t\t\t\t\t\t\t) ?\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\n\t\t\t\t\t\t\t\t\t:\tnull\n\t\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-bell empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('allShow')\"\n\t\t\t\ticon=\"EXTERNAL_LINK\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: BadgeModule }, { 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"] }, { kind: "pipe", type: SafePipe, name: "safe" }] }); }
2640
2640
  }
2641
2641
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationsSidebarComponent, decorators: [{
2642
2642
  type: Component,
@@ -2652,7 +2652,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
2652
2652
  BadgeModule,
2653
2653
  FontAwesomeModule,
2654
2654
  SafePipe
2655
- ], 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-notifications-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'notifications'\">\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-bell text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"notifications-content\">\r\n\t\t@if (notifications().length > 0) {\r\n\t\t\t<div class=\"notifications-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"notifications-items\">\r\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\r\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\r\n\t\t\t\t\t\t\t\t(click)=\"\r\n\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\r\n\t\t\t\t\t\t\t\t\t:\tnull\r\n\t\t\t\t\t\t\t\t\">\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@if (notification.type === ActivityTypesEnum.SMS) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\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}\r\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\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<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\r\n\t\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\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\r\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\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</div>\r\n\t\t\t\t\t\t\t\t\t}\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-bell empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\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=\"flex justify-content-center p-2 border-top-1 surface-border\">\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('allShow')\"\r\n\t\t\t\ticon=\"EXTERNAL_LINK\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tsize=\"md\"\r\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"] }]
2655
+ ], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-notifications-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'notifications'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"notifications-content\">\n\t\t@if (notifications().length > 0) {\n\t\t\t<div class=\"notifications-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"notifications-items\">\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\n\t\t\t\t\t\t\t\t(click)=\"\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\n\t\t\t\t\t\t\t\t\t) ?\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\n\t\t\t\t\t\t\t\t\t:\tnull\n\t\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\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-bell empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('allShow')\"\n\t\t\t\ticon=\"EXTERNAL_LINK\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"] }]
2656
2656
  }], ctorParameters: () => [{ type: LayoutService }, { type: NotificationsService }, { type: i5.TranslocoService }, { type: i1$1.Router }, { type: i2$1.KeycloakService }] });
2657
2657
 
2658
2658
  class AppLayoutComponent {
@@ -2755,7 +2755,7 @@ class AppLayoutComponent {
2755
2755
  }
2756
2756
  }
2757
2757
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, deps: [{ token: AppMenuService }, { token: LayoutService }, { token: i0.Renderer2 }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2758
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "expandableMenuComponent", first: true, predicate: ExpandableMenuComponent, descendants: true }, { propertyName: "staticSidebarComponent", first: true, predicate: StaticSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t@if (layoutService.shouldShowStaticSidebar()) {\r\n\t\t<app-static-sidebar />\r\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\r\n\t\t<app-expandable-menu />\r\n\t}\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content\">\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-notifications-sidebar />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i5$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: HistorySidebarComponent, selector: "app-history-sidebar" }, { kind: "component", type: SiteMapSidebarComponent, selector: "app-site-map-sidebar" }, { kind: "component", type: FavoritePagesSidebarComponent, selector: "app-favorite-pages-sidebar" }, { kind: "component", type: AppChatbotComponent, selector: "app-chatbot" }, { kind: "component", type: ExpandableMenuComponent, selector: "app-expandable-menu" }, { kind: "component", type: StaticSidebarComponent, selector: "app-static-sidebar" }, { kind: "component", type: NotificationsSidebarComponent, selector: "app-notifications-sidebar" }] }); }
2758
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "expandableMenuComponent", first: true, predicate: ExpandableMenuComponent, descendants: true }, { propertyName: "staticSidebarComponent", first: true, predicate: StaticSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t@if (layoutService.shouldShowStaticSidebar()) {\n\t\t<app-static-sidebar />\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\n\t\t<app-expandable-menu />\n\t}\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar />\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet />\n\t\t</div>\n\t</div>\n\t<app-profilemenu />\n\t<app-history-sidebar />\n\t<app-site-map-sidebar />\n\t<app-favorite-pages-sidebar />\n\t<app-notifications-sidebar />\n\t<!--<app-config></app-config>-->\n\t<app-chatbot></app-chatbot>\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\n</div>\n\n<p-toast key=\"toast-root\" />\n<p-dialog key=\"dialog-root\" />\n<p-messages key=\"messages-root\" />\n<p-confirmPopup key=\"confirmPopup-root\" />\n<p-confirmDialog key=\"confirmDialog-root\" />\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i5$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: HistorySidebarComponent, selector: "app-history-sidebar" }, { kind: "component", type: SiteMapSidebarComponent, selector: "app-site-map-sidebar" }, { kind: "component", type: FavoritePagesSidebarComponent, selector: "app-favorite-pages-sidebar" }, { kind: "component", type: AppChatbotComponent, selector: "app-chatbot" }, { kind: "component", type: ExpandableMenuComponent, selector: "app-expandable-menu" }, { kind: "component", type: StaticSidebarComponent, selector: "app-static-sidebar" }, { kind: "component", type: NotificationsSidebarComponent, selector: "app-notifications-sidebar" }] }); }
2759
2759
  }
2760
2760
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, decorators: [{
2761
2761
  type: Component,
@@ -2776,7 +2776,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
2776
2776
  ExpandableMenuComponent,
2777
2777
  StaticSidebarComponent,
2778
2778
  NotificationsSidebarComponent
2779
- ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t@if (layoutService.shouldShowStaticSidebar()) {\r\n\t\t<app-static-sidebar />\r\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\r\n\t\t<app-expandable-menu />\r\n\t}\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content\">\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-notifications-sidebar />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></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" }]
2779
+ ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t@if (layoutService.shouldShowStaticSidebar()) {\n\t\t<app-static-sidebar />\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\n\t\t<app-expandable-menu />\n\t}\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar />\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet />\n\t\t</div>\n\t</div>\n\t<app-profilemenu />\n\t<app-history-sidebar />\n\t<app-site-map-sidebar />\n\t<app-favorite-pages-sidebar />\n\t<app-notifications-sidebar />\n\t<!--<app-config></app-config>-->\n\t<app-chatbot></app-chatbot>\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\n</div>\n\n<p-toast key=\"toast-root\" />\n<p-dialog key=\"dialog-root\" />\n<p-messages key=\"messages-root\" />\n<p-confirmPopup key=\"confirmPopup-root\" />\n<p-confirmDialog key=\"confirmDialog-root\" />\n" }]
2780
2780
  }], ctorParameters: () => [{ type: AppMenuService }, { type: LayoutService }, { type: i0.Renderer2 }, { type: i1$1.Router }], propDecorators: { expandableMenuComponent: [{
2781
2781
  type: ViewChild,
2782
2782
  args: [ExpandableMenuComponent]
@@ -2893,11 +2893,11 @@ class AppBreadcrumbComponent {
2893
2893
  }
2894
2894
  }
2895
2895
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppBreadcrumbComponent, deps: [{ token: i1$1.Router }, { token: BreadcrumbService }, { token: i2$2.PubSubService }], target: i0.ɵɵFactoryTarget.Component }); }
2896
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", ngImport: i0, template: "<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\">\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", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: BreadcrumbModule }, { kind: "component", type: i4$1.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
2896
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AppBreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", ngImport: i0, template: "<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\">\n\t<ng-template pTemplate=\"item\" let-item>\n\t\t<a [routerLink]=\"item.url\">\n\t\t\t<span [ngClass]=\"[item.icon ? item.icon : '', 'text-500']\"></span>\n\t\t\t<span class='text-500'>{{ item.label }}</span>\n\t\t</a>\n\t</ng-template>\n</p-breadcrumb>\n", dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: BreadcrumbModule }, { kind: "component", type: i4$1.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
2897
2897
  }
2898
2898
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppBreadcrumbComponent, decorators: [{
2899
2899
  type: Component,
2900
- args: [{ standalone: true, selector: 'app-breadcrumb', imports: [RouterLink, BreadcrumbModule, NgClass], template: "<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\">\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" }]
2900
+ args: [{ standalone: true, selector: 'app-breadcrumb', imports: [RouterLink, BreadcrumbModule, NgClass], template: "<p-breadcrumb class=\"max-w-full\" [model]=\"breadcrumbs\">\n\t<ng-template pTemplate=\"item\" let-item>\n\t\t<a [routerLink]=\"item.url\">\n\t\t\t<span [ngClass]=\"[item.icon ? item.icon : '', 'text-500']\"></span>\n\t\t\t<span class='text-500'>{{ item.label }}</span>\n\t\t</a>\n\t</ng-template>\n</p-breadcrumb>\n" }]
2901
2901
  }], ctorParameters: () => [{ type: i1$1.Router }, { type: BreadcrumbService }, { type: i2$2.PubSubService }] });
2902
2902
 
2903
2903
  class MFELayoutComponent {
@@ -2913,17 +2913,17 @@ class MFELayoutComponent {
2913
2913
  })), { initialValue: true });
2914
2914
  }
2915
2915
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MFELayoutComponent, deps: [{ token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
2916
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: MFELayoutComponent, isStandalone: true, selector: "mfe-layout", ngImport: i0, template: `
2917
- <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
2918
- @if (!loading()) {
2919
- <router-outlet />
2920
- }
2921
-
2922
- <p-toast key="toast-root"></p-toast>
2923
- <p-dialog key="dialog-root"></p-dialog>
2924
- <p-messages key="messages-root"></p-messages>
2925
- <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
2926
- <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
2916
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: MFELayoutComponent, isStandalone: true, selector: "mfe-layout", ngImport: i0, template: `
2917
+ <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
2918
+ @if (!loading()) {
2919
+ <router-outlet />
2920
+ }
2921
+
2922
+ <p-toast key="toast-root"></p-toast>
2923
+ <p-dialog key="dialog-root"></p-dialog>
2924
+ <p-messages key="messages-root"></p-messages>
2925
+ <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
2926
+ <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
2927
2927
  `, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i8.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i5$1.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6$4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7$3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8$3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }] }); }
2928
2928
  }
2929
2929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MFELayoutComponent, decorators: [{
@@ -2931,17 +2931,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
2931
2931
  args: [{
2932
2932
  standalone: true,
2933
2933
  selector: 'mfe-layout',
2934
- template: `
2935
- <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
2936
- @if (!loading()) {
2937
- <router-outlet />
2938
- }
2939
-
2940
- <p-toast key="toast-root"></p-toast>
2941
- <p-dialog key="dialog-root"></p-dialog>
2942
- <p-messages key="messages-root"></p-messages>
2943
- <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
2944
- <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
2934
+ template: `
2935
+ <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
2936
+ @if (!loading()) {
2937
+ <router-outlet />
2938
+ }
2939
+
2940
+ <p-toast key="toast-root"></p-toast>
2941
+ <p-dialog key="dialog-root"></p-dialog>
2942
+ <p-messages key="messages-root"></p-messages>
2943
+ <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
2944
+ <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
2945
2945
  `,
2946
2946
  imports: [RouterOutlet, ConfirmDialogModule, ConfirmPopupModule, DialogModule, MessagesModule, ToastModule, AppBreadcrumbComponent]
2947
2947
  }]