aril 2.0.1 → 2.0.2

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 (341) hide show
  1. package/esm2022/boot/config/apps/src/apps.service.mjs +4 -4
  2. package/esm2022/boot/config/apps/src/auth.guard.mjs +4 -4
  3. package/esm2022/boot/config/apps/src/custom-reuse-outlet.component.mjs +4 -4
  4. package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
  5. package/esm2022/boot/config/apps/src/nav-link-context-menu.service.mjs +4 -4
  6. package/esm2022/boot/config/apps/src/nav-link.directive.mjs +4 -4
  7. package/esm2022/boot/config/apps/src/nav.service.mjs +4 -4
  8. package/esm2022/boot/config/apps/src/route-close.service.mjs +4 -4
  9. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +4 -4
  10. package/esm2022/boot/config/apps/src/tab-aware-url-serializer.mjs +4 -4
  11. package/esm2022/boot/host/src/app.component.mjs +4 -4
  12. package/esm2022/boot/mfe/src/app.component.mjs +11 -6
  13. package/esm2022/boot/mfe/src/isolated-location-strategy.mjs +4 -4
  14. package/esm2022/boot/pages/src/forbidden.component.mjs +4 -4
  15. package/esm2022/boot/pages/src/notFound.component.mjs +4 -4
  16. package/esm2022/http/src/httpBackend.mjs +4 -4
  17. package/esm2022/i18n/src/i18n.module.mjs +5 -5
  18. package/esm2022/i18n/src/loader.mjs +4 -4
  19. package/esm2022/selection/src/selection-group.service.mjs +4 -4
  20. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +4 -4
  21. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +4 -4
  22. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +4 -4
  23. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +4 -4
  24. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
  25. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +4 -4
  26. package/esm2022/theme/layout/app/history/history.service.mjs +4 -4
  27. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +4 -4
  28. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +4 -4
  29. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +4 -4
  30. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +4 -4
  31. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +4 -4
  32. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +4 -4
  33. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +4 -4
  34. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +4 -4
  35. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +4 -4
  36. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +4 -4
  37. package/esm2022/theme/layout/service/app.layout.service.mjs +4 -4
  38. package/esm2022/theme/layout/service/app.menu.service.mjs +4 -4
  39. package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +4 -4
  40. package/esm2022/theme/layout/service/breadcrumb.service.mjs +4 -4
  41. package/esm2022/theme/layout/service/notifications.service.mjs +4 -4
  42. package/esm2022/theme/layout/service/search.service.mjs +4 -4
  43. package/esm2022/theme/layout/service/tab-session.service.mjs +4 -4
  44. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +4 -4
  45. package/esm2022/ui/badge/src/badge.component.mjs +4 -4
  46. package/esm2022/ui/button/src/button.component.mjs +4 -4
  47. package/esm2022/ui/calendar/src/calendar.component.mjs +4 -4
  48. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +4 -4
  49. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +4 -4
  50. package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
  51. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
  52. package/esm2022/ui/chip/src/chip.component.mjs +4 -4
  53. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +4 -4
  54. package/esm2022/ui/dxField/src/dx-field.component.mjs +4 -4
  55. package/esm2022/ui/editor/src/aril-editor.component.mjs +4 -4
  56. package/esm2022/ui/field/src/field.component.mjs +4 -4
  57. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +4 -4
  58. package/esm2022/ui/form/index.mjs +5 -5
  59. package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -4
  60. package/esm2022/ui/form/src/form.component.mjs +4 -4
  61. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +4 -4
  62. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +4 -4
  63. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +4 -4
  64. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +4 -4
  65. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +4 -4
  66. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +4 -4
  67. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +4 -4
  68. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +4 -4
  69. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +4 -4
  70. package/esm2022/ui/loader/src/loader.component.mjs +4 -4
  71. package/esm2022/ui/mask/src/mask.component.mjs +4 -4
  72. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -4
  73. package/esm2022/ui/number/src/number.component.mjs +4 -4
  74. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
  75. package/esm2022/ui/panel/src/panel.component.mjs +4 -4
  76. package/esm2022/ui/password/src/password.component.mjs +4 -4
  77. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +4 -4
  78. package/esm2022/ui/progressbar/src/progressbar.component.mjs +4 -4
  79. package/esm2022/ui/radioButton/src/radio-button.component.mjs +4 -4
  80. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +4 -4
  81. package/esm2022/ui/selectBox/src/select-box.component.mjs +4 -4
  82. package/esm2022/ui/switch/src/switch.component.mjs +4 -4
  83. package/esm2022/ui/table/index.mjs +5 -5
  84. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +4 -4
  85. package/esm2022/ui/table/src/table-column.component.mjs +4 -4
  86. package/esm2022/ui/table/src/table.component.mjs +4 -4
  87. package/esm2022/ui/table-expand/index.mjs +5 -5
  88. package/esm2022/ui/table-expand/src/table-column.component.mjs +4 -4
  89. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +4 -4
  90. package/esm2022/ui/table-expand/src/table.component.mjs +4 -4
  91. package/esm2022/ui/tag/src/tag.component.mjs +4 -4
  92. package/esm2022/ui/tagBox/src/tag-box.component.mjs +4 -4
  93. package/esm2022/ui/text/src/text.component.mjs +4 -4
  94. package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
  95. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +4 -4
  96. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +4 -4
  97. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +4 -4
  98. package/esm2022/ui/tree/src/tree.component.mjs +4 -4
  99. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +4 -4
  100. package/esm2022/ui/value/src/value.component.mjs +4 -4
  101. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +4 -4
  102. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +4 -4
  103. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +4 -4
  104. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +4 -4
  105. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +4 -4
  106. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +4 -4
  107. package/esm2022/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.mjs +4 -4
  108. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +4 -4
  109. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +4 -4
  110. package/esm2022/ui-business/trace-drawer/src/app-log.service.mjs +4 -4
  111. package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +4 -4
  112. package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +4 -4
  113. package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +4 -4
  114. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +4 -4
  115. package/esm2022/util/activity/src/activity.service.mjs +4 -4
  116. package/esm2022/util/block/src/block.mjs +4 -4
  117. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -4
  118. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +4 -4
  119. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +4 -4
  120. package/esm2022/util/lib/src/module-router.mjs +4 -4
  121. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +4 -4
  122. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +4 -4
  123. package/esm2022/util/pipes/src/parse.pipe.mjs +4 -4
  124. package/esm2022/util/pipes/src/round-number.pipe.mjs +4 -4
  125. package/esm2022/util/pipes/src/safe.pipe.mjs +4 -4
  126. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +4 -4
  127. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +4 -4
  128. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +4 -4
  129. package/fesm2022/{aril-app.component-MjG_tPEe.mjs → aril-app.component-Bl9p6jXU.mjs} +11 -6
  130. package/fesm2022/aril-app.component-Bl9p6jXU.mjs.map +1 -0
  131. package/fesm2022/aril-boot-base.mjs +1 -1
  132. package/fesm2022/aril-boot-base.mjs.map +1 -1
  133. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  134. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  135. package/fesm2022/aril-boot-config-apps.mjs +31 -31
  136. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  137. package/fesm2022/aril-boot-config-plugins.mjs +1 -1
  138. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  139. package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
  140. package/fesm2022/aril-boot-host.mjs +4 -4
  141. package/fesm2022/aril-boot-host.mjs.map +1 -1
  142. package/fesm2022/{aril-boot-mfe-app.component-DtspQ3J8.mjs → aril-boot-mfe-app.component-DovYRbZO.mjs} +12 -7
  143. package/fesm2022/aril-boot-mfe-app.component-DovYRbZO.mjs.map +1 -0
  144. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs → aril-boot-mfe-aril-boot-mfe-D9YM2exR.mjs} +7 -7
  145. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map → aril-boot-mfe-aril-boot-mfe-D9YM2exR.mjs.map} +1 -1
  146. package/fesm2022/aril-boot-mfe.mjs +1 -1
  147. package/fesm2022/aril-boot-pages.mjs +6 -6
  148. package/fesm2022/aril-boot-pages.mjs.map +1 -1
  149. package/fesm2022/aril-http.mjs +3 -3
  150. package/fesm2022/aril-http.mjs.map +1 -1
  151. package/fesm2022/aril-i18n.mjs +7 -7
  152. package/fesm2022/aril-i18n.mjs.map +1 -1
  153. package/fesm2022/aril-keycloak.mjs.map +1 -1
  154. package/fesm2022/aril-provider.mjs +1 -1
  155. package/fesm2022/aril-provider.mjs.map +1 -1
  156. package/fesm2022/aril-selection.mjs +3 -3
  157. package/fesm2022/aril-selection.mjs.map +1 -1
  158. package/fesm2022/aril-theme-layout.mjs +74 -74
  159. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  160. package/fesm2022/aril-ui-autoComplete.mjs +6 -6
  161. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
  162. package/fesm2022/aril-ui-badge.mjs +4 -4
  163. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  164. package/fesm2022/aril-ui-business-assetPicker.mjs +5 -5
  165. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  166. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +5 -5
  167. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  168. package/fesm2022/aril-ui-business-enumPicker.mjs +5 -5
  169. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  170. package/fesm2022/aril-ui-business-image-viewer.mjs +3 -3
  171. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
  172. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +4 -4
  173. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
  174. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +3 -3
  175. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
  176. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs +3 -3
  177. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs.map +1 -1
  178. package/fesm2022/aril-ui-business-ref-value.mjs +4 -4
  179. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
  180. package/fesm2022/aril-ui-business-rolePicker.mjs +4 -4
  181. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
  182. package/fesm2022/aril-ui-business-trace-drawer.mjs +10 -10
  183. package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -1
  184. package/fesm2022/aril-ui-business-trace-id.mjs +4 -4
  185. package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -1
  186. package/fesm2022/aril-ui-business-userPicker.mjs +3 -3
  187. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
  188. package/fesm2022/aril-ui-button.mjs +4 -4
  189. package/fesm2022/aril-ui-button.mjs.map +1 -1
  190. package/fesm2022/aril-ui-calendar.mjs +3 -3
  191. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  192. package/fesm2022/aril-ui-charts.mjs +6 -6
  193. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  194. package/fesm2022/aril-ui-checkbox.mjs +6 -6
  195. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  196. package/fesm2022/aril-ui-chip.mjs +4 -4
  197. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  198. package/fesm2022/aril-ui-collapse-reorder-list.mjs +4 -4
  199. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
  200. package/fesm2022/aril-ui-dxField.mjs +4 -4
  201. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  202. package/fesm2022/aril-ui-editor.mjs +4 -4
  203. package/fesm2022/aril-ui-editor.mjs.map +1 -1
  204. package/fesm2022/aril-ui-field.mjs +4 -4
  205. package/fesm2022/aril-ui-field.mjs.map +1 -1
  206. package/fesm2022/aril-ui-fileUpload.mjs +4 -4
  207. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  208. package/fesm2022/aril-ui-form.mjs +11 -11
  209. package/fesm2022/aril-ui-form.mjs.map +1 -1
  210. package/fesm2022/aril-ui-img-viewer.mjs +3 -3
  211. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
  212. package/fesm2022/aril-ui-json-diff-comparison.mjs +4 -4
  213. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
  214. package/fesm2022/aril-ui-lib.mjs +22 -22
  215. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  216. package/fesm2022/aril-ui-loader.mjs +3 -3
  217. package/fesm2022/aril-ui-loader.mjs.map +1 -1
  218. package/fesm2022/aril-ui-mask.mjs +3 -3
  219. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  220. package/fesm2022/aril-ui-multiSelect.mjs +3 -3
  221. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  222. package/fesm2022/aril-ui-number.mjs +3 -3
  223. package/fesm2022/aril-ui-number.mjs.map +1 -1
  224. package/fesm2022/aril-ui-operation-types-dialog.mjs +3 -3
  225. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
  226. package/fesm2022/aril-ui-panel.mjs +4 -4
  227. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  228. package/fesm2022/aril-ui-password.mjs +3 -3
  229. package/fesm2022/aril-ui-password.mjs.map +1 -1
  230. package/fesm2022/aril-ui-pdf-viewer.mjs +3 -3
  231. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
  232. package/fesm2022/aril-ui-progressbar.mjs +3 -3
  233. package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
  234. package/fesm2022/aril-ui-radioButton.mjs +3 -3
  235. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  236. package/fesm2022/aril-ui-relativeDateSelector.mjs +4 -4
  237. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  238. package/fesm2022/aril-ui-selectBox.mjs +5 -5
  239. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  240. package/fesm2022/aril-ui-switch.mjs +3 -3
  241. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  242. package/fesm2022/aril-ui-table-expand.mjs +14 -14
  243. package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
  244. package/fesm2022/aril-ui-table.mjs +15 -15
  245. package/fesm2022/aril-ui-table.mjs.map +1 -1
  246. package/fesm2022/aril-ui-tag.mjs +3 -3
  247. package/fesm2022/aril-ui-tag.mjs.map +1 -1
  248. package/fesm2022/aril-ui-tagBox.mjs +5 -5
  249. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  250. package/fesm2022/aril-ui-text.mjs +3 -3
  251. package/fesm2022/aril-ui-text.mjs.map +1 -1
  252. package/fesm2022/aril-ui-textArea.mjs +3 -3
  253. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  254. package/fesm2022/aril-ui-toggle-button.mjs +4 -4
  255. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
  256. package/fesm2022/aril-ui-translate-input.mjs +6 -6
  257. package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
  258. package/fesm2022/aril-ui-tree.mjs +4 -4
  259. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  260. package/fesm2022/aril-ui-treeSelect.mjs +4 -4
  261. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
  262. package/fesm2022/aril-ui-value.mjs +5 -5
  263. package/fesm2022/aril-ui-value.mjs.map +1 -1
  264. package/fesm2022/aril-util-activity.mjs +3 -3
  265. package/fesm2022/aril-util-activity.mjs.map +1 -1
  266. package/fesm2022/aril-util-block.mjs +3 -3
  267. package/fesm2022/aril-util-block.mjs.map +1 -1
  268. package/fesm2022/aril-util-directives.mjs +10 -10
  269. package/fesm2022/aril-util-directives.mjs.map +1 -1
  270. package/fesm2022/aril-util-lib.mjs +3 -3
  271. package/fesm2022/aril-util-lib.mjs.map +1 -1
  272. package/fesm2022/aril-util-pipes.mjs +18 -18
  273. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  274. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  275. package/fesm2022/aril-util-pub-sub.mjs +3 -3
  276. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  277. package/fesm2022/aril-util-sync-active-tab-route.mjs +4 -4
  278. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  279. package/fesm2022/aril.mjs +9 -9
  280. package/fesm2022/aril.mjs.map +1 -1
  281. package/package.json +88 -88
  282. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +16 -0
  283. package/theme/layout/app/history/history-sidebar.component.d.ts +16 -0
  284. package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +16 -0
  285. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +16 -0
  286. package/ui/autoComplete/src/auto-complete.component.d.ts +8 -8
  287. package/ui/badge/src/badge.component.d.ts +9 -9
  288. package/ui/button/src/button.component.d.ts +12 -12
  289. package/ui/calendar/src/calendar.component.d.ts +22 -22
  290. package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +3 -3
  291. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +5 -5
  292. package/ui/checkbox/src/check-box.component.d.ts +3 -3
  293. package/ui/checkbox/src/tri-state-checkbox.component.d.ts +2 -2
  294. package/ui/chip/src/chip.component.d.ts +7 -7
  295. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +4 -4
  296. package/ui/dxField/src/dx-field.component.d.ts +5 -5
  297. package/ui/editor/src/aril-editor.component.d.ts +3 -3
  298. package/ui/field/src/field.component.d.ts +9 -9
  299. package/ui/fileUpload/src/file-upload.component.d.ts +14 -14
  300. package/ui/form/src/form-submit-button.component.d.ts +1 -1
  301. package/ui/form/src/form.component.d.ts +1 -1
  302. package/ui/img-viewer/src/img-viewer.component.d.ts +1 -1
  303. package/ui/lib/src/form/form-error-message.directive.d.ts +1 -1
  304. package/ui/mask/src/mask.component.d.ts +6 -6
  305. package/ui/multiSelect/src/multi-select.component.d.ts +13 -13
  306. package/ui/number/src/number.component.d.ts +15 -15
  307. package/ui/panel/src/panel.component.d.ts +6 -6
  308. package/ui/password/src/password.component.d.ts +4 -4
  309. package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +12 -12
  310. package/ui/progressbar/src/progressbar.component.d.ts +3 -3
  311. package/ui/radioButton/src/radio-button.component.d.ts +3 -3
  312. package/ui/selectBox/src/select-box.component.d.ts +9 -9
  313. package/ui/switch/src/switch.component.d.ts +1 -1
  314. package/ui/table/src/export-overlay-panel.component.d.ts +2 -2
  315. package/ui/table/src/table-column.component.d.ts +11 -11
  316. package/ui/table/src/table.component.d.ts +35 -35
  317. package/ui/table-expand/src/table-column.component.d.ts +6 -6
  318. package/ui/table-expand/src/table.component.d.ts +20 -20
  319. package/ui/tag/src/tag.component.d.ts +4 -6
  320. package/ui/tagBox/src/tag-box.component.d.ts +7 -7
  321. package/ui/text/src/text.component.d.ts +5 -5
  322. package/ui/textArea/src/text-area.component.d.ts +5 -5
  323. package/ui/toggle-button/src/toggle-button.component.d.ts +1 -1
  324. package/ui/translate-input/src/aril-translate-input.component.d.ts +2 -2
  325. package/ui/tree/src/tree.component.d.ts +8 -8
  326. package/ui/treeSelect/src/treeSelect.component.d.ts +12 -12
  327. package/ui/value/src/value.component.d.ts +15 -15
  328. package/ui-business/assetPicker/src/asset-picker.component.d.ts +11 -11
  329. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +3 -6
  330. package/ui-business/enumPicker/src/enum-picker.component.d.ts +23 -23
  331. package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +8 -8
  332. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +2 -5
  333. package/ui-business/ref-value/src/ref-value.component.d.ts +5 -5
  334. package/ui-business/rolePicker/src/role-picker.component.d.ts +6 -6
  335. package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +8 -8
  336. package/ui-business/trace-id/src/trace-id.component.d.ts +6 -6
  337. package/ui-business/userPicker/src/user-picker.component.d.ts +3 -3
  338. package/util/block/src/block.d.ts +2 -2
  339. package/util/lib/src/types.d.ts +16 -0
  340. package/fesm2022/aril-app.component-MjG_tPEe.mjs.map +0 -1
  341. package/fesm2022/aril-boot-mfe-app.component-DtspQ3J8.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
- import { DecimalPipe, SlicePipe, CurrencyPipe } from '@angular/common';
1
+ import { SlicePipe, DecimalPipe, CurrencyPipe } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, computed, signal, Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import { input, computed, signal, ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { DialogService } from 'primeng/dynamicdialog';
6
6
  import * as i5 from 'primeng/overlaypanel';
@@ -189,10 +189,10 @@ class ValueComponent {
189
189
  });
190
190
  });
191
191
  }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, deps: [{ token: i1.TranslocoService }, { token: i2.SelectionGroupService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, shouldShowCopyForClampedText: { classPropertyName: "shouldShowCopyForClampedText", publicName: "shouldShowCopyForClampedText", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalRoundingMode: { classPropertyName: "bigDecimalRoundingMode", publicName: "bigDecimalRoundingMode", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalScale: { classPropertyName: "bigDecimalScale", publicName: "bigDecimalScale", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService, DecimalPipe], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\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</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", styles: [".text-no-wrap{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass", "textColor", "borderColor", "textClampCharacters"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.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: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: EnumColorPickerPipe, name: "enumColorPicker" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: RoundNumberPipe, name: "roundNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueComponent, deps: [{ token: i1.TranslocoService }, { token: i2.SelectionGroupService }, { token: i3.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValueComponent, isStandalone: true, selector: "aril-value", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, isClickable: { classPropertyName: "isClickable", publicName: "isClickable", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null }, parentSelectionKey: { classPropertyName: "parentSelectionKey", publicName: "parentSelectionKey", isSignal: true, isRequired: false, transformFunction: null }, isTextClamp: { classPropertyName: "isTextClamp", publicName: "isTextClamp", isSignal: true, isRequired: false, transformFunction: null }, textClampCharacters: { classPropertyName: "textClampCharacters", publicName: "textClampCharacters", isSignal: true, isRequired: false, transformFunction: null }, style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, shouldShowCopyForClampedText: { classPropertyName: "shouldShowCopyForClampedText", publicName: "shouldShowCopyForClampedText", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeDisplayName: { classPropertyName: "arrayTypeDisplayName", publicName: "arrayTypeDisplayName", isSignal: true, isRequired: false, transformFunction: null }, arrayTypeMaxBadgeCount: { classPropertyName: "arrayTypeMaxBadgeCount", publicName: "arrayTypeMaxBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalRoundingMode: { classPropertyName: "bigDecimalRoundingMode", publicName: "bigDecimalRoundingMode", isSignal: true, isRequired: false, transformFunction: null }, bigDecimalScale: { classPropertyName: "bigDecimalScale", publicName: "bigDecimalScale", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DialogService, DecimalPipe], ngImport: i0, template: "@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\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</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n", styles: [".text-no-wrap{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "aril-badge", inputs: ["icon", "value", "severity", "rounded", "background", "styleClass", "textColor", "borderColor", "textClampCharacters"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.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: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i5.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "pipe", type: EnumColorPickerPipe, name: "enumColorPicker" }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: RoundNumberPipe, name: "roundNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
194
  }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ValueComponent, decorators: [{
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueComponent, decorators: [{
196
196
  type: Component,
197
197
  args: [{ standalone: true, selector: 'aril-value', imports: [
198
198
  BadgeComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { CurrencyPipe, DecimalPipe, SlicePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BadgeComponent } from 'aril/ui/badge';\r\nimport { EnumColorPickerPipe } from 'aril/ui/lib';\r\nimport { DecimalRoundingType } from 'aril/util/lib';\r\nimport { RoundNumberPipe } from 'aril/util/pipes';\r\nimport 'aril/util/primitive-extensions';\r\n\r\ntype ValueTypes =\r\n\t| 'text'\r\n\t| 'number'\r\n\t| 'bool'\r\n\t| 'decimal'\r\n\t| 'big_decimal'\r\n\t| 'date'\r\n\t| 'password'\r\n\t| 'enum'\r\n\t| 'array'\r\n\t| 'isoDate'\r\n\t| 'currency';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-value',\r\n\ttemplateUrl: './value.component.html',\r\n\tstyleUrl: './value.component.scss',\r\n\timports: [\r\n\t\tBadgeComponent,\r\n\t\tTooltipModule,\r\n\t\tTranslocoModule,\r\n\t\tOverlayPanelModule,\r\n\t\tEnumColorPickerPipe,\r\n\t\tSlicePipe,\r\n\t\tDecimalPipe,\r\n\t\tCurrencyPipe,\r\n\t\tRoundNumberPipe\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [DialogService, DecimalPipe]\r\n})\r\nexport class ValueComponent {\r\n\tmodel = input.required<string | number | boolean | any>();\r\n\ttype = input<ValueTypes>('text');\r\n\tformat = input<string>();\r\n\tisClickable = input<boolean>(false);\r\n\tgroupName = input<string>();\r\n\tparentSelectionKey = input<string>('ALL');\r\n\tisTextClamp = input<boolean>(true);\r\n\ttextClampCharacters = input<number>(50);\r\n\tstyle = input<string>();\r\n\tcopyable = input<boolean>(false);\r\n\tshouldShowCopyForClampedText = input<boolean>(false);\r\n\tshowCopyIcon = computed(\r\n\t\t() =>\r\n\t\t\t(!this.shouldShowCopyForClampedText() && this.copyable()) ||\r\n\t\t\t(this.shouldShowCopyForClampedText() && this.model().length > this.textClampCharacters())\r\n\t);\r\n\r\n\t// only for array type\r\n\tarrayTypeDisplayName = input<string>('valueDesc');\r\n\tarrayTypeMaxBadgeCount = input<number>(3);\r\n\r\n\t// only for big_decimal type\r\n\tbigDecimalRoundingMode = input<DecimalRoundingType>();\r\n\tbigDecimalScale = input<number>();\r\n\r\n\tconstructor(\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.translocoService.langChanges$.pipe(takeUntilDestroyed()).subscribe((lang) => {\r\n\t\t\tthis.langSignal.set(lang);\r\n\t\t});\r\n\t}\r\n\r\n\tlangSignal = signal(this.translocoService.getActiveLang());\r\n\r\n\tgetNumberFormat(): string {\r\n\t\tif (this.type() === 'number') return '1.0-0';\r\n\t\telse if (this.type() === 'decimal') {\r\n\t\t\tconst format = this.format();\r\n\r\n\t\t\tif (!format) return '1.0-3';\r\n\r\n\t\t\t// Eğer format Angular DecimalPipe formatındaysa direkt kullan\r\n\t\t\tif (format && typeof format === 'string' && format.match(/^\\d+\\.\\d+-\\d+$/)) {\r\n\t\t\t\treturn format;\r\n\t\t\t}\r\n\t\t\t// Eğer eski format string'i varsa (örn: #.00) onu çevir\r\n\t\t\tif (format && typeof format === 'string' && format.includes('.')) {\r\n\t\t\t\tconst decimalPlaces = format.split('.')[1].length;\r\n\t\t\t\treturn `1.${decimalPlaces}-${decimalPlaces}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcolorList = [\r\n\t\t'#1890FF',\r\n\t\t'#FAAD14',\r\n\t\t'#52C41A',\r\n\t\t'#5D6D7E',\r\n\t\t'#FF6B6B',\r\n\t\t'#13C2C2',\r\n\t\t'#58D68D',\r\n\t\t'#722ED1',\r\n\t\t'#85C1E9',\r\n\t\t'#c49e05ff'\r\n\t];\r\n\r\n\tdisplay = computed(() => {\r\n\t\tswitch (this.type()) {\r\n\t\t\tcase 'text':\r\n\t\t\tcase 'number':\r\n\t\t\tcase 'decimal':\r\n\t\t\tcase 'currency':\r\n\t\t\tcase 'big_decimal':\r\n\t\t\t\treturn this.model();\r\n\t\t\tcase 'date':\r\n\t\t\t\treturn (<number>this.model()).longToString(this.format() ?? 'time');\r\n\t\t\tcase 'password':\r\n\t\t\t\treturn (<string>this.model()).replace(/./g, '*');\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type: '\" + this.type() + \"'\");\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t});\r\n\r\n\tenumSelectionDisplay = computed(() => {\r\n\t\tconst currentLang = this.langSignal();\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model();\r\n\t\t}\r\n\r\n\t\tconst rawModel = this.model();\r\n\t\tconst key =\r\n\t\t\ttypeof rawModel === 'object' && rawModel !== null && 'value' in rawModel ? rawModel.value\r\n\t\t\t: typeof rawModel === 'boolean' ? String(rawModel)\r\n\t\t\t: rawModel;\r\n\r\n\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return key;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t});\r\n\r\n\tenumBadgeBackgroundColor = computed(() => {\r\n\t\tif (typeof this.model() === 'boolean') {\r\n\t\t\treturn this.model() ? '#22c55e' : '#ef4444'; // true için yeşil, false için kırmızı\r\n\t\t}\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === this.model());\r\n\r\n\t\tif (!selectionItem) {\r\n\t\t\treturn '#1890FF';\r\n\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t}\r\n\t\treturn '#A2AFFF';\r\n\t});\r\n\r\n\tgetArrayItemValue(item: any): any {\r\n\t\treturn item[this.arrayTypeDisplayName()];\r\n\t}\r\n\r\n\tisModelArray = computed(() => {\r\n\t\treturn Array.isArray(this.model());\r\n\t});\r\n\r\n\t// Get enum display for array items\r\n\tenumArrayDisplays = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst currentLang = this.langSignal();\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model() as string[];\r\n\t\t}\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tconst key =\r\n\t\t\t\ttypeof item === 'object' && item !== null && 'value' in item ? item.value\r\n\t\t\t\t: typeof item === 'boolean' ? String(item)\r\n\t\t\t\t: item;\r\n\r\n\t\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\t\tselectionDisplay?: string;\r\n\t\t\t};\r\n\r\n\t\t\tif (!selectionItem) return key;\r\n\r\n\t\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t\t}) as string[];\r\n\t});\r\n\r\n\t// Get enum background colors for array items\r\n\tenumArrayBackgroundColors = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tif (typeof item === 'boolean') {\r\n\t\t\t\treturn item ? '#22c55e' : '#ef4444';\r\n\t\t\t}\r\n\r\n\t\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === item);\r\n\r\n\t\t\tif (!selectionItem) {\r\n\t\t\t\treturn '#1890FF';\r\n\t\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t\t}\r\n\t\t\treturn '#A2AFFF';\r\n\t\t});\r\n\t});\r\n\r\n\tcopyToClipboard(value: string | undefined) {\r\n\t\tif (!value) return;\r\n\t\tnavigator.clipboard.writeText(value).then(\r\n\t\t\t() => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardSuccess'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'error',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.unsuccessfulMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardError'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\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</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { CurrencyPipe, DecimalPipe, SlicePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BadgeComponent } from 'aril/ui/badge';\r\nimport { EnumColorPickerPipe } from 'aril/ui/lib';\r\nimport { DecimalRoundingType } from 'aril/util/lib';\r\nimport { RoundNumberPipe } from 'aril/util/pipes';\r\nimport 'aril/util/primitive-extensions';\r\n\r\ntype ValueTypes =\r\n\t| 'text'\r\n\t| 'number'\r\n\t| 'bool'\r\n\t| 'decimal'\r\n\t| 'big_decimal'\r\n\t| 'date'\r\n\t| 'password'\r\n\t| 'enum'\r\n\t| 'array'\r\n\t| 'isoDate'\r\n\t| 'currency';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-value',\r\n\ttemplateUrl: './value.component.html',\r\n\tstyleUrl: './value.component.scss',\r\n\timports: [\r\n\t\tBadgeComponent,\r\n\t\tTooltipModule,\r\n\t\tTranslocoModule,\r\n\t\tOverlayPanelModule,\r\n\t\tEnumColorPickerPipe,\r\n\t\tSlicePipe,\r\n\t\tDecimalPipe,\r\n\t\tCurrencyPipe,\r\n\t\tRoundNumberPipe\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [DialogService, DecimalPipe]\r\n})\r\nexport class ValueComponent {\r\n\tmodel = input.required<string | number | boolean | any>();\r\n\ttype = input<ValueTypes>('text');\r\n\tformat = input<string>();\r\n\tisClickable = input<boolean>(false);\r\n\tgroupName = input<string>();\r\n\tparentSelectionKey = input<string>('ALL');\r\n\tisTextClamp = input<boolean>(true);\r\n\ttextClampCharacters = input<number>(50);\r\n\tstyle = input<string>();\r\n\tcopyable = input<boolean>(false);\r\n\tshouldShowCopyForClampedText = input<boolean>(false);\r\n\tshowCopyIcon = computed(\r\n\t\t() =>\r\n\t\t\t(!this.shouldShowCopyForClampedText() && this.copyable()) ||\r\n\t\t\t(this.shouldShowCopyForClampedText() && this.model().length > this.textClampCharacters())\r\n\t);\r\n\r\n\t// only for array type\r\n\tarrayTypeDisplayName = input<string>('valueDesc');\r\n\tarrayTypeMaxBadgeCount = input<number>(3);\r\n\r\n\t// only for big_decimal type\r\n\tbigDecimalRoundingMode = input<DecimalRoundingType>();\r\n\tbigDecimalScale = input<number>();\r\n\r\n\tconstructor(\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.translocoService.langChanges$.pipe(takeUntilDestroyed()).subscribe((lang) => {\r\n\t\t\tthis.langSignal.set(lang);\r\n\t\t});\r\n\t}\r\n\r\n\tlangSignal = signal(this.translocoService.getActiveLang());\r\n\r\n\tgetNumberFormat(): string {\r\n\t\tif (this.type() === 'number') return '1.0-0';\r\n\t\telse if (this.type() === 'decimal') {\r\n\t\t\tconst format = this.format();\r\n\r\n\t\t\tif (!format) return '1.0-3';\r\n\r\n\t\t\t// Eğer format Angular DecimalPipe formatındaysa direkt kullan\r\n\t\t\tif (format && typeof format === 'string' && format.match(/^\\d+\\.\\d+-\\d+$/)) {\r\n\t\t\t\treturn format;\r\n\t\t\t}\r\n\t\t\t// Eğer eski format string'i varsa (örn: #.00) onu çevir\r\n\t\t\tif (format && typeof format === 'string' && format.includes('.')) {\r\n\t\t\t\tconst decimalPlaces = format.split('.')[1].length;\r\n\t\t\t\treturn `1.${decimalPlaces}-${decimalPlaces}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcolorList = [\r\n\t\t'#1890FF',\r\n\t\t'#FAAD14',\r\n\t\t'#52C41A',\r\n\t\t'#5D6D7E',\r\n\t\t'#FF6B6B',\r\n\t\t'#13C2C2',\r\n\t\t'#58D68D',\r\n\t\t'#722ED1',\r\n\t\t'#85C1E9',\r\n\t\t'#c49e05ff'\r\n\t];\r\n\r\n\tdisplay = computed(() => {\r\n\t\tswitch (this.type()) {\r\n\t\t\tcase 'text':\r\n\t\t\tcase 'number':\r\n\t\t\tcase 'decimal':\r\n\t\t\tcase 'currency':\r\n\t\t\tcase 'big_decimal':\r\n\t\t\t\treturn this.model();\r\n\t\t\tcase 'date':\r\n\t\t\t\treturn (<number>this.model()).longToString(this.format() ?? 'time');\r\n\t\t\tcase 'password':\r\n\t\t\t\treturn (<string>this.model()).replace(/./g, '*');\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type: '\" + this.type() + \"'\");\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t});\r\n\r\n\tenumSelectionDisplay = computed(() => {\r\n\t\tconst currentLang = this.langSignal();\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model();\r\n\t\t}\r\n\r\n\t\tconst rawModel = this.model();\r\n\t\tconst key =\r\n\t\t\ttypeof rawModel === 'object' && rawModel !== null && 'value' in rawModel ? rawModel.value\r\n\t\t\t: typeof rawModel === 'boolean' ? String(rawModel)\r\n\t\t\t: rawModel;\r\n\r\n\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return key;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t});\r\n\r\n\tenumBadgeBackgroundColor = computed(() => {\r\n\t\tif (typeof this.model() === 'boolean') {\r\n\t\t\treturn this.model() ? '#22c55e' : '#ef4444'; // true için yeşil, false için kırmızı\r\n\t\t}\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === this.model());\r\n\r\n\t\tif (!selectionItem) {\r\n\t\t\treturn '#1890FF';\r\n\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t}\r\n\t\treturn '#A2AFFF';\r\n\t});\r\n\r\n\tgetArrayItemValue(item: any): any {\r\n\t\treturn item[this.arrayTypeDisplayName()];\r\n\t}\r\n\r\n\tisModelArray = computed(() => {\r\n\t\treturn Array.isArray(this.model());\r\n\t});\r\n\r\n\t// Get enum display for array items\r\n\tenumArrayDisplays = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst currentLang = this.langSignal();\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model() as string[];\r\n\t\t}\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tconst key =\r\n\t\t\t\ttypeof item === 'object' && item !== null && 'value' in item ? item.value\r\n\t\t\t\t: typeof item === 'boolean' ? String(item)\r\n\t\t\t\t: item;\r\n\r\n\t\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\t\tselectionDisplay?: string;\r\n\t\t\t};\r\n\r\n\t\t\tif (!selectionItem) return key;\r\n\r\n\t\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t\t}) as string[];\r\n\t});\r\n\r\n\t// Get enum background colors for array items\r\n\tenumArrayBackgroundColors = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tif (typeof item === 'boolean') {\r\n\t\t\t\treturn item ? '#22c55e' : '#ef4444';\r\n\t\t\t}\r\n\r\n\t\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === item);\r\n\r\n\t\t\tif (!selectionItem) {\r\n\t\t\t\treturn '#1890FF';\r\n\t\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t\t}\r\n\t\t\treturn '#A2AFFF';\r\n\t\t});\r\n\t});\r\n\r\n\tcopyToClipboard(value: string | undefined) {\r\n\t\tif (!value) return;\r\n\t\tnavigator.clipboard.writeText(value).then(\r\n\t\t\t() => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardSuccess'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'error',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.unsuccessfulMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardError'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\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</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -212,10 +212,10 @@ class ActivityService {
212
212
  }))
213
213
  .catch(() => undefined);
214
214
  }
215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
216
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, providedIn: 'root' }); }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
216
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, providedIn: 'root' }); }
217
217
  }
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, decorators: [{
219
219
  type: Injectable,
220
220
  args: [{ providedIn: 'root' }]
221
221
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-activity.mjs","sources":["../../projects/aril/util/activity/src/activity.constants.ts","../../projects/aril/util/activity/src/activity.service.ts","../../projects/aril/util/activity/aril-util-activity.ts"],"sourcesContent":["export const ACTIVITY_ENDPOINT_PATH = 'analytics/track';\r\nexport const ACTIVITY_SESSION_MARKER_PREFIX = 'aril.activity.session:';\r\nexport const LOGGER_SESSION_HEADER = 'x-aril-logger-session-id';\r\n","import { Location } from '@angular/common';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nimport {\r\n\tACTIVITY_ENDPOINT_PATH,\r\n\tACTIVITY_SESSION_MARKER_PREFIX,\r\n\tLOGGER_SESSION_HEADER\r\n} from './activity.constants';\r\nimport { ActivityEvent, ActivityEventType } from './activity.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ActivityService {\r\n\tprivate readonly keycloak = inject(KeycloakService);\r\n\t// Router/Location optional: MFE shared scope'da bunlar yok (child injector'da yaşıyor).\r\n\t// Plugin/Host scope'da var. Null durumunda PAGE_VIEW subscribe'ları no-op olur.\r\n\tprivate readonly router = inject(Router, { optional: true });\r\n\tprivate readonly location = inject(Location, { optional: true });\r\n\r\n\tprivate sessionId: string | null = null;\r\n\tprivate username: string | null = null;\r\n\tprivate previousPath: string | null = null;\r\n\tprivate started = false;\r\n\r\n\tgetSessionId(): string | null {\r\n\t\tif (this.sessionId) return this.sessionId;\r\n\t\tconst fresh = this.readSessionIdFromKeycloak();\r\n\t\tif (fresh) this.sessionId = fresh;\r\n\t\treturn fresh;\r\n\t}\r\n\r\n\tstart(options: { shellMode?: boolean } = {}): void {\r\n\t\tif (this.started) return;\r\n\t\tthis.started = true;\r\n\r\n\t\tthis.captureSessionContext();\r\n\t\tthis.subscribeKeycloakRefresh();\r\n\r\n\t\tif (this.location) {\r\n\t\t\tthis.location.onUrlChange(() => this.maybeEmitPageView(this.location!.path()));\r\n\t\t}\r\n\r\n\t\tif (options.shellMode) {\r\n\t\t\tthis.subscribeLifecycleEvents();\r\n\t\t\tthis.subscribeRouterEvents();\r\n\t\t\tthis.handleSessionStart();\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(event: string, properties: Record<string, unknown> = {}, type: ActivityEventType = 'CUSTOM'): void {\r\n\t\tif (!this.started) return;\r\n\t\tthis.send({ type, event, properties });\r\n\t}\r\n\r\n\tprivate readSessionIdFromKeycloak(): string | null {\r\n\t\tconst kc = this.keycloak.getKeycloakInstance() as\r\n\t\t\t| { sessionId?: string; tokenParsed?: { session_state?: string; sid?: string } }\r\n\t\t\t| undefined;\r\n\t\treturn kc?.sessionId ?? kc?.tokenParsed?.session_state ?? kc?.tokenParsed?.sid ?? null;\r\n\t}\r\n\r\n\tprivate captureSessionContext(): void {\r\n\t\tthis.sessionId = this.readSessionIdFromKeycloak();\r\n\t\tthis.username = this.keycloak.getUsername() ?? null;\r\n\t}\r\n\r\n\tprivate subscribeKeycloakRefresh(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\tthis.captureSessionContext();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeLifecycleEvents(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthLogout) {\r\n\t\t\t\tthis.sendSessionEnd('logout');\r\n\t\t\t} else if (event.type === KeycloakEventType.OnAuthRefreshError) {\r\n\t\t\t\tthis.sendSessionEnd('refresh_failed');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeRouterEvents(): void {\r\n\t\tif (!this.router) return;\r\n\t\tthis.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd)).subscribe((event) => {\r\n\t\t\tthis.maybeEmitPageView(event.urlAfterRedirects);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate maybeEmitPageView(currentUrl: string): void {\r\n\t\tif (currentUrl === this.previousPath) return;\r\n\r\n\t\tconst slot = globalThis as Record<string, unknown>;\r\n\t\tconst lastUrl = slot['__arilActivityLastPageUrl'] as string | undefined;\r\n\t\tconst lastAt = slot['__arilActivityLastPageAt'] as number | undefined;\r\n\t\tif (lastUrl === currentUrl && lastAt && Date.now() - lastAt < 1000) {\r\n\t\t\tthis.previousPath = currentUrl;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst previous = this.previousPath;\r\n\t\tthis.previousPath = currentUrl;\r\n\t\tslot['__arilActivityLastPageUrl'] = currentUrl;\r\n\t\tslot['__arilActivityLastPageAt'] = Date.now();\r\n\r\n\t\tthis.send({\r\n\t\t\ttype: 'PAGE_VIEW',\r\n\t\t\tevent: '',\r\n\t\t\tpage: currentUrl,\r\n\t\t\treferrer: previous ?? undefined,\r\n\t\t\tproperties: {}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate handleSessionStart(): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst currentKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet alreadyMarked = false;\r\n\t\ttry {\r\n\t\t\talreadyMarked = !!localStorage.getItem(currentKey);\r\n\t\t\tthis.purgeStaleSessionMarkers(currentKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tif (alreadyMarked) return;\r\n\t\ttry {\r\n\t\t\tlocalStorage.setItem(currentKey, Date.now().toString());\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_START',\r\n\t\t\tevent: 'login',\r\n\t\t\tproperties: { userAgent: navigator.userAgent }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate purgeStaleSessionMarkers(keepKey: string): void {\r\n\t\tconst stale: string[] = [];\r\n\t\tfor (let i = 0; i < localStorage.length; i++) {\r\n\t\t\tconst key = localStorage.key(i);\r\n\t\t\tif (key && key !== keepKey && key.startsWith(ACTIVITY_SESSION_MARKER_PREFIX)) {\r\n\t\t\t\tstale.push(key);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstale.forEach((k) => localStorage.removeItem(k));\r\n\t}\r\n\r\n\tprivate sendSessionEnd(reason: 'logout' | 'refresh_failed'): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst markerKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet durationMs = 0;\r\n\t\ttry {\r\n\t\t\tconst loginTimestamp = parseInt(localStorage.getItem(markerKey) ?? '0', 10);\r\n\t\t\tdurationMs = loginTimestamp ? Date.now() - loginTimestamp : 0;\r\n\t\t\tlocalStorage.removeItem(markerKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_END',\r\n\t\t\tevent: reason,\r\n\t\t\tproperties: { durationMs }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toAbsoluteUrl(routerPath: string): string {\r\n\t\tif (routerPath.startsWith('http://') || routerPath.startsWith('https://')) return routerPath;\r\n\t\treturn `${window.location.origin}/#${routerPath}`;\r\n\t}\r\n\r\n\t/**\r\n\t * MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).\r\n\t * Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —\r\n\t * browser'ın sahip olduğu güncel URL.\r\n\t */\r\n\tprivate readCurrentPath(): string {\r\n\t\tif (this.location) return this.location.path();\r\n\t\tif (this.router) return this.router.url;\r\n\t\tconst hash = window.location.hash;\r\n\t\treturn hash.startsWith('#') ? hash.slice(1) : '';\r\n\t}\r\n\r\n\tprivate send(partial: {\r\n\t\ttype: ActivityEventType;\r\n\t\tevent: string;\r\n\t\tpage?: string;\r\n\t\treferrer?: string;\r\n\t\tproperties: Record<string, unknown>;\r\n\t}): void {\r\n\t\tif (!this.sessionId) return;\r\n\r\n\t\tconst baseUrl = API_CONFIGS.getExternalAppEndpoint(Apps.EVENT_GATEWAY);\r\n\t\tif (!baseUrl) return;\r\n\r\n\t\tconst currentPath = partial.page ?? this.readCurrentPath();\r\n\t\tconst payload: ActivityEvent = {\r\n\t\t\ttype: partial.type,\r\n\t\t\tsessionId: this.sessionId,\r\n\t\t\tusername: this.username ?? '',\r\n\t\t\tevent: partial.event,\r\n\t\t\tpage: this.toAbsoluteUrl(currentPath),\r\n\t\t\tip: '',\r\n\t\t\treferrer: partial.referrer ? this.toAbsoluteUrl(partial.referrer) : `${window.location.origin}/#`,\r\n\t\t\ttraceId: '',\r\n\t\t\tclientTimestamp: Date.now(),\r\n\t\t\tproperties: partial.properties\r\n\t\t};\r\n\r\n\t\tconst url = `${baseUrl.replace(/\\/$/, '')}/${ACTIVITY_ENDPOINT_PATH}`;\r\n\r\n\t\tthis.keycloak\r\n\t\t\t.getToken()\r\n\t\t\t.then((token) =>\r\n\t\t\t\tfetch(url, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tkeepalive: true,\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\t[LOGGER_SESSION_HEADER]: this.sessionId!,\r\n\t\t\t\t\t\t...(token ? { Authorization: `Bearer ${token}` } : {})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify(payload)\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.catch(() => undefined);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-util-activity.mjs","sources":["../../projects/aril/util/activity/src/activity.constants.ts","../../projects/aril/util/activity/src/activity.service.ts","../../projects/aril/util/activity/aril-util-activity.ts"],"sourcesContent":["export const ACTIVITY_ENDPOINT_PATH = 'analytics/track';\r\nexport const ACTIVITY_SESSION_MARKER_PREFIX = 'aril.activity.session:';\r\nexport const LOGGER_SESSION_HEADER = 'x-aril-logger-session-id';\r\n","import { Location } from '@angular/common';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nimport {\r\n\tACTIVITY_ENDPOINT_PATH,\r\n\tACTIVITY_SESSION_MARKER_PREFIX,\r\n\tLOGGER_SESSION_HEADER\r\n} from './activity.constants';\r\nimport { ActivityEvent, ActivityEventType } from './activity.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ActivityService {\r\n\tprivate readonly keycloak = inject(KeycloakService);\r\n\t// Router/Location optional: MFE shared scope'da bunlar yok (child injector'da yaşıyor).\r\n\t// Plugin/Host scope'da var. Null durumunda PAGE_VIEW subscribe'ları no-op olur.\r\n\tprivate readonly router = inject(Router, { optional: true });\r\n\tprivate readonly location = inject(Location, { optional: true });\r\n\r\n\tprivate sessionId: string | null = null;\r\n\tprivate username: string | null = null;\r\n\tprivate previousPath: string | null = null;\r\n\tprivate started = false;\r\n\r\n\tgetSessionId(): string | null {\r\n\t\tif (this.sessionId) return this.sessionId;\r\n\t\tconst fresh = this.readSessionIdFromKeycloak();\r\n\t\tif (fresh) this.sessionId = fresh;\r\n\t\treturn fresh;\r\n\t}\r\n\r\n\tstart(options: { shellMode?: boolean } = {}): void {\r\n\t\tif (this.started) return;\r\n\t\tthis.started = true;\r\n\r\n\t\tthis.captureSessionContext();\r\n\t\tthis.subscribeKeycloakRefresh();\r\n\r\n\t\tif (this.location) {\r\n\t\t\tthis.location.onUrlChange(() => this.maybeEmitPageView(this.location!.path()));\r\n\t\t}\r\n\r\n\t\tif (options.shellMode) {\r\n\t\t\tthis.subscribeLifecycleEvents();\r\n\t\t\tthis.subscribeRouterEvents();\r\n\t\t\tthis.handleSessionStart();\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(event: string, properties: Record<string, unknown> = {}, type: ActivityEventType = 'CUSTOM'): void {\r\n\t\tif (!this.started) return;\r\n\t\tthis.send({ type, event, properties });\r\n\t}\r\n\r\n\tprivate readSessionIdFromKeycloak(): string | null {\r\n\t\tconst kc = this.keycloak.getKeycloakInstance() as\r\n\t\t\t| { sessionId?: string; tokenParsed?: { session_state?: string; sid?: string } }\r\n\t\t\t| undefined;\r\n\t\treturn kc?.sessionId ?? kc?.tokenParsed?.session_state ?? kc?.tokenParsed?.sid ?? null;\r\n\t}\r\n\r\n\tprivate captureSessionContext(): void {\r\n\t\tthis.sessionId = this.readSessionIdFromKeycloak();\r\n\t\tthis.username = this.keycloak.getUsername() ?? null;\r\n\t}\r\n\r\n\tprivate subscribeKeycloakRefresh(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\tthis.captureSessionContext();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeLifecycleEvents(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthLogout) {\r\n\t\t\t\tthis.sendSessionEnd('logout');\r\n\t\t\t} else if (event.type === KeycloakEventType.OnAuthRefreshError) {\r\n\t\t\t\tthis.sendSessionEnd('refresh_failed');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeRouterEvents(): void {\r\n\t\tif (!this.router) return;\r\n\t\tthis.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd)).subscribe((event) => {\r\n\t\t\tthis.maybeEmitPageView(event.urlAfterRedirects);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate maybeEmitPageView(currentUrl: string): void {\r\n\t\tif (currentUrl === this.previousPath) return;\r\n\r\n\t\tconst slot = globalThis as Record<string, unknown>;\r\n\t\tconst lastUrl = slot['__arilActivityLastPageUrl'] as string | undefined;\r\n\t\tconst lastAt = slot['__arilActivityLastPageAt'] as number | undefined;\r\n\t\tif (lastUrl === currentUrl && lastAt && Date.now() - lastAt < 1000) {\r\n\t\t\tthis.previousPath = currentUrl;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst previous = this.previousPath;\r\n\t\tthis.previousPath = currentUrl;\r\n\t\tslot['__arilActivityLastPageUrl'] = currentUrl;\r\n\t\tslot['__arilActivityLastPageAt'] = Date.now();\r\n\r\n\t\tthis.send({\r\n\t\t\ttype: 'PAGE_VIEW',\r\n\t\t\tevent: '',\r\n\t\t\tpage: currentUrl,\r\n\t\t\treferrer: previous ?? undefined,\r\n\t\t\tproperties: {}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate handleSessionStart(): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst currentKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet alreadyMarked = false;\r\n\t\ttry {\r\n\t\t\talreadyMarked = !!localStorage.getItem(currentKey);\r\n\t\t\tthis.purgeStaleSessionMarkers(currentKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tif (alreadyMarked) return;\r\n\t\ttry {\r\n\t\t\tlocalStorage.setItem(currentKey, Date.now().toString());\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_START',\r\n\t\t\tevent: 'login',\r\n\t\t\tproperties: { userAgent: navigator.userAgent }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate purgeStaleSessionMarkers(keepKey: string): void {\r\n\t\tconst stale: string[] = [];\r\n\t\tfor (let i = 0; i < localStorage.length; i++) {\r\n\t\t\tconst key = localStorage.key(i);\r\n\t\t\tif (key && key !== keepKey && key.startsWith(ACTIVITY_SESSION_MARKER_PREFIX)) {\r\n\t\t\t\tstale.push(key);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstale.forEach((k) => localStorage.removeItem(k));\r\n\t}\r\n\r\n\tprivate sendSessionEnd(reason: 'logout' | 'refresh_failed'): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst markerKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet durationMs = 0;\r\n\t\ttry {\r\n\t\t\tconst loginTimestamp = parseInt(localStorage.getItem(markerKey) ?? '0', 10);\r\n\t\t\tdurationMs = loginTimestamp ? Date.now() - loginTimestamp : 0;\r\n\t\t\tlocalStorage.removeItem(markerKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_END',\r\n\t\t\tevent: reason,\r\n\t\t\tproperties: { durationMs }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toAbsoluteUrl(routerPath: string): string {\r\n\t\tif (routerPath.startsWith('http://') || routerPath.startsWith('https://')) return routerPath;\r\n\t\treturn `${window.location.origin}/#${routerPath}`;\r\n\t}\r\n\r\n\t/**\r\n\t * MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).\r\n\t * Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —\r\n\t * browser'ın sahip olduğu güncel URL.\r\n\t */\r\n\tprivate readCurrentPath(): string {\r\n\t\tif (this.location) return this.location.path();\r\n\t\tif (this.router) return this.router.url;\r\n\t\tconst hash = window.location.hash;\r\n\t\treturn hash.startsWith('#') ? hash.slice(1) : '';\r\n\t}\r\n\r\n\tprivate send(partial: {\r\n\t\ttype: ActivityEventType;\r\n\t\tevent: string;\r\n\t\tpage?: string;\r\n\t\treferrer?: string;\r\n\t\tproperties: Record<string, unknown>;\r\n\t}): void {\r\n\t\tif (!this.sessionId) return;\r\n\r\n\t\tconst baseUrl = API_CONFIGS.getExternalAppEndpoint(Apps.EVENT_GATEWAY);\r\n\t\tif (!baseUrl) return;\r\n\r\n\t\tconst currentPath = partial.page ?? this.readCurrentPath();\r\n\t\tconst payload: ActivityEvent = {\r\n\t\t\ttype: partial.type,\r\n\t\t\tsessionId: this.sessionId,\r\n\t\t\tusername: this.username ?? '',\r\n\t\t\tevent: partial.event,\r\n\t\t\tpage: this.toAbsoluteUrl(currentPath),\r\n\t\t\tip: '',\r\n\t\t\treferrer: partial.referrer ? this.toAbsoluteUrl(partial.referrer) : `${window.location.origin}/#`,\r\n\t\t\ttraceId: '',\r\n\t\t\tclientTimestamp: Date.now(),\r\n\t\t\tproperties: partial.properties\r\n\t\t};\r\n\r\n\t\tconst url = `${baseUrl.replace(/\\/$/, '')}/${ACTIVITY_ENDPOINT_PATH}`;\r\n\r\n\t\tthis.keycloak\r\n\t\t\t.getToken()\r\n\t\t\t.then((token) =>\r\n\t\t\t\tfetch(url, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tkeepalive: true,\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\t[LOGGER_SESSION_HEADER]: this.sessionId!,\r\n\t\t\t\t\t\t...(token ? { Authorization: `Bearer ${token}` } : {})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify(payload)\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.catch(() => undefined);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -36,10 +36,10 @@ class Block {
36
36
  nativeElement = nativeElement.children[0];
37
37
  return nativeElement;
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: Block, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.1.2", type: Block, isStandalone: true, selector: "[arilBlock]", inputs: { arilBlock: { classPropertyName: "arilBlock", publicName: "arilBlock", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Block, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: Block, isStandalone: true, selector: "[arilBlock]", inputs: { arilBlock: { classPropertyName: "arilBlock", publicName: "arilBlock", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: Block, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Block, decorators: [{
43
43
  type: Directive,
44
44
  args: [{
45
45
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-block.mjs","sources":["../../projects/aril/util/block/src/block.ts","../../projects/aril/util/block/aril-util-block.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, OnDestroy, effect, input, signal } from '@angular/core';\r\n\r\ndeclare const KTBlockUI: any;\r\n\r\ninterface BlockOptions {\r\n\tzIndex?: number;\r\n\toverlayClass?: string;\r\n\tmessage?: string;\r\n}\r\n\r\n@Directive({\r\n\tstandalone: true,\r\n\tselector: '[arilBlock]'\r\n})\r\nexport class Block implements AfterViewInit, OnDestroy {\r\n\tconstructor(private readonly element: ElementRef) {\r\n\t\teffect(() => {\r\n\t\t\tif (this.target()) {\r\n\t\t\t\tif (this.arilBlock()) {\r\n\t\t\t\t\tthis.blockUI.block();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.blockUI.release();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tarilBlock = input.required<boolean>();\r\n\tblockOptions = input<BlockOptions>({});\r\n\r\n\tblockUI: typeof KTBlockUI;\r\n\ttarget = signal<HTMLElement>(this.element.nativeElement);\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.target.set(this.getTarget(this.element));\r\n\t\tthis.blockUI = new KTBlockUI(this.target(), this.blockOptions());\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\t// KTBlockUI instance'ı KTUtilElementDataStore'da tutuluyor; release overlay'i kaldırır,\r\n\t\t// destroy global store kaydını siler (aksi halde directive yok olsa da DOM bellekte kalır).\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.release();\r\n\t\t\tthis.blockUI.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tgetTarget(element: ElementRef): HTMLElement {\r\n\t\tlet nativeElement = element.nativeElement;\r\n\t\twhile (nativeElement && !nativeElement.clientWidth) nativeElement = nativeElement.children[0];\r\n\t\treturn nativeElement;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAca,KAAK,CAAA;AACjB,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAYhD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAW,CAAC;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAe,EAAE,CAAC,CAAC;QAGvC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAfxD,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;iBACrB;qBAAM;AACN,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;iBACvB;aACD;AACF,SAAC,CAAC,CAAC;KACH;IAQD,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACjE;IAED,WAAW,GAAA;;;AAGV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACvB;KACD;AAED,IAAA,SAAS,CAAC,OAAmB,EAAA;AAC5B,QAAA,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAC1C,QAAA,OAAO,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW;AAAE,YAAA,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9F,QAAA,OAAO,aAAa,CAAC;KACrB;8GArCW,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAJjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;AACvB,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-util-block.mjs","sources":["../../projects/aril/util/block/src/block.ts","../../projects/aril/util/block/aril-util-block.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, OnDestroy, effect, input, signal } from '@angular/core';\r\n\r\ndeclare const KTBlockUI: any;\r\n\r\ninterface BlockOptions {\r\n\tzIndex?: number;\r\n\toverlayClass?: string;\r\n\tmessage?: string;\r\n}\r\n\r\n@Directive({\r\n\tstandalone: true,\r\n\tselector: '[arilBlock]'\r\n})\r\nexport class Block implements AfterViewInit, OnDestroy {\r\n\tconstructor(private readonly element: ElementRef) {\r\n\t\teffect(() => {\r\n\t\t\tif (this.target()) {\r\n\t\t\t\tif (this.arilBlock()) {\r\n\t\t\t\t\tthis.blockUI.block();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.blockUI.release();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tarilBlock = input.required<boolean>();\r\n\tblockOptions = input<BlockOptions>({});\r\n\r\n\tblockUI: typeof KTBlockUI;\r\n\ttarget = signal<HTMLElement>(this.element.nativeElement);\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.target.set(this.getTarget(this.element));\r\n\t\tthis.blockUI = new KTBlockUI(this.target(), this.blockOptions());\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\t// KTBlockUI instance'ı KTUtilElementDataStore'da tutuluyor; release overlay'i kaldırır,\r\n\t\t// destroy global store kaydını siler (aksi halde directive yok olsa da DOM bellekte kalır).\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.release();\r\n\t\t\tthis.blockUI.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tgetTarget(element: ElementRef): HTMLElement {\r\n\t\tlet nativeElement = element.nativeElement;\r\n\t\twhile (nativeElement && !nativeElement.clientWidth) nativeElement = nativeElement.children[0];\r\n\t\treturn nativeElement;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAca,KAAK,CAAA;AACjB,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAA,CAAA,OAAO,GAAP,OAAO;AAYpC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAW;AACrC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAe,EAAE,CAAC;QAGtC,IAAA,CAAA,MAAM,GAAG,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAfvD,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACrB;qBAAO;AACN,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACvB;YACD;AACD,QAAA,CAAC,CAAC;IACH;IAQA,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IACjE;IAEA,WAAW,GAAA;;;AAGV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACvB;IACD;AAEA,IAAA,SAAS,CAAC,OAAmB,EAAA;AAC5B,QAAA,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa;AACzC,QAAA,OAAO,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW;AAAE,YAAA,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7F,QAAA,OAAO,aAAa;IACrB;+GArCY,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAJjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE;AACV,iBAAA;;;ACbD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, signal, computed, effect, Directive, Inject, Component, Injectable } from '@angular/core';
2
+ import { InjectionToken, inject, signal, computed, effect, Inject, Directive, Component, Injectable } from '@angular/core';
3
3
  import { ActivatedRoute, Router } from '@angular/router';
4
4
  import { TranslocoService } from '@ngneat/transloco';
5
5
  import { bridge } from 'aril/boot/bridge';
@@ -292,10 +292,10 @@ class DetailPageCustomizationDirective {
292
292
  this.detailComponent.mdInfoPluginProps.generalMenu = signal(mergedMenu);
293
293
  }
294
294
  }
295
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailPageCustomizationDirective, deps: [{ token: DETAIL_COMPONENT }], target: i0.ɵɵFactoryTarget.Directive }); }
296
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: DetailPageCustomizationDirective, isStandalone: true, ngImport: i0 }); }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailPageCustomizationDirective, deps: [{ token: DETAIL_COMPONENT }], target: i0.ɵɵFactoryTarget.Directive }); }
296
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DetailPageCustomizationDirective, isStandalone: true, ngImport: i0 }); }
297
297
  }
298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailPageCustomizationDirective, decorators: [{
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailPageCustomizationDirective, decorators: [{
299
299
  type: Directive,
300
300
  args: [{
301
301
  standalone: true
@@ -313,10 +313,10 @@ class CustomizedPluginDialogComponent {
313
313
  this.PLUGINS = PLUGINS;
314
314
  this.dialogConfig.draggable = true;
315
315
  }
316
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomizedPluginDialogComponent, deps: [{ token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component }); }
317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CustomizedPluginDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<mft-wc-wrapper [options]="PLUGINS[name].options" [props]="props" />`, isInline: true, dependencies: [{ kind: "ngmodule", type: ModuleFederationToolsModule }, { kind: "component", type: i2.WebComponentWrapper, selector: "mft-wc-wrapper", inputs: ["options", "props", "events"] }] }); }
316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomizedPluginDialogComponent, deps: [{ token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component }); }
317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomizedPluginDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<mft-wc-wrapper [options]="PLUGINS[name].options" [props]="props" />`, isInline: true, dependencies: [{ kind: "ngmodule", type: ModuleFederationToolsModule }, { kind: "component", type: i2.WebComponentWrapper, selector: "mft-wc-wrapper", inputs: ["options", "props", "events"] }] }); }
318
318
  }
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomizedPluginDialogComponent, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomizedPluginDialogComponent, decorators: [{
320
320
  type: Component,
321
321
  args: [{
322
322
  standalone: true,
@@ -329,10 +329,10 @@ class CustomizedPluginDialogService extends DialogService {
329
329
  openDialog(config) {
330
330
  return super.open(CustomizedPluginDialogComponent, config);
331
331
  }
332
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomizedPluginDialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
333
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomizedPluginDialogService, providedIn: 'root' }); }
332
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomizedPluginDialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
333
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomizedPluginDialogService, providedIn: 'root' }); }
334
334
  }
335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomizedPluginDialogService, decorators: [{
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomizedPluginDialogService, decorators: [{
336
336
  type: Injectable,
337
337
  args: [{ providedIn: 'root' }]
338
338
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-directives.mjs","sources":["../../projects/aril/util/directives/src/detail-page-customization/models.ts","../../projects/aril/util/directives/src/detail-page-customization/detail-page-customization.directive.ts","../../projects/aril/util/directives/src/dialog-component/plugin-dialog.component.ts","../../projects/aril/util/directives/src/dialog-service/plugin-dialog.service.ts","../../projects/aril/util/directives/aril-util-directives.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { TabView } from 'primeng/tabview';\r\n\r\nimport { solidIcons } from 'aril/util/lib';\r\n\r\nexport interface DetailComponent {\r\n\tmdInfoPluginProps: {\r\n\t\tgeneralMenu: Signal<MenuItem[]>;\r\n\t};\r\n\t// signals for reactive updates\r\n\tconfigTabs: Signal<TabConfig[]>;\r\n\tactiveTabComponents: Signal<TabConfig['components']>;\r\n\ttabs: TabConfig[];\r\n\ttabView?: TabView;\r\n}\r\n\r\nexport const DETAIL_COMPONENT = new InjectionToken<DetailComponent>('DETAIL_COMPONENT');\r\nexport const PLUGIN_DIALOG_SERVICE = new InjectionToken('PLUGIN_DIALOG_SERVICE');\r\n\r\nexport interface TabConfig {\r\n\tid: string | number | null;\r\n\theader: string;\r\n\ticon: keyof typeof solidIcons;\r\n\tvisible: boolean;\r\n\tposition: number;\r\n\tcomponents: Array<{\r\n\t\tid: string | null;\r\n\t\tpluginName: string;\r\n\t\tvisible: boolean;\r\n\t\torder?: number;\r\n\t}>;\r\n}\r\n\r\nexport interface DetailConfigMenuItem {\r\n\tlabel: {\r\n\t\t[key: string]: string;\r\n\t};\r\n\tcommand: string;\r\n\ticon: string;\r\n}\r\n\r\nexport interface DetailConfig {\r\n\tmenu: Array<DetailConfigMenuItem>;\r\n\ttabs: Array<{\r\n\t\tid: string | null;\r\n\t\ticon: keyof typeof solidIcons;\r\n\t\tlabel?: {\r\n\t\t\t[key: string]: string;\r\n\t\t};\r\n\t\tvisible: boolean;\r\n\t\tposition: number;\r\n\t\tcomponents: Array<{\r\n\t\t\tid: string | null;\r\n\t\t\tpluginName: string;\r\n\t\t\tvisible: boolean;\r\n\t\t\torder?: number;\r\n\t\t}>;\r\n\t}>;\r\n}\r\n","import { Directive, Inject, Signal, computed, effect, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\n\r\nimport {\r\n\tDETAIL_COMPONENT,\r\n\tDetailComponent,\r\n\tDetailConfig,\r\n\tDetailConfigMenuItem,\r\n\tPLUGIN_DIALOG_SERVICE,\r\n\tTabConfig\r\n} from './models';\r\n\r\n@Directive({\r\n\tstandalone: true\r\n})\r\nexport class DetailPageCustomizationDirective {\r\n\tprivate readonly route = inject(ActivatedRoute);\r\n\tprivate readonly router = inject(Router);\r\n\tprivate readonly dialogService = inject(PLUGIN_DIALOG_SERVICE); // Use token instead\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\r\n\t// Internal signal to track when TabView and the menu are ready\r\n\tprivate viewsInitialized = signal(false);\r\n\tprivate config: DetailConfig | undefined;\r\n\tprivate getRouteConfig = (): DetailConfig | undefined => {\r\n\t\tconst configs = bridge.routeConfigs();\r\n\t\tif (!configs) return undefined;\r\n\r\n\t\tconst currentUrl = this.router.url.split('?')[0];\r\n\r\n\t\tlet bestMatch: { path: string; content: string; version: number } | undefined;\r\n\r\n\t\tfor (const config of configs) {\r\n\t\t\tif (!config.path) continue;\r\n\r\n\t\t\tconst urlToCheck = config.path.startsWith('/') ? config.path : `/${config.path}`;\r\n\r\n\t\t\tif (currentUrl.startsWith(urlToCheck)) {\r\n\t\t\t\tbestMatch = config;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!bestMatch) return undefined;\r\n\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(bestMatch.content) as DetailConfig;\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error('Failed to parse route config content:', e);\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate getProcessedTabs: Signal<TabConfig[]> = computed(() => {\r\n\t\tif (!this.config?.tabs) return [];\r\n\r\n\t\tconst activeLang = this.translocoService.getActiveLang();\r\n\r\n\t\treturn this.config.tabs\r\n\t\t\t.filter((tab) => tab.visible !== false)\r\n\t\t\t.map((tab) => ({\r\n\t\t\t\tid: tab.id ?? null,\r\n\t\t\t\ticon: tab.icon,\r\n\t\t\t\theader: tab.label ? tab.label[activeLang] : '',\r\n\t\t\t\tvisible: tab.visible,\r\n\t\t\t\tposition: tab.position,\r\n\t\t\t\tcomponents: tab.components || []\r\n\t\t\t}));\r\n\t});\r\n\r\n\tconstructor(@Inject(DETAIL_COMPONENT) private readonly detailComponent: DetailComponent) {\r\n\t\tthis.config = this.getRouteConfig();\r\n\t\teffect(\r\n\t\t\t(onCleanup) => {\r\n\t\t\t\tif (this.viewsInitialized()) return;\r\n\r\n\t\t\t\t// Poll every animation frame until both TabView and the menu is ready\r\n\t\t\t\t// The menu can be directly defined in the component from init step, or be built dynamically after waiting for a network response. So we must wait for it to be ready.\r\n\t\t\t\tconst checkViews = () => {\r\n\t\t\t\t\tif (this.detailComponent.tabView?.tabs && this.detailComponent.mdInfoPluginProps?.generalMenu()?.length) {\r\n\t\t\t\t\t\tthis.viewsInitialized.set(true);\r\n\t\t\t\t\t\tthis.onViewsReady();\r\n\t\t\t\t\t} else if (!this.viewsInitialized()) {\r\n\t\t\t\t\t\tframeId = requestAnimationFrame(checkViews);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlet frameId = requestAnimationFrame(checkViews);\r\n\r\n\t\t\t\tonCleanup(() => {\r\n\t\t\t\t\tcancelAnimationFrame(frameId);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprivate onViewsReady(): void {\r\n\t\tif (!this.config) return;\r\n\r\n\t\t// step 1 - hide tabs based on config\r\n\t\tif (this.detailComponent.tabView?.tabs) {\r\n\t\t\tthis.updateTabVisibility();\r\n\t\t}\r\n\t\t// step 2 - append config tabs to the static tabs (only new ones, not those matching static tabs)\r\n\t\tconst allConfigTabs = this.getProcessedTabs();\r\n\r\n\t\t// Get IDs of existing static tabs\r\n\t\tconst staticTabIds = new Set<string | number | null>();\r\n\t\tif (this.detailComponent.tabView?.tabs) {\r\n\t\t\tthis.detailComponent.tabView.tabs.forEach((tabPanel) => {\r\n\t\t\t\tconst tabId = tabPanel?.el?.nativeElement?.id;\r\n\t\t\t\tif (tabId) {\r\n\t\t\t\t\tstaticTabIds.add(tabId);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Filter out config tabs that are meant to *reorder* existing static tabs.\r\n\t\t// Any tab whose id matches an existing static tab id is considered a \"reorder\"\r\n\t\t// instruction; everything else (id === null OR an id that doesn't exist yet)\r\n\t\t// is treated as a brand new tab.\r\n\t\tconst newConfigTabs = allConfigTabs.filter((tab) => {\r\n\t\t\t// new tab when id is null/undefined\r\n\t\t\tif (!tab.id) return true;\r\n\r\n\t\t\t// new tab when id is provided but doesn't match any static tab id\r\n\t\t\treturn !staticTabIds.has(tab.id);\r\n\t\t});\r\n\r\n\t\tif (newConfigTabs.length > 0 && this.detailComponent.configTabs) {\r\n\t\t\t(this.detailComponent.configTabs as any).set(newConfigTabs);\r\n\t\t} else if (newConfigTabs.length > 0) {\r\n\t\t\tthis.detailComponent.tabs = newConfigTabs;\r\n\t\t}\r\n\r\n\t\t// using setTimeout to ensure tabView is ready as we want to work directly with the generated elements\r\n\t\tsetTimeout(() => {\r\n\t\t\t// step 3 - reorder tabs\r\n\t\t\tthis.reorderTabsByPosition();\r\n\t\t\t// step 4 - activate tab from URL if specified\r\n\t\t\tthis.activateTabFromUrl();\r\n\t\t\t// step 5 - update the menu\r\n\t\t\tif (this.config?.menu) {\r\n\t\t\t\tthis.updateMenu(this.config.menu);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate updateTabVisibility(): void {\r\n\t\tif (!this.config?.tabs) return;\r\n\r\n\t\t// Find tabs in config that have visible: false\r\n\t\tconst hiddenTabPositions = this.config.tabs.filter((tab) => tab.visible === false).map((tab) => tab.position);\r\n\r\n\t\thiddenTabPositions.forEach((position) => {\r\n\t\t\tthis.hideTabByPosition(position, true);\r\n\t\t});\r\n\t}\r\n\r\n\thideTabByPosition(position: number, hide = true): void {\r\n\t\tif (!this.detailComponent.tabView?.tabs) return;\r\n\r\n\t\tconst panelToHide = this.detailComponent.tabView.tabs[position];\r\n\t\tconst tabToHide = this.detailComponent.tabView.list?.children[position] as HTMLElement;\r\n\r\n\t\tif (tabToHide && panelToHide) {\r\n\t\t\tpanelToHide.el.nativeElement.hidden = hide;\r\n\t\t\ttabToHide.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Reorder tabs based on config positions\r\n\t * Iterates over visible config tabs and rearranges both static and config tabs\r\n\t */\r\n\tprivate reorderTabsByPosition(): void {\r\n\t\tif (!this.detailComponent.tabView?.tabs || !this.detailComponent.tabView?.list) return;\r\n\r\n\t\tconst configTabs = this.getProcessedTabs();\r\n\t\tconst allTabs = this.detailComponent.tabView.tabs;\r\n\t\tconst navList = this.detailComponent.tabView.list;\r\n\r\n\t\tconst configTabMap = new Map<string | number | null, TabConfig>();\r\n\t\tconfigTabs.forEach((tab) => {\r\n\t\t\t// Only treat tabs that both:\r\n\t\t\t// - have an id\r\n\t\t\t// - and have an explicit position\r\n\t\t\t// as \"reorder instructions\" for existing static tabs.\r\n\t\t\t// Tabs without a position (even if they have an id) are considered\r\n\t\t\t// regular/new tabs and should keep their natural order.\r\n\t\t\tif (tab.id && tab.position) {\r\n\t\t\t\tconfigTabMap.set(tab.id, tab);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// separate static from config tabs\r\n\t\tconst staticTabs: Array<{ tab: any; index: number; id: string | number | null }> = [];\r\n\t\tconst configTabInstances: Array<{ tab: any; index: number; config: TabConfig }> = [];\r\n\r\n\t\tallTabs.forEach((tabPanel, index) => {\r\n\t\t\tconst tabId = tabPanel?.el?.nativeElement?.id || null;\r\n\t\t\tconst configTab = tabId ? configTabMap.get(tabId) : null;\r\n\r\n\t\t\tif (configTab) {\r\n\t\t\t\tconfigTabInstances.push({ tab: tabPanel, index, config: configTab });\r\n\t\t\t} else {\r\n\t\t\t\tstaticTabs.push({ tab: tabPanel, index, id: tabId });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst positionMap = new Map<number, { tab: any; isConfig: boolean; id: string | number | null }>();\r\n\r\n\t\t// place config tabs at their specified positions\r\n\t\tconfigTabInstances.forEach(({ tab, config }) => {\r\n\t\t\tif (config.position !== undefined && config.position !== null) {\r\n\t\t\t\tpositionMap.set(config.position, { tab, isConfig: true, id: config.id });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// place static tabs at available positions (maintaining relative order)\r\n\t\tlet staticIndex = 0;\r\n\t\tlet currentPosition = 0;\r\n\r\n\t\twhile (staticIndex < staticTabs.length) {\r\n\t\t\twhile (positionMap.has(currentPosition)) {\r\n\t\t\t\tcurrentPosition++;\r\n\t\t\t}\r\n\r\n\t\t\t// place static tab at this position\r\n\t\t\tconst staticTab = staticTabs[staticIndex];\r\n\t\t\tpositionMap.set(currentPosition, { tab: staticTab.tab, isConfig: false, id: staticTab.id });\r\n\t\t\tstaticIndex++;\r\n\t\t\tcurrentPosition++;\r\n\t\t}\r\n\r\n\t\t// build ordered array\r\n\t\tconst sortedPositions = Array.from(positionMap.keys()).sort((a, b) => a - b);\r\n\t\tconst reorderedTabs: any[] = [];\r\n\t\tconst reorderedHeaders: HTMLElement[] = [];\r\n\r\n\t\tsortedPositions.forEach((position) => {\r\n\t\t\tconst tabInfo = positionMap.get(position)!;\r\n\t\t\treorderedTabs.push(tabInfo.tab);\r\n\r\n\t\t\tconst originalIndex = allTabs.indexOf(tabInfo.tab);\r\n\t\t\tif (originalIndex !== -1 && navList.children[originalIndex]) {\r\n\t\t\t\treorderedHeaders.push(navList.children[originalIndex] as HTMLElement);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// reorder tabs array\r\n\t\tthis.detailComponent.tabView.tabs.length = 0;\r\n\t\treorderedTabs.forEach((tab) => this.detailComponent.tabView!.tabs.push(tab));\r\n\r\n\t\t// reorder dom headers\r\n\t\treorderedHeaders.forEach((header, newIndex) => {\r\n\t\t\tconst targetHeader = navList.children[newIndex];\r\n\t\t\tif (targetHeader && targetHeader !== header) {\r\n\t\t\t\tnavList.insertBefore(header, targetHeader);\r\n\t\t\t} else if (!targetHeader) {\r\n\t\t\t\tnavList.appendChild(header);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// reorder dom panels\r\n\t\tconst panelsContainer = allTabs[0]?.el.nativeElement.parentElement;\r\n\t\tif (panelsContainer) {\r\n\t\t\treorderedTabs.forEach((tabPanel, newIndex) => {\r\n\t\t\t\tconst targetPanel = panelsContainer.children[newIndex];\r\n\t\t\t\tif (targetPanel && targetPanel !== tabPanel.el.nativeElement) {\r\n\t\t\t\t\tpanelsContainer.insertBefore(tabPanel.el.nativeElement, targetPanel);\r\n\t\t\t\t} else if (!targetPanel) {\r\n\t\t\t\t\tpanelsContainer.appendChild(tabPanel.el.nativeElement);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.detailComponent.tabView.cd) {\r\n\t\t\tthis.detailComponent.tabView.cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate activateTabFromUrl(): void {\r\n\t\tif (!this.detailComponent.tabView) return;\r\n\r\n\t\tconst activeTabParam = this.route.snapshot.queryParamMap.get('activeTab');\r\n\t\tif (activeTabParam) {\r\n\t\t\tconst activeTabIndex = Number(activeTabParam);\r\n\r\n\t\t\tif (\r\n\t\t\t\t!isNaN(activeTabIndex) &&\r\n\t\t\t\tactiveTabIndex >= 0 &&\r\n\t\t\t\tthis.detailComponent.tabView.tabs &&\r\n\t\t\t\tactiveTabIndex < this.detailComponent.tabView.tabs.length\r\n\t\t\t) {\r\n\t\t\t\tthis.detailComponent.tabView.activeIndex = activeTabIndex;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateMenu(menuConfig: DetailConfigMenuItem[]) {\r\n\t\tconst context = {\r\n\t\t\trouter: this.router,\r\n\t\t\troute: this.route,\r\n\t\t\tdialogService: this.dialogService,\r\n\t\t\tcomponent: this.detailComponent\r\n\t\t};\r\n\r\n\t\tconst activeLang = this.translocoService.getActiveLang();\r\n\t\tconst dynamicMenu: MenuItem[] = menuConfig.map((m) => ({\r\n\t\t\tlabel: m.label[activeLang] ?? '',\r\n\t\t\ticon: m.icon,\r\n\t\t\tcommand: (_event: any) => {\r\n\t\t\t\tconst commandFn = new Function('ctx', m.command);\r\n\t\t\t\tcommandFn(context)(context);\r\n\t\t\t}\r\n\t\t}));\r\n\r\n\t\t// Update the existing signal instead of replacing it to ensure change\r\n\t\t// detection picks up the menu update after browser back navigation.\r\n\t\tconst generalMenuSignal = this.detailComponent.mdInfoPluginProps.generalMenu as any;\r\n\t\tconst existingMenu: MenuItem[] = generalMenuSignal();\r\n\r\n\t\t// Avoid duplicating previously added dynamic items (identified by label/icon match)\r\n\t\tconst mergedMenu = [\r\n\t\t\t...existingMenu.filter((item) => !dynamicMenu.some((dyn) => dyn.label === item.label && dyn.icon === item.icon)),\r\n\t\t\t...dynamicMenu\r\n\t\t];\r\n\r\n\t\tif (generalMenuSignal?.set) {\r\n\t\t\tgeneralMenuSignal.set(mergedMenu);\r\n\t\t} else {\r\n\t\t\tthis.detailComponent.mdInfoPluginProps.generalMenu = signal(mergedMenu);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n\r\nimport { ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';\r\n\r\nimport { PLUGINS } from 'aril/boot/config/plugins';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ModuleFederationToolsModule],\r\n\ttemplate: `<mft-wc-wrapper [options]=\"PLUGINS[name].options\" [props]=\"props\" />`\r\n})\r\nexport class CustomizedPluginDialogComponent {\r\n\tname = this.dialogConfig.data.name;\r\n\tprops = this.dialogConfig.data.props || {};\r\n\tPLUGINS = PLUGINS;\r\n\r\n\tconstructor(private readonly dialogConfig: DynamicDialogConfig) {\r\n\t\tthis.dialogConfig.draggable = true;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { CustomizedPluginDialogComponent } from '../dialog-component/plugin-dialog.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CustomizedPluginDialogService extends DialogService {\r\n\topenDialog(config: DynamicDialogConfig): DynamicDialogRef {\r\n\t\treturn super.open(CustomizedPluginDialogComponent, config);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-util-directives.mjs","sources":["../../projects/aril/util/directives/src/detail-page-customization/models.ts","../../projects/aril/util/directives/src/detail-page-customization/detail-page-customization.directive.ts","../../projects/aril/util/directives/src/dialog-component/plugin-dialog.component.ts","../../projects/aril/util/directives/src/dialog-service/plugin-dialog.service.ts","../../projects/aril/util/directives/aril-util-directives.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\nimport { TabView } from 'primeng/tabview';\r\n\r\nimport { solidIcons } from 'aril/util/lib';\r\n\r\nexport interface DetailComponent {\r\n\tmdInfoPluginProps: {\r\n\t\tgeneralMenu: Signal<MenuItem[]>;\r\n\t};\r\n\t// signals for reactive updates\r\n\tconfigTabs: Signal<TabConfig[]>;\r\n\tactiveTabComponents: Signal<TabConfig['components']>;\r\n\ttabs: TabConfig[];\r\n\ttabView?: TabView;\r\n}\r\n\r\nexport const DETAIL_COMPONENT = new InjectionToken<DetailComponent>('DETAIL_COMPONENT');\r\nexport const PLUGIN_DIALOG_SERVICE = new InjectionToken('PLUGIN_DIALOG_SERVICE');\r\n\r\nexport interface TabConfig {\r\n\tid: string | number | null;\r\n\theader: string;\r\n\ticon: keyof typeof solidIcons;\r\n\tvisible: boolean;\r\n\tposition: number;\r\n\tcomponents: Array<{\r\n\t\tid: string | null;\r\n\t\tpluginName: string;\r\n\t\tvisible: boolean;\r\n\t\torder?: number;\r\n\t}>;\r\n}\r\n\r\nexport interface DetailConfigMenuItem {\r\n\tlabel: {\r\n\t\t[key: string]: string;\r\n\t};\r\n\tcommand: string;\r\n\ticon: string;\r\n}\r\n\r\nexport interface DetailConfig {\r\n\tmenu: Array<DetailConfigMenuItem>;\r\n\ttabs: Array<{\r\n\t\tid: string | null;\r\n\t\ticon: keyof typeof solidIcons;\r\n\t\tlabel?: {\r\n\t\t\t[key: string]: string;\r\n\t\t};\r\n\t\tvisible: boolean;\r\n\t\tposition: number;\r\n\t\tcomponents: Array<{\r\n\t\t\tid: string | null;\r\n\t\t\tpluginName: string;\r\n\t\t\tvisible: boolean;\r\n\t\t\torder?: number;\r\n\t\t}>;\r\n\t}>;\r\n}\r\n","import { Directive, Inject, Signal, computed, effect, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { MenuItem } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\n\r\nimport {\r\n\tDETAIL_COMPONENT,\r\n\tDetailComponent,\r\n\tDetailConfig,\r\n\tDetailConfigMenuItem,\r\n\tPLUGIN_DIALOG_SERVICE,\r\n\tTabConfig\r\n} from './models';\r\n\r\n@Directive({\r\n\tstandalone: true\r\n})\r\nexport class DetailPageCustomizationDirective {\r\n\tprivate readonly route = inject(ActivatedRoute);\r\n\tprivate readonly router = inject(Router);\r\n\tprivate readonly dialogService = inject(PLUGIN_DIALOG_SERVICE); // Use token instead\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\r\n\t// Internal signal to track when TabView and the menu are ready\r\n\tprivate viewsInitialized = signal(false);\r\n\tprivate config: DetailConfig | undefined;\r\n\tprivate getRouteConfig = (): DetailConfig | undefined => {\r\n\t\tconst configs = bridge.routeConfigs();\r\n\t\tif (!configs) return undefined;\r\n\r\n\t\tconst currentUrl = this.router.url.split('?')[0];\r\n\r\n\t\tlet bestMatch: { path: string; content: string; version: number } | undefined;\r\n\r\n\t\tfor (const config of configs) {\r\n\t\t\tif (!config.path) continue;\r\n\r\n\t\t\tconst urlToCheck = config.path.startsWith('/') ? config.path : `/${config.path}`;\r\n\r\n\t\t\tif (currentUrl.startsWith(urlToCheck)) {\r\n\t\t\t\tbestMatch = config;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!bestMatch) return undefined;\r\n\r\n\t\ttry {\r\n\t\t\treturn JSON.parse(bestMatch.content) as DetailConfig;\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error('Failed to parse route config content:', e);\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate getProcessedTabs: Signal<TabConfig[]> = computed(() => {\r\n\t\tif (!this.config?.tabs) return [];\r\n\r\n\t\tconst activeLang = this.translocoService.getActiveLang();\r\n\r\n\t\treturn this.config.tabs\r\n\t\t\t.filter((tab) => tab.visible !== false)\r\n\t\t\t.map((tab) => ({\r\n\t\t\t\tid: tab.id ?? null,\r\n\t\t\t\ticon: tab.icon,\r\n\t\t\t\theader: tab.label ? tab.label[activeLang] : '',\r\n\t\t\t\tvisible: tab.visible,\r\n\t\t\t\tposition: tab.position,\r\n\t\t\t\tcomponents: tab.components || []\r\n\t\t\t}));\r\n\t});\r\n\r\n\tconstructor(@Inject(DETAIL_COMPONENT) private readonly detailComponent: DetailComponent) {\r\n\t\tthis.config = this.getRouteConfig();\r\n\t\teffect(\r\n\t\t\t(onCleanup) => {\r\n\t\t\t\tif (this.viewsInitialized()) return;\r\n\r\n\t\t\t\t// Poll every animation frame until both TabView and the menu is ready\r\n\t\t\t\t// The menu can be directly defined in the component from init step, or be built dynamically after waiting for a network response. So we must wait for it to be ready.\r\n\t\t\t\tconst checkViews = () => {\r\n\t\t\t\t\tif (this.detailComponent.tabView?.tabs && this.detailComponent.mdInfoPluginProps?.generalMenu()?.length) {\r\n\t\t\t\t\t\tthis.viewsInitialized.set(true);\r\n\t\t\t\t\t\tthis.onViewsReady();\r\n\t\t\t\t\t} else if (!this.viewsInitialized()) {\r\n\t\t\t\t\t\tframeId = requestAnimationFrame(checkViews);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tlet frameId = requestAnimationFrame(checkViews);\r\n\r\n\t\t\t\tonCleanup(() => {\r\n\t\t\t\t\tcancelAnimationFrame(frameId);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t{ allowSignalWrites: true }\r\n\t\t);\r\n\t}\r\n\r\n\tprivate onViewsReady(): void {\r\n\t\tif (!this.config) return;\r\n\r\n\t\t// step 1 - hide tabs based on config\r\n\t\tif (this.detailComponent.tabView?.tabs) {\r\n\t\t\tthis.updateTabVisibility();\r\n\t\t}\r\n\t\t// step 2 - append config tabs to the static tabs (only new ones, not those matching static tabs)\r\n\t\tconst allConfigTabs = this.getProcessedTabs();\r\n\r\n\t\t// Get IDs of existing static tabs\r\n\t\tconst staticTabIds = new Set<string | number | null>();\r\n\t\tif (this.detailComponent.tabView?.tabs) {\r\n\t\t\tthis.detailComponent.tabView.tabs.forEach((tabPanel) => {\r\n\t\t\t\tconst tabId = tabPanel?.el?.nativeElement?.id;\r\n\t\t\t\tif (tabId) {\r\n\t\t\t\t\tstaticTabIds.add(tabId);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Filter out config tabs that are meant to *reorder* existing static tabs.\r\n\t\t// Any tab whose id matches an existing static tab id is considered a \"reorder\"\r\n\t\t// instruction; everything else (id === null OR an id that doesn't exist yet)\r\n\t\t// is treated as a brand new tab.\r\n\t\tconst newConfigTabs = allConfigTabs.filter((tab) => {\r\n\t\t\t// new tab when id is null/undefined\r\n\t\t\tif (!tab.id) return true;\r\n\r\n\t\t\t// new tab when id is provided but doesn't match any static tab id\r\n\t\t\treturn !staticTabIds.has(tab.id);\r\n\t\t});\r\n\r\n\t\tif (newConfigTabs.length > 0 && this.detailComponent.configTabs) {\r\n\t\t\t(this.detailComponent.configTabs as any).set(newConfigTabs);\r\n\t\t} else if (newConfigTabs.length > 0) {\r\n\t\t\tthis.detailComponent.tabs = newConfigTabs;\r\n\t\t}\r\n\r\n\t\t// using setTimeout to ensure tabView is ready as we want to work directly with the generated elements\r\n\t\tsetTimeout(() => {\r\n\t\t\t// step 3 - reorder tabs\r\n\t\t\tthis.reorderTabsByPosition();\r\n\t\t\t// step 4 - activate tab from URL if specified\r\n\t\t\tthis.activateTabFromUrl();\r\n\t\t\t// step 5 - update the menu\r\n\t\t\tif (this.config?.menu) {\r\n\t\t\t\tthis.updateMenu(this.config.menu);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate updateTabVisibility(): void {\r\n\t\tif (!this.config?.tabs) return;\r\n\r\n\t\t// Find tabs in config that have visible: false\r\n\t\tconst hiddenTabPositions = this.config.tabs.filter((tab) => tab.visible === false).map((tab) => tab.position);\r\n\r\n\t\thiddenTabPositions.forEach((position) => {\r\n\t\t\tthis.hideTabByPosition(position, true);\r\n\t\t});\r\n\t}\r\n\r\n\thideTabByPosition(position: number, hide = true): void {\r\n\t\tif (!this.detailComponent.tabView?.tabs) return;\r\n\r\n\t\tconst panelToHide = this.detailComponent.tabView.tabs[position];\r\n\t\tconst tabToHide = this.detailComponent.tabView.list?.children[position] as HTMLElement;\r\n\r\n\t\tif (tabToHide && panelToHide) {\r\n\t\t\tpanelToHide.el.nativeElement.hidden = hide;\r\n\t\t\ttabToHide.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Reorder tabs based on config positions\r\n\t * Iterates over visible config tabs and rearranges both static and config tabs\r\n\t */\r\n\tprivate reorderTabsByPosition(): void {\r\n\t\tif (!this.detailComponent.tabView?.tabs || !this.detailComponent.tabView?.list) return;\r\n\r\n\t\tconst configTabs = this.getProcessedTabs();\r\n\t\tconst allTabs = this.detailComponent.tabView.tabs;\r\n\t\tconst navList = this.detailComponent.tabView.list;\r\n\r\n\t\tconst configTabMap = new Map<string | number | null, TabConfig>();\r\n\t\tconfigTabs.forEach((tab) => {\r\n\t\t\t// Only treat tabs that both:\r\n\t\t\t// - have an id\r\n\t\t\t// - and have an explicit position\r\n\t\t\t// as \"reorder instructions\" for existing static tabs.\r\n\t\t\t// Tabs without a position (even if they have an id) are considered\r\n\t\t\t// regular/new tabs and should keep their natural order.\r\n\t\t\tif (tab.id && tab.position) {\r\n\t\t\t\tconfigTabMap.set(tab.id, tab);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// separate static from config tabs\r\n\t\tconst staticTabs: Array<{ tab: any; index: number; id: string | number | null }> = [];\r\n\t\tconst configTabInstances: Array<{ tab: any; index: number; config: TabConfig }> = [];\r\n\r\n\t\tallTabs.forEach((tabPanel, index) => {\r\n\t\t\tconst tabId = tabPanel?.el?.nativeElement?.id || null;\r\n\t\t\tconst configTab = tabId ? configTabMap.get(tabId) : null;\r\n\r\n\t\t\tif (configTab) {\r\n\t\t\t\tconfigTabInstances.push({ tab: tabPanel, index, config: configTab });\r\n\t\t\t} else {\r\n\t\t\t\tstaticTabs.push({ tab: tabPanel, index, id: tabId });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst positionMap = new Map<number, { tab: any; isConfig: boolean; id: string | number | null }>();\r\n\r\n\t\t// place config tabs at their specified positions\r\n\t\tconfigTabInstances.forEach(({ tab, config }) => {\r\n\t\t\tif (config.position !== undefined && config.position !== null) {\r\n\t\t\t\tpositionMap.set(config.position, { tab, isConfig: true, id: config.id });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// place static tabs at available positions (maintaining relative order)\r\n\t\tlet staticIndex = 0;\r\n\t\tlet currentPosition = 0;\r\n\r\n\t\twhile (staticIndex < staticTabs.length) {\r\n\t\t\twhile (positionMap.has(currentPosition)) {\r\n\t\t\t\tcurrentPosition++;\r\n\t\t\t}\r\n\r\n\t\t\t// place static tab at this position\r\n\t\t\tconst staticTab = staticTabs[staticIndex];\r\n\t\t\tpositionMap.set(currentPosition, { tab: staticTab.tab, isConfig: false, id: staticTab.id });\r\n\t\t\tstaticIndex++;\r\n\t\t\tcurrentPosition++;\r\n\t\t}\r\n\r\n\t\t// build ordered array\r\n\t\tconst sortedPositions = Array.from(positionMap.keys()).sort((a, b) => a - b);\r\n\t\tconst reorderedTabs: any[] = [];\r\n\t\tconst reorderedHeaders: HTMLElement[] = [];\r\n\r\n\t\tsortedPositions.forEach((position) => {\r\n\t\t\tconst tabInfo = positionMap.get(position)!;\r\n\t\t\treorderedTabs.push(tabInfo.tab);\r\n\r\n\t\t\tconst originalIndex = allTabs.indexOf(tabInfo.tab);\r\n\t\t\tif (originalIndex !== -1 && navList.children[originalIndex]) {\r\n\t\t\t\treorderedHeaders.push(navList.children[originalIndex] as HTMLElement);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// reorder tabs array\r\n\t\tthis.detailComponent.tabView.tabs.length = 0;\r\n\t\treorderedTabs.forEach((tab) => this.detailComponent.tabView!.tabs.push(tab));\r\n\r\n\t\t// reorder dom headers\r\n\t\treorderedHeaders.forEach((header, newIndex) => {\r\n\t\t\tconst targetHeader = navList.children[newIndex];\r\n\t\t\tif (targetHeader && targetHeader !== header) {\r\n\t\t\t\tnavList.insertBefore(header, targetHeader);\r\n\t\t\t} else if (!targetHeader) {\r\n\t\t\t\tnavList.appendChild(header);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// reorder dom panels\r\n\t\tconst panelsContainer = allTabs[0]?.el.nativeElement.parentElement;\r\n\t\tif (panelsContainer) {\r\n\t\t\treorderedTabs.forEach((tabPanel, newIndex) => {\r\n\t\t\t\tconst targetPanel = panelsContainer.children[newIndex];\r\n\t\t\t\tif (targetPanel && targetPanel !== tabPanel.el.nativeElement) {\r\n\t\t\t\t\tpanelsContainer.insertBefore(tabPanel.el.nativeElement, targetPanel);\r\n\t\t\t\t} else if (!targetPanel) {\r\n\t\t\t\t\tpanelsContainer.appendChild(tabPanel.el.nativeElement);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.detailComponent.tabView.cd) {\r\n\t\t\tthis.detailComponent.tabView.cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate activateTabFromUrl(): void {\r\n\t\tif (!this.detailComponent.tabView) return;\r\n\r\n\t\tconst activeTabParam = this.route.snapshot.queryParamMap.get('activeTab');\r\n\t\tif (activeTabParam) {\r\n\t\t\tconst activeTabIndex = Number(activeTabParam);\r\n\r\n\t\t\tif (\r\n\t\t\t\t!isNaN(activeTabIndex) &&\r\n\t\t\t\tactiveTabIndex >= 0 &&\r\n\t\t\t\tthis.detailComponent.tabView.tabs &&\r\n\t\t\t\tactiveTabIndex < this.detailComponent.tabView.tabs.length\r\n\t\t\t) {\r\n\t\t\t\tthis.detailComponent.tabView.activeIndex = activeTabIndex;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateMenu(menuConfig: DetailConfigMenuItem[]) {\r\n\t\tconst context = {\r\n\t\t\trouter: this.router,\r\n\t\t\troute: this.route,\r\n\t\t\tdialogService: this.dialogService,\r\n\t\t\tcomponent: this.detailComponent\r\n\t\t};\r\n\r\n\t\tconst activeLang = this.translocoService.getActiveLang();\r\n\t\tconst dynamicMenu: MenuItem[] = menuConfig.map((m) => ({\r\n\t\t\tlabel: m.label[activeLang] ?? '',\r\n\t\t\ticon: m.icon,\r\n\t\t\tcommand: (_event: any) => {\r\n\t\t\t\tconst commandFn = new Function('ctx', m.command);\r\n\t\t\t\tcommandFn(context)(context);\r\n\t\t\t}\r\n\t\t}));\r\n\r\n\t\t// Update the existing signal instead of replacing it to ensure change\r\n\t\t// detection picks up the menu update after browser back navigation.\r\n\t\tconst generalMenuSignal = this.detailComponent.mdInfoPluginProps.generalMenu as any;\r\n\t\tconst existingMenu: MenuItem[] = generalMenuSignal();\r\n\r\n\t\t// Avoid duplicating previously added dynamic items (identified by label/icon match)\r\n\t\tconst mergedMenu = [\r\n\t\t\t...existingMenu.filter((item) => !dynamicMenu.some((dyn) => dyn.label === item.label && dyn.icon === item.icon)),\r\n\t\t\t...dynamicMenu\r\n\t\t];\r\n\r\n\t\tif (generalMenuSignal?.set) {\r\n\t\t\tgeneralMenuSignal.set(mergedMenu);\r\n\t\t} else {\r\n\t\t\tthis.detailComponent.mdInfoPluginProps.generalMenu = signal(mergedMenu);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n\r\nimport { ModuleFederationToolsModule } from '@angular-architects/module-federation-tools';\r\n\r\nimport { PLUGINS } from 'aril/boot/config/plugins';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ModuleFederationToolsModule],\r\n\ttemplate: `<mft-wc-wrapper [options]=\"PLUGINS[name].options\" [props]=\"props\" />`\r\n})\r\nexport class CustomizedPluginDialogComponent {\r\n\tname = this.dialogConfig.data.name;\r\n\tprops = this.dialogConfig.data.props || {};\r\n\tPLUGINS = PLUGINS;\r\n\r\n\tconstructor(private readonly dialogConfig: DynamicDialogConfig) {\r\n\t\tthis.dialogConfig.draggable = true;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { CustomizedPluginDialogComponent } from '../dialog-component/plugin-dialog.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CustomizedPluginDialogService extends DialogService {\r\n\topenDialog(config: DynamicDialogConfig): DynamicDialogRef {\r\n\t\treturn super.open(CustomizedPluginDialogComponent, config);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAkBa,gBAAgB,GAAG,IAAI,cAAc,CAAkB,kBAAkB;MACzE,qBAAqB,GAAG,IAAI,cAAc,CAAC,uBAAuB;;MCElE,gCAAgC,CAAA;AAuD5C,IAAA,WAAA,CAAuD,eAAgC,EAAA;QAAhC,IAAA,CAAA,eAAe,GAAf,eAAe;AAtDrD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAGpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;QAEhC,IAAA,CAAA,cAAc,GAAG,MAA+B;AACvD,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE;AACrC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,SAAS;AAE9B,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhD,YAAA,IAAI,SAAyE;AAE7E,YAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE;gBAElB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAA,CAAE;AAEhF,gBAAA,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;oBACtC,SAAS,GAAG,MAAM;oBAClB;gBACD;YACD;AAEA,YAAA,IAAI,CAAC,SAAS;AAAE,gBAAA,OAAO,SAAS;AAEhC,YAAA,IAAI;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAiB;YACrD;YAAE,OAAO,CAAC,EAAE;AACX,gBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC;AACzD,gBAAA,OAAO,SAAS;YACjB;AACD,QAAA,CAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAwB,QAAQ,CAAC,MAAK;AAC7D,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI;AAAE,gBAAA,OAAO,EAAE;YAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;AAExD,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC;iBACjB,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,KAAK;AACrC,iBAAA,GAAG,CAAC,CAAC,GAAG,MAAM;AACd,gBAAA,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;AACd,gBAAA,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC9C,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;AACtB,gBAAA,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI;AAC9B,aAAA,CAAC,CAAC;AACL,QAAA,CAAC,CAAC;AAGD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AACnC,QAAA,MAAM,CACL,CAAC,SAAS,KAAI;YACb,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAAE;;;YAI7B,MAAM,UAAU,GAAG,MAAK;AACvB,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE;AACxG,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,YAAY,EAAE;gBACpB;AAAO,qBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACpC,oBAAA,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC;gBAC5C;AACD,YAAA,CAAC;AAED,YAAA,IAAI,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC;YAE/C,SAAS,CAAC,MAAK;gBACd,oBAAoB,CAAC,OAAO,CAAC;AAC9B,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,EACD,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC3B;IACF;IAEQ,YAAY,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE;;QAGlB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;YACvC,IAAI,CAAC,mBAAmB,EAAE;QAC3B;;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE;;AAG7C,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B;QACtD,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE;gBAC7C,IAAI,KAAK,EAAE;AACV,oBAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;gBACxB;AACD,YAAA,CAAC,CAAC;QACH;;;;;QAMA,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;;YAElD,IAAI,CAAC,GAAG,CAAC,EAAE;AAAE,gBAAA,OAAO,IAAI;;YAGxB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACjC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;YAC/D,IAAI,CAAC,eAAe,CAAC,UAAkB,CAAC,GAAG,CAAC,aAAa,CAAC;QAC5D;AAAO,aAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,aAAa;QAC1C;;QAGA,UAAU,CAAC,MAAK;;YAEf,IAAI,CAAC,qBAAqB,EAAE;;YAE5B,IAAI,CAAC,kBAAkB,EAAE;;AAEzB,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;gBACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAClC;AACD,QAAA,CAAC,CAAC;IACH;IAEQ,mBAAmB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI;YAAE;;AAGxB,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC;AAE7G,QAAA,kBAAkB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACvC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvC,QAAA,CAAC,CAAC;IACH;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAE,IAAI,GAAG,IAAI,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI;YAAE;AAEzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAgB;AAEtF,QAAA,IAAI,SAAS,IAAI,WAAW,EAAE;YAC7B,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI;AAC1C,YAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QACjC;IACD;AAEA;;;AAGG;IACK,qBAAqB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI;YAAE;AAEhF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI;AAEjD,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC;AACjE,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;;;;;;YAO1B,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;YAC9B;AACD,QAAA,CAAC,CAAC;;QAGF,MAAM,UAAU,GAAmE,EAAE;QACrF,MAAM,kBAAkB,GAA0D,EAAE;QAEpF,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAI;YACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,IAAI;AACrD,YAAA,MAAM,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;YAExD,IAAI,SAAS,EAAE;AACd,gBAAA,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YACrE;iBAAO;AACN,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YACrD;AACD,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuE;;QAGlG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAI;AAC9C,YAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAC9D,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YACzE;AACD,QAAA,CAAC,CAAC;;QAGF,IAAI,WAAW,GAAG,CAAC;QACnB,IAAI,eAAe,GAAG,CAAC;AAEvB,QAAA,OAAO,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE;AACvC,YAAA,OAAO,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AACxC,gBAAA,eAAe,EAAE;YAClB;;AAGA,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;YACzC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;AAC3F,YAAA,WAAW,EAAE;AACb,YAAA,eAAe,EAAE;QAClB;;QAGA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAU,EAAE;QAC/B,MAAM,gBAAgB,GAAkB,EAAE;AAE1C,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YACpC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE;AAC1C,YAAA,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAE/B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AAClD,YAAA,IAAI,aAAa,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBAC5D,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB,CAAC;YACtE;AACD,QAAA,CAAC,CAAC;;QAGF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC5C,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,OAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QAG5E,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,KAAI;YAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/C,YAAA,IAAI,YAAY,IAAI,YAAY,KAAK,MAAM,EAAE;AAC5C,gBAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC;YAC3C;iBAAO,IAAI,CAAC,YAAY,EAAE;AACzB,gBAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5B;AACD,QAAA,CAAC,CAAC;;AAGF,QAAA,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa;QAClE,IAAI,eAAe,EAAE;YACpB,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAI;gBAC5C,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACtD,IAAI,WAAW,IAAI,WAAW,KAAK,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE;oBAC7D,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;gBACrE;qBAAO,IAAI,CAAC,WAAW,EAAE;oBACxB,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC;gBACvD;AACD,YAAA,CAAC,CAAC;QACH;QAEA,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE;QAC/C;IACD;IAEQ,kBAAkB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO;YAAE;AAEnC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;QACzE,IAAI,cAAc,EAAE;AACnB,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAE7C,YAAA,IACC,CAAC,KAAK,CAAC,cAAc,CAAC;AACtB,gBAAA,cAAc,IAAI,CAAC;AACnB,gBAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI;gBACjC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EACxD;gBACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,GAAG,cAAc;YAC1D;QACD;IACD;AAEQ,IAAA,UAAU,CAAC,UAAkC,EAAA;AACpD,QAAA,MAAM,OAAO,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC;SAChB;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACxD,MAAM,WAAW,GAAe,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;YACtD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,YAAA,OAAO,EAAE,CAAC,MAAW,KAAI;gBACxB,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;AAChD,gBAAA,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YAC5B;AACA,SAAA,CAAC,CAAC;;;QAIH,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,WAAkB;AACnF,QAAA,MAAM,YAAY,GAAe,iBAAiB,EAAE;;AAGpD,QAAA,MAAM,UAAU,GAAG;AAClB,YAAA,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAChH,YAAA,GAAG;SACH;AAED,QAAA,IAAI,iBAAiB,EAAE,GAAG,EAAE;AAC3B,YAAA,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;QAClC;aAAO;YACN,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACxE;IACD;AAhUY,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,kBAuDxB,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAvDxB,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACZ,iBAAA;;0BAwDa,MAAM;2BAAC,gBAAgB;;;MC/DxB,+BAA+B,CAAA;AAK3C,IAAA,WAAA,CAA6B,YAAiC,EAAA;QAAjC,IAAA,CAAA,YAAY,GAAZ,YAAY;QAJzC,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;QAClC,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAA,CAAA,OAAO,GAAG,OAAO;AAGhB,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI;IACnC;+GAPY,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFjC,CAAA,oEAAA,CAAsE,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EADtE,2BAA2B,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGzB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,2BAA2B,CAAC;AACtC,oBAAA,QAAQ,EAAE,CAAA,oEAAA;AACV,iBAAA;;;ACLK,MAAO,6BAA8B,SAAQ,aAAa,CAAA;AAC/D,IAAA,UAAU,CAAC,MAA2B,EAAA;QACrC,OAAO,KAAK,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC;IAC3D;+GAHY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cADhB,MAAM,EAAA,CAAA,CAAA;;4FACnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACNlC;;AAEG;;;;"}
@@ -12,10 +12,10 @@ const regularIcons = _regularIcons;
12
12
  /* eslint-disable @typescript-eslint/no-namespace */
13
13
 
14
14
  class ModuleRouterOutlet {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ModuleRouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ModuleRouterOutlet, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet />`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModuleRouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModuleRouterOutlet, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet />`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ModuleRouterOutlet, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModuleRouterOutlet, decorators: [{
19
19
  type: Component,
20
20
  args: [{
21
21
  standalone: true,